Kubernetes 集群中添加 Windows 工作节点指南
前言
在现代混合云环境中,Kubernetes 集群经常需要同时管理 Linux 和 Windows 工作节点。本文将详细介绍如何将 Windows Server 2022 或更高版本的工作节点加入到现有的 kubeadm 集群中。
准备工作
在开始之前,请确保满足以下条件:
- 已有一个运行中的 kubeadm 集群(控制平面已初始化)
- 准备加入集群的 Windows Server 2022 或更高版本机器
- 该 Windows 机器具有管理员权限
详细步骤
1. 安装容器运行时
Windows 节点需要容器运行时来管理容器。我们推荐使用 containerd:
# 下载安装脚本
curl.exe -LO https://raw.githubusercontent.com/kubernetes-sigs/sig-windows-tools/master/hostprocess/Install-Containerd.ps1
# 执行安装(替换为实际的 containerd 版本号)
.\Install-Containerd.ps1 -ContainerDVersion 1.7.22
安装时需要注意:
- 根据网络环境可能需要调整
netAdapterName
参数 - 如果主机不支持 Hyper-V,需要添加
-skipHypervisorSupportCheck
参数 - 如需自定义 CNI 路径,后续需要相应配置网络插件
2. 安装 Kubernetes 组件
安装 kubeadm 和 kubelet:
# 下载准备脚本
curl.exe -LO https://raw.githubusercontent.com/kubernetes-sigs/sig-windows-tools/master/hostprocess/PrepareNode.ps1
# 执行安装(使用与集群匹配的 Kubernetes 版本)
.\PrepareNode.ps1 -KubernetesVersion v1.28.0
3. 加入集群
使用 kubeadm init 输出的命令加入集群:
kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>
如果遇到问题:
- 令牌过期可使用
kubeadm token create
创建新令牌 - 丢失 CA 证书哈希可通过控制平面节点上的命令重新获取
4. 网络配置
Windows 节点需要特殊的网络配置。目前支持的网络插件包括:
- Flannel:配置简单,适合基础需求
- Calico:提供更丰富的网络策略功能
选择适合的插件并按照其官方文档进行配置。
验证节点状态
加入集群后,在控制平面节点上运行:
kubectl get nodes -w
稍等片刻应该能看到新加入的 Windows 节点状态变为 Ready。
可选配置
安装 kubectl
如需在 Windows 节点上使用 kubectl:
# 下载最新稳定版
curl.exe -LO "https://dl.k8s.io/release/$(curl.exe -L -s https://dl.k8s.io/release/stable.txt)/bin/windows/amd64/kubectl.exe"
# 添加到系统路径
$env:PATH += ";$pwd"
# 验证安装
kubectl version --client
注意事项
- Windows 节点与 Linux 节点在网络和存储配置上存在差异
- 某些 Kubernetes 特性在 Windows 上可能不可用或表现不同
- 建议为 Windows 节点添加适当的节点选择器和容忍度
后续步骤
- 了解如何管理混合节点集群
- 探索 Windows 容器特有的部署模式
- 配置适合 Windows 工作负载的存储解决方案
通过以上步骤,您已成功将 Windows 工作节点加入到 Kubernetes 集群中,可以开始部署 Windows 容器工作负载了。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考