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

EKS 1.24中Helm升级ElasticSearch 6.5.4存储请求失败求助

解决方法

1. 手动扩容现有Elasticsearch PVC

首先列出所有与Elasticsearch StatefulSet关联的PVC:

kubectl get pvc -l app=elasticsearch

针对每个PVC执行扩容命令,将<new-storage-size>替换为你需要的容量(比如50Gi):

kubectl patch pvc <pvc-name> -p '{"spec":{"resources":{"requests":{"storage":"<new-storage-size>"}}}}'

验证扩容状态,当PVC状态变为Bound且CAPACITY显示新值时,说明扩容完成:

kubectl get pvc <pvc-name>

2. 更新Helm Chart配置

修改helm/templates/statefulset.yaml中的volumeClaimTemplates部分,将存储请求值设为目标大小;或者推荐在values.yaml中添加可配置参数,方便后续维护:
在values.yaml新增配置:

elasticsearch:
  persistence:
    storageSize: 50Gi

然后在statefulset.yaml中引用该参数:

volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
          storage: {{ .Values.elasticsearch.persistence.storageSize }}

3. 执行Helm Upgrade并处理报错

执行helm upgrade命令,会触发StatefulSet更新报错(这是Kubernetes的限制导致的预期现象):

helm upgrade <release-name> ./path/to/helm-chart

该报错不会影响现有Pod和已扩容的PVC,且Helm会将新的存储配置记录到Release中——后续若需扩容Elasticsearch副本数,新创建的Pod会自动使用新的存储请求创建PVC。

关键说明

Kubernetes限制StatefulSet的volumeClaimTemplates不可修改,因为PVC与StatefulSet的每个Pod绑定,修改模板无法自动更新已存在的PVC,必须手动扩容现有PVC才能完成存量节点的磁盘调整。此方案无需删除StatefulSet或转换为多角色部署,完全基于现有Helm Chart配置实现需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:37:23