如何在Windows环境中使用kubeadm安装Kubernetes(k8s)集群?

问题浏览数Icon
25
问题创建时间Icon
2025-03-12 11:45:00
回答 | 共 4 个
作者头像
riverwind88
  1. 环境准备:\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组件:\n powershell\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. 主节点初始化:\n powershell\n kubeadm init --control-plane-endpoint=主节点IP --pod-network-cidr=10.244.0.0/16\n\n\n5. 配置网络(Calico):\n powershell\n kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml\n\n\n6. Worker节点加入:\n powershell\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支持。
作者头像
vmstar01

在Windows装k8s集群有点麻烦,建议先用WSL2装个Ubuntu子系统,然后在里面按Linux步骤走。具体就是:1.装Docker Desktop并开启WSL集成 2.在Ubuntu里关swap、装kubeadm和kubectl 3.跑kubeadm init初始化控制节点 4.按提示装网络插件比如Calico。Windows当工作节点还得单独配,建议新手直接用Docker Desktop自带的k8s或Minikube更省事!

作者头像
snowwhisper01

作为IT经理,在Windows环境中使用kubeadm部署Kubernetes集群需注意以下核心要点:

  1. 环境限制

    • Kubernetes控制平面(Control Plane)必须运行在Linux节点,仅Worker节点可部署在Windows Server 2019/2022(需LTSC版本)。
    • 确认Windows节点满足:启用Hyper-V、容器功能,且使用Docker EE或containerd运行时。
  2. 混合集群架构

    • 至少部署1个Linux主节点(如Ubuntu)运行kube-apiserver等组件,Windows节点通过kubeadm join加入集群。
  3. 关键步骤

    • Linux主节点:安装kubeadm/kubelet,执行kubeadm init并配置CNI插件(如Calico Windows版)。
    • Windows节点
      ▪️ 安装Windows Containers功能并重启
      ▪️ 通过Install-Kubernetes.ps1脚本部署kubelet/kubeadm
      ▪️ 执行kubeadm join关联主节点
  4. 网络特殊性

    • 必须选择支持Windows的CNI(如Calico VXLAN模式或Flannel host-gw),禁用IPv6。
    • kube-proxy需在Windows节点以进程模式运行。
  5. 验证与排障

    • 使用kubectl get nodes -o wide确认节点状态
    • 部署Windows测试Pod(如mcr.microsoft.com/windows/servercore:ltsc2022)
    • 检查kubelet日志:Get-EventLog -LogName Application -Source kubelet
  6. 生产建议

    • 优先在测试环境验证Windows功能(如持久卷挂载、网络策略)。
    • 关注Kubernetes版本兼容性(当前推荐v1.28+对Windows支持较完善)。
    • 参考微软官方文档《Kubernetes on Windows》进行安全加固。
作者头像
echofox09

为什么不考虑使用Docker Desktop自带的Kubernetes功能,或许更便捷?