GKE Standard集群磁盘空间不足,Pod始终处于ContainerCreating状态求助
解决GKE Standard集群节点磁盘满导致Pod无法创建的问题
问题诊断
从kubectl describe pod的警告信息可明确:节点/var/lib/kubelet目录所在磁盘空间耗尽,导致kubelet无法创建Pod所需的投影卷(kube-api-access-xxx)。
解决步骤
1. 定位异常节点
先找到问题Pod所在的节点:
kubectl get pods -o wide
查看异常Pod对应的NODE字段,确定具体节点。
2. 清理节点无用资源(无需SSH)
- 删除未使用的镜像:手动触发节点镜像清理:
kubectl debug node/<节点名称> -it --image=alpine -- chroot /host crictl rmi --prune - 清理终止状态的Pod:批量删除已完成或失败的Pod以释放空间:
kubectl get pods --all-namespaces -o json | jq '.items[] | select(.status.phase == "Failed" or .status.phase == "Succeeded") | "kubectl delete pod \(.metadata.name) -n \(.metadata.namespace)"' | sh - 清理kubelet旧Pod数据(紧急操作):若上述方法无效,可清理节点上所有Pod的本地卷数据(执行后需重启节点上的所有Pod):
kubectl debug node/<节点名称> -it --image=busybox -- chroot /host rm -rf /var/lib/kubelet/pods/*
3. 永久解决:扩容节点磁盘
若节点磁盘本身容量不足,调整节点池的磁盘大小:
gcloud container node-pools resize <节点池名称> --cluster <集群名称> --zone <集群区域> --disk-size <新容量,如50GB> --node-count <当前节点数>
执行后GKE会滚动更新节点,替换为新磁盘容量的节点。
4. 预防措施
- 确保GKE节点自动清理镜像功能开启(默认已开启)。
- 为Pod配置磁盘资源限制,避免单个Pod过度占用空间。
- 通过Kubernetes CronJob定期自动清理终止状态的Pod。
内容的提问来源于stack exchange,提问作者Thotsaphon Sirikutta
相关产品推荐
相关产品推荐

