我是在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
1条答案
按热度按时间vvppvyoh1#
我能够按照下面的过程升级磁盘大小(手动),以避免任何停机时间-
kubectl delete sts <statefulset-name> --cascade=orphan
(这将确保elasticsearch pod始终处于运行状态)kubectl patch pvc {{ template "elasticsearch.fullname" . }}-data -p '{"spec":{"resources":{"requests":{"storage":"10Gi"}}}}'
[这会将现有的PVC修补为新的磁盘大小]1.然后用新的更新的磁盘大小重新创建sts。[应用具有新磁盘大小的
helm upgrade
或应用kubectl apply -f newsts.yaml