You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes集群能否混用Windows与Linux节点?Azure AKS实操咨询

Azure AKS添加Windows节点池(混合集群)指南

当然支持!AKS完全允许你在现有Linux集群基础上添加Windows节点池,形成混合操作系统的集群环境。你没找到对应az aks的直接选项,是因为这个操作不是修改原有集群配置,而是要添加独立的Windows节点池——AKS要求不同OS类型的节点必须放在单独的节点池中。

前提条件

在操作前,请确认你的集群满足以下要求:

  • 集群使用Azure CNI网络模型:Kubenet不支持Windows节点,如果当前集群用的是Kubenet,需要重新创建集群并选择Azure CNI(无法直接切换网络模型)。
  • Kubernetes版本不低于1.20(建议使用1.27+等较新的稳定版,确保对Windows节点的兼容性)。
  • 资源组和集群拥有足够的权限创建VM相关资源。

具体操作步骤

1. 查看现有节点池(可选)

先确认当前集群的节点池情况,避免命名冲突:

az aks nodepool list --resource-group <你的资源组名称> --cluster-name <你的AKS集群名称> -o table

2. 添加Windows节点池

使用az aks nodepool add命令创建Windows节点池,替换括号内的参数为你的实际值:

az aks nodepool add \
  --resource-group <资源组名称> \
  --cluster-name <AKS集群名称> \
  --name winpool \
  --node-count 2 \
  --os-type Windows \
  --node-vm-size Standard_D2s_v3 \
  --kubernetes-version <与集群控制平面一致的K8s版本> \
  --enable-node-public-ip false # 根据你的网络需求选择是否开启公网IP
  • --name:节点池名称需符合规则——仅用小写字母、数字和连字符,首尾必须是字母/数字,长度不超过12字符。
  • --node-vm-size:选择支持Windows的VM规格,避免使用B系列部分小型实例这类不兼容的规格。
  • --kubernetes-version:可通过az aks show --resource-group <资源组> --name <集群名> --query kubernetesVersion查看当前集群版本,确保两者一致。

3. 验证节点池创建结果

执行以下命令检查节点池状态:

az aks nodepool show --resource-group <资源组名称> --cluster-name <AKS集群名称> --name winpool

也可以用kubectl查看节点状态:

kubectl get nodes -o wide

你会看到标注为Windows的节点处于Ready状态,说明添加成功。

关键注意事项

  • Windows节点池无法作为系统节点池:系统节点池必须是Linux类型,Windows节点只能作为用户节点池。
  • 应用镜像兼容性:部署到Windows节点的Pod必须使用Windows兼容镜像,比如mcr.microsoft.com/windows/servercore或mcr.microsoft.com/windows/nanoserver系列。
  • DaemonSet限制:大部分自定义DaemonSet无法在Windows节点运行,仅微软官方提供的少数组件(如Azure CNI相关)支持Windows。
  • 节点升级:Windows节点池的OS升级需单独操作,与Linux节点池的升级流程相互独立。

内容的提问来源于stack exchange,提问作者CKS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:41:17