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

Azure上Helm部署的Yugabyte集群磁盘存储扩容方法咨询

Yugabyte集群磁盘扩容解决方案(Azure + Helm)

报错原因解释

你遇到的问题是Kubernetes StatefulSet的设计限制导致的:StatefulSet的spec中,除了replicas、template、updateStrategy等少数字段外,PVC模板相关的字段(比如存储大小)不允许更新。通过Helm修改values.yaml里的storage.tserver.size后执行helm upgrade,本质是要修改StatefulSet的PVC模板,这触发了K8s的禁止规则,所以报错。

可行的扩容方法

方法1:直接扩容PVC(推荐)

这是最直接高效的方式,不需要修改Helm配置或重建StatefulSet:

  • 先列出所有Yugabyte TServer的PVC:
    kubectl get pvc | grep yb-tserver
    
  • 编辑单个PVC修改存储大小:
    kubectl edit pvc data-yb-tserver-0
    
    在编辑器中找到spec.resources.requests.storage,将值改为100Gi后保存退出。
  • 批量扩容所有TServer PVC(适合多节点集群):
    for pvc in $(kubectl get pvc -l app=yb-tserver -o name); do
      kubectl patch $pvc -p '{"spec":{"resources":{"requests":{"storage":"100Gi"}}}}'
    done
    

注意:Azure磁盘支持在线扩容,无需重启Pod。扩容后可以登录TServer Pod执行df -h确认磁盘大小是否生效,若未自动识别,重启对应Pod即可。

方法2:重建StatefulSet配合Helm管理

如果希望后续通过Helm维护存储配置,可以按以下步骤操作:

  1. 先删除现有StatefulSet,但保留Pod和PVC(避免数据丢失):
    kubectl delete statefulset yb-tserver --cascade=orphan
    
  2. 修改values.yaml中storage.tserver.size为100Gi
  3. 执行Helm upgrade重新创建StatefulSet:
    helm upgrade yugabyte ./yugabyte-chart -f values.yaml
    

这种方式会让新的StatefulSet使用更新后的存储模板,后续新增TServer节点时会自动创建100GB的PVC,而现有节点的PVC已经是扩容后的,不受影响。

总结

不是只能通过kubectl直接操作PVC,但Helm的常规upgrade方式无法修改StatefulSet的PVC模板。直接扩容PVC是现有集群磁盘扩容最简便可靠的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:07:19