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

Azure Kubernetes集群OS磁盘扩容难题:如何避免重建集群解决空间不足

解决AKS节点OS磁盘扩容不丢失应用的方案

你遇到的这个问题确实挺头疼——直接扩容OS磁盘触发集群销毁重建,那之前部署的应用肯定都没了。不过别担心,我们可以通过滚动更新节点池的方式来扩容磁盘,整个过程会逐个替换节点,应用的副本会自动调度到正常节点上,完全不用重新部署所有应用。

下面是具体的操作步骤:

1. 先确认当前节点池的配置

先用Azure CLI查看你的节点池信息,搞清楚当前OS磁盘大小和节点池名称:

az aks nodepool show --resource-group <你的资源组名> --cluster-name <AKS集群名> --name <节点池名称> --query 'osDiskSizeGb'

2. 滚动更新节点池扩容磁盘

使用az aks nodepool update命令修改磁盘大小,这个操作会触发滚动更新:AKS会先创建带60GB磁盘的新节点,把现有Pod调度过去,再删掉旧节点,全程不会让你的应用断服(毕竟你每个应用都有2个副本,刚好能在节点替换时保证至少一个Pod运行)。

az aks nodepool update --resource-group <你的资源组名> --cluster-name <AKS集群名> --name <节点池名称> --node-osdisk-size 60

提示:这个过程需要一点时间,具体取决于节点数量和应用规模,你可以通过Azure门户或者az aks nodepool list命令查看进度。

3. 验证扩容结果

等滚动更新完成后,再确认磁盘大小已经生效:

az aks nodepool show --resource-group <你的资源组名> --cluster-name <AKS集群名> --name <节点池名称> --query 'osDiskSizeGb'

也可以登录到节点上直接查看磁盘空间:

# 获取节点SSH权限
az aks ssh --resource-group <你的资源组名> --name <AKS集群名> --node-name <节点名称>
# 查看OS磁盘空间
df -h /

额外的磁盘空间优化建议

为了避免以后再遇到磁盘占满的问题,给你几个日常维护的小技巧:

  • 清理闲置容器镜像:节点上会积累很多没用的镜像,手动清理或者开启kubelet的自动清理功能:
    # 在节点上执行
    docker system prune -af
    
  • 限制Pod的存储资源:给每个Pod配置ephemeral-storage的请求和限制,防止单个Pod占用过多OS磁盘空间。
  • 分流存储负载:把应用的日志、临时数据挂载到节点的临时磁盘(/mnt/azure)或者Azure持久卷上,减少OS磁盘的压力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:44:58