Kubernetes集群中添加Windows工作节点指南
概述
本文将详细介绍如何在现有的kubeadm创建的Kubernetes集群中添加Windows Server工作节点。Windows节点支持是Kubernetes v1.18版本引入的beta特性,允许您在混合操作系统环境中运行工作负载。
前提条件
在开始之前,请确保满足以下要求:
- 已安装Windows Server 2022或更高版本的操作系统实例,并拥有管理员权限
- 已通过kubeadm init命令创建了一个运行的Kubernetes集群
- 控制平面节点已按照标准kubeadm集群创建流程完成配置
Windows节点添加流程
1. 安装容器运行时containerd
Windows节点需要使用containerd作为容器运行时。安装步骤如下:
- 以管理员身份打开PowerShell会话
- 下载并运行安装脚本:
curl.exe -LO https://raw.githubusercontent.com/kubernetes-sigs/sig-windows-tools/master/hostprocess/Install-Containerd.ps1
.\Install-Containerd.ps1 -ContainerDVersion 1.7.22
重要参数说明:
ContainerDVersion:指定containerd版本,注意不要包含"v"前缀netAdapterName:可根据实际网络环境调整网络适配器名称skipHypervisorSupportCheck:如果机器不支持Hyper-V,需要设置此参数
2. 安装kubeadm和kubelet
执行以下命令安装Kubernetes组件:
curl.exe -LO https://raw.githubusercontent.com/kubernetes-sigs/sig-windows-tools/master/hostprocess/PrepareNode.ps1
.\PrepareNode.ps1 -KubernetesVersion v1.28.0
注意:请根据您的集群版本调整KubernetesVersion参数。
3. 加入Kubernetes集群
使用kubeadm init输出的join命令将Windows节点加入集群:
kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>
常见问题解决:
-
令牌过期:默认join令牌24小时后过期,可在控制平面节点上创建新令牌:
sudo kubeadm token create -
获取CA证书哈希:如果缺少discovery-token-ca-cert-hash,可在控制平面节点上运行:
sudo cat /etc/kubernetes/pki/ca.crt | openssl x509 -pubkey | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //' -
IPv6地址格式:如果使用IPv6地址,需要将地址用方括号括起来,例如:
[2001:db8::101]:2073
4. 网络配置
混合Linux和Windows节点的集群需要特殊的网络配置。目前支持Windows的CNI插件包括:
- Flannel:配置简单,适合大多数场景
- Calico:提供更高级的网络策略功能
配置要点:
- 控制平面节点上的CNI插件需要额外配置以支持Windows节点
- 必须确保网络插件版本与Windows兼容
5. (可选)安装kubectl
如需在Windows节点上使用kubectl,可参考官方文档进行安装配置。
验证节点状态
加入完成后,在控制平面节点上运行:
kubectl get nodes
稍等片刻,应该能看到新加入的Windows节点显示在节点列表中。
后续步骤
成功添加Windows节点后,您可以:
- 部署Windows兼容的工作负载
- 了解如何添加更多Linux工作节点扩展集群
- 配置节点亲和性和污点,控制工作负载调度
注意事项
- Windows节点功能仍处于beta阶段,生产环境使用前请充分测试
- 确保Windows节点与集群其他组件版本兼容
- 某些Kubernetes特性在Windows上可能不可用或行为不同
通过以上步骤,您已成功将Windows Server工作节点加入Kubernete集群,为运行Windows容器应用奠定了基础。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



