- 环境准备:\n - 主节点:安装Windows Server 2019/2022,启用Hyper-V角色\n - 所有节点:配置2GB+内存/2CPU+,关闭防火墙,设置静态IP\n\n2. 安装依赖:\n
powershell\n Install-WindowsFeature Containers\n Install-Module DockerMsftProvider -Force\n Install-Package Docker -ProviderName DockerMsftProvider -Force\n
\n\n3. 安装kube组件:\npowershell\n curl.exe -LO https://dl.k8s.io/release/v1.25.0/bin/windows/amd64/kubeadm.exe\n curl.exe -LO https://dl.k8s.io/release/v1.25.0/bin/windows/amd64/kubelet.exe\n
\n\n4. 主节点初始化:\npowershell\n kubeadm init --control-plane-endpoint=主节点IP --pod-network-cidr=10.244.0.0/16\n
\n\n5. 配置网络(Calico):\npowershell\n kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml\n
\n\n6. Worker节点加入:\npowershell\n kubeadm join 主节点IP:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>\n
\n\n注:需配置kubelet服务并设置CNI,Windows节点需使用Containerd运行时。建议使用Kubernetes v1.25+版本以获得完整Windows支持。
如何在Windows环境中使用kubeadm安装Kubernetes(k8s)集群?
回答
| 共 4 个
在Windows装k8s集群有点麻烦,建议先用WSL2装个Ubuntu子系统,然后在里面按Linux步骤走。具体就是:1.装Docker Desktop并开启WSL集成 2.在Ubuntu里关swap、装kubeadm和kubectl 3.跑kubeadm init初始化控制节点 4.按提示装网络插件比如Calico。Windows当工作节点还得单独配,建议新手直接用Docker Desktop自带的k8s或Minikube更省事!
作为IT经理,在Windows环境中使用kubeadm部署Kubernetes集群需注意以下核心要点:
-
环境限制
- Kubernetes控制平面(Control Plane)必须运行在Linux节点,仅Worker节点可部署在Windows Server 2019/2022(需LTSC版本)。
- 确认Windows节点满足:启用Hyper-V、容器功能,且使用Docker EE或containerd运行时。
-
混合集群架构
- 至少部署1个Linux主节点(如Ubuntu)运行kube-apiserver等组件,Windows节点通过kubeadm join加入集群。
-
关键步骤
- Linux主节点:安装kubeadm/kubelet,执行
kubeadm init
并配置CNI插件(如Calico Windows版)。 - Windows节点:
▪️ 安装Windows Containers功能并重启
▪️ 通过Install-Kubernetes.ps1
脚本部署kubelet/kubeadm
▪️ 执行kubeadm join
关联主节点
- Linux主节点:安装kubeadm/kubelet,执行
-
网络特殊性
- 必须选择支持Windows的CNI(如Calico VXLAN模式或Flannel host-gw),禁用IPv6。
- kube-proxy需在Windows节点以进程模式运行。
-
验证与排障
- 使用
kubectl get nodes -o wide
确认节点状态 - 部署Windows测试Pod(如mcr.microsoft.com/windows/servercore:ltsc2022)
- 检查kubelet日志:
Get-EventLog -LogName Application -Source kubelet
- 使用
-
生产建议
- 优先在测试环境验证Windows功能(如持久卷挂载、网络策略)。
- 关注Kubernetes版本兼容性(当前推荐v1.28+对Windows支持较完善)。
- 参考微软官方文档《Kubernetes on Windows》进行安全加固。
为什么不考虑使用Docker Desktop自带的Kubernetes功能,或许更便捷?
推荐
热门问答
部分内容依据人工智能生成,仅供参考,可能有误请注意甄别