首页

Two ways to retrieve process id while startup a process via Windows command line

一个特殊的机缘, 需要通过cmd.exe启动一个进程, 并且获取该启动后进程的Process ID, 搜罗到两种方法: 1. 通过wmic process call create wmic如果创建进程成功,将返回一个ReturnValue为0类JSON结构的输出, 从中获取ProcessId: C:\app>cmd.exe /C wmic process call create “c:\app\cluster\GatewayServer.exe start -id 6”, “c:\app” Executing (Win32_Process)->Create() Method execution successful. Out Parameters: instance of __PARAMETERS { ProcessId = 19420; ReturnValue = 0; }; wmic如果创建进程失败, 将返回一个ReturnValue非0的输出: C:\app>wmic process call create “cluster\GatewayServer.exe start -id 6”, “c:\app” Executing (Win32_Process)->Create() Method … Read more Two ways to retrieve process id while startup a process via Windows command line

0 comments

Close TCP and UDP ports via windows command line

The CurrPorts tool from Nirsoft can easily close a TCP/UDP connection without kill the Process via Windows command line cports.exe /close <Local Address> <Local Port> <Remote Address> <Remote Port> Example: cports.exe /close 172.24.3.102 51512 172.25.1.206 8007 Download: CurrPorts Refer: https://superuser.com/questions/384758/how-to-kill-a-particular-tcp-connection-in-windows/384761#384761

0 comments

Change value for a PK column with AUTO_INCREMENT in mysql

show create table TABLE_NAME; // Check current AUTO_INCREMENT value update IGNORE TABLE_NAME set primary_field = ‘value’ …; // Change the column value with IGNORE keyword alter table TABLE_NAME AUTO_INCREMENT = 50; // Set AUTO_INCREMENT show create table TABLE_NAME; // Check current AUTO_INCREMENT value again

0 comments

Run all programs as administrator by default on Windows 10

Open Windows Registry Located at “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System” Change EnableLUA to 0 Restart the computer Reference articles: – https://www.bleepingcomputer.com/forums/t/716719/run-all-programs-as-admin-by-default/?p=4975198 – https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/user-account-control-admin-approval-mode-for-the-built-in-administrator-account

0 comments

基于Upstream-ToR网络的Kubernetes Windows Node配置

前言 Kubernetes集群中Windows节点引入的成功与否主要决定于Kubernetes网络组件的成熟程度及Windows Server的SDN能力. Kubernetes从1.5版本基于Windows Server 2016(1607)开始引入Windows容器, 发展到目前的最新版本1.18; Windows Server也从1607经历了1709/1803/1809/1903/1909几个版本的发展, 在容器化支持及SDN方面也做了很多的功能改进 常用的Kubernetes集群网络组件有很多, 但能同时支持Linux/Windows混合集群的网络组件比较少(最起码之前是的), 之前搭建过基于Windows Server 1709和OVS/OVN网络的混合集群, 但由于OVS网络的基础组件太多(Open vSwitch, Central Database, Northbound Database, Southbound Database…), 安装配置过程较复杂并且难维护,加上ovn-kubernetes在当时还不太成熟, 试用了一段时间后放弃. 经过近两年的发展, Windows容器环境已经能达到准生产环境的标准, 所以本文基于社区大神们提供的开源组件及相关文档,阐述基于L3 Upstream ToR网络模型的Linux/Windows混合集群的网络配置过程 本文目的 在不修改原有的Kubernetes Linux集群网络的基础上加入Windows节点, 实现Windows/Linux节点间的网络互通: Container to Container Pod to Pod Container to Service Pod to Service 关于L3 Upstream ToR 首先引用官方一张图说明一下upstream ToR网络模型: 这张图来源于Kubernetes官网文档 – 在 Kubernetes … Read more 基于Upstream-ToR网络的Kubernetes Windows Node配置

0 comments

How to install specific hotfix on Windows Server

Windows容器环境有个特点, Host与Container的OS Builder Number必须匹配, 有点场景甚至要求Revision Number匹配, 所以经常要为K8s Node安装指定Revision 的hotfix,  用powershell在线安装时下载过程缓慢而不可控, 体验最好的路径还是直接找到相应Revision Number的msu安装包,直接安装: 1. 从Windows Update History网站找到版本对应的KB. 如: Windows Server 1809 OS Build 10.0.17763.1158 https://support.microsoft.com/en-us/help/4549949 2. 在Windows Update Catelog按KB搜索: https://www.catalog.update.microsoft.com/ 找到相应的下载包. 如17763.1158对应的KB4549949: https://www.catalog.update.microsoft.com/Search.aspx?q=KB4549949 3. 下载msu安装包后使用wusa指令安装即可: wusa windows10.0-kb4549949-x64_90e8805e69944530b8d4d4877c7609b9a9e68d81.msu 附: 为了防止Windows Node版本变更, 还要关闭Windows Auto Update, 防止Node OS自己变更版本: a). 查看Auto Update 状态: %systemroot%\system32\Cscript %systemroot%\system32\scregedit.wsf /AU /v b). 禁用 Windows … Read more How to install specific hotfix on Windows Server

0 comments

For Windows Container, you need to set –image-pull-progress-deadline for kubelet

Windows镜像动则几个G, 基于Windows Server Core的镜像5~10G, Windows节点上的kubelet在下载镜像的时候经常会cancel掉: Failed to pull image “XXX”: rpc error: code = Unknown desc = context canceled   造成这个问题的原因是因为默认的image pulling progress deadline是1分钟, 如果1分钟内镜像下载没有任何进度更新, 下载动作就会取消, 比较大的镜像就无法成功下载. 见官方文档: If no pulling progress is made before this deadline, the image pulling will be cancelled. This docker-specific flag only works when container-runtime is set to docker. (default … Read more For Windows Container, you need to set –image-pull-progress-deadline for kubelet

0 comments

DOS中通过chcp修改console code page

UTF-8格式的日志文件, DOS中通过type命令查看时显示乱码: C:\app\Manager\Log\RootManagerServer>type Root_20200527_135730_Trace.html 1590559051 0 0 Trace 0 0 Bind Port:Listen:8800<br> 1590559051 0 0 Trace 0 0 鏈嶅姟鍣ㄧ洃鍚鍙?8800<br> 1590559051 0 0 Trace 0 0 Bind Port:Listen:9800<br> 1590559051 0 0 Trace 0 0 瀹㈡埛绔洃鍚鍙?9800<br> 通过chcp命令修改code page为65001后显示正常: C:\app\Manager\Log\RootManagerServer>type Root_20200527_135730_Trace.html 1590559051 0 0 Trace 0 0 Bind Port:Listen:8800<br> 1590559051 0 0 Trace 0 0 服务器监听端口:8800<br> 1590559051 0 … Read more DOS中通过chcp修改console code page

0 comments

Using diskpart to create partition in Windows

DISKPART DISKPART> list disk 磁盘 ### 状态 大小 可用 Dyn Gpt ——– ————- ——- ——- — — 磁盘 0 联机 50 GB 0 B 磁盘 1 脱机 50 GB 50 GB DISKPART> select disk 1 DISKPART> online disk 1 DISKPART> list disk 磁盘 ### 状态 大小 可用 Dyn Gpt ——– ————- ——- ——- — — … Read more Using diskpart to create partition in Windows

0 comments

Implementing Graceful Shutdown in Windows Container

Kubernetes Linux Pod中,当通过kubectl删除一个Pod或rolling update一个Pod时, 每Terminating的Pod中的每个Container中PID为1的进程会收到SIGTERM信号, 通知进程进行资源回收并准备退出. 如果在Pod spec.terminationGracePeriodSeconds指定的时间周期内进程没有退出, 则Kubernetes接着会发出SIGKILL信号KILL这个进程。 通过 kubectl delete –force –grace-period=0 … 的效果等同于直接发SIGKILL信号. 但SIGTERM和SIGKILL方式在Windows Container中并不工作, 目前Windows Container的表现是接收到Terminating指令5秒后直接终止。。。 参见:https://v1-18.docs.kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#v1-pod V1.Pod.terminationGracePeriodSeconds – this is not fully implemented in Docker on Windows, see: reference. The behavior today is that the ENTRYPOINT process is sent CTRL_SHUTDOWN_EVENT, then Windows waits 5 seconds by default, and finally shuts down … Read more Implementing Graceful Shutdown in Windows Container

0 comments