Azure AKS Windows集群Pod无法创建:处于ContainerCreating状态的问题排查与解决请求
从你提供的诊断信息来看,Windows AKS集群中Pod卡在ContainerCreating状态,核心诱因是Windows节点专属的CSI存储插件DaemonSet未在所有节点就绪:csi-azuredisk-node-win和csi-azurefile-node-win这两个组件负责为Windows Pod提供存储卷管理、Pod沙箱初始化的关键能力,当它们未完全就绪时,kubelet无法完成沙箱容器的启动,最终触发operation timeout: context deadline exceeded错误。
可能的具体原因
- 部分Windows节点上的CSI Pod启动失败(比如镜像拉取失败、节点资源耗尽、权限配置错误)
- Windows节点OS版本与CSI插件版本不兼容(AKS对Windows节点OS和CSI组件版本有严格的匹配要求)
- 节点网络异常,导致CSI Pod无法连接Azure存储服务或集群API服务器
- 节点上的容器运行时(如containerd)故障
分步解决步骤
1. 定位异常CSI Pod与节点
首先要明确哪些Windows节点上的CSI Pod未就绪:
# 查看csi-azuredisk-node-win的Pod分布与状态 kubectl get pods -n kube-system -l app=csi-azuredisk-node-win -o wide # 查看csi-azurefile-node-win的Pod分布与状态 kubectl get pods -n kube-system -l app=csi-azurefile-node-win -o wide
找到状态为CrashLoopBackOff、ImagePullBackOff或Error的Pod,执行describe获取详细错误日志:
kubectl describe pod <异常Pod名称> -n kube-system
比如如果是镜像拉取失败,可能是节点无法访问Azure容器注册表(ACR),需要检查节点网络连通性或ACR的权限配置。
2. 验证Windows节点与CSI插件的版本兼容性
AKS要求Windows节点OS版本与CSI插件版本严格匹配:
# 查看Windows节点的OS版本 kubectl get nodes -o wide | grep akswin
确保你的节点OS版本(比如Windows Server 2022)与当前AKS集群版本对应的CSI插件版本兼容(例如AKS 1.27版本适配Windows Server 2022)。如果版本不匹配,可以:
- 升级Windows节点池到兼容的OS版本
- 升级AKS集群到与节点OS匹配的版本
3. 检查节点资源与容器运行状态
节点资源耗尽或容器运行时故障也会导致CSI Pod无法启动:
# 查看节点CPU、内存使用情况 kubectl top nodes
如果节点资源不足,需要扩容节点池或清理节点上的冗余资源。
登录到异常Windows节点(通过Azure门户或az aks node ssh命令),检查containerd服务状态:
# 查看containerd服务状态 Get-Service containerd # 如果服务未运行,启动它 Start-Service containerd
同时可以查看Windows事件查看器中的容器相关日志,排查运行时的深层异常。
4. 重新部署异常CSI Pod或DaemonSet
如果确认是CSI Pod本身的问题,先尝试删除异常Pod让DaemonSet重建:
kubectl delete pod <异常Pod名称> -n kube-system
如果删除后问题依旧,触发DaemonSet的滚动更新,强制重新部署所有节点上的CSI Pod:
kubectl rollout restart daemonset csi-azuredisk-node-win -n kube-system kubectl rollout restart daemonset csi-azurefile-node-win -n kube-system
5. 验证修复效果
等待5-10分钟后,检查CSI DaemonSet的就绪状态:
kubectl get ds -n kube-system | grep win
当csi-azuredisk-node-win和csi-azurefile-node-win的READY数都达到期望的3个后,再查看之前卡住的Pod状态:
kubectl get pods -n namespacex
如果Pod成功进入Running状态,说明问题已解决。
内容的提问来源于stack exchange,提问作者Andy Schmitt

