kubernetes Helm升级在www.example.com中的更新期间失败spec.resources.requests.storage因为它们被禁止

798qvoo8  于 2023-06-28  发布在  Kubernetes
关注(0)|答案(1)|浏览(128)

我是在EKS 1.24和使用ElasticSearch 6.5.4 Helm 图表。我按照下面的步骤来更新磁盘大小。

volumeClaimTemplates:
  - metadata:
      name: elasticsearch-data
    spec:
      {{ if and (.Values.enableEncryption) (eq .Values.enableEncryption true) }}
      storageClassName: gp2-encrypted
      {{ end }}
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: {{ .Values.volumeSize }}Gi

1.将helm/templates下的spec.resources.requests.storage更新为新的所需值
1.执行helm upgrade
1.我得到以下错误

Error: UPGRADE FAILED: cannot patch "elasticsearch" with kind StatefulSet: StatefulSet.apps "elasticsearch" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', 'updateStrategy', 'persistentVolumeClaimRetentionPolicy' and 'minReadySeconds' are forbidden

可能的解决方案-
1.删除现有statefulset并应用具有更新值的新statefulset-kubectl delete statefulset elasticsearch && kubectl apply -f new-statefulset.yaml
1.以多模式部署ES,其中主机、数据和客户端将具有单独的角色
现在我正在寻找一个解决方案,我可以处理它在现有的 Helm 图表配置,而不是转换我的 Helm 图表multi

vvppvyoh

vvppvyoh1#

我能够按照下面的过程升级磁盘大小(手动),以避免任何停机时间-

  1. kubectl delete sts <statefulset-name> --cascade=orphan(这将确保elasticsearch pod始终处于运行状态)
  2. kubectl patch pvc {{ template "elasticsearch.fullname" . }}-data -p '{"spec":{"resources":{"requests":{"storage":"10Gi"}}}}' [这会将现有的PVC修补为新的磁盘大小]
    1.然后用新的更新的磁盘大小重新创建sts。[应用具有新磁盘大小的helm upgrade或应用kubectl apply -f newsts.yaml

相关问题