我正在AWS EKS中的Kubernetes上部署Elasticsearch集群。我的规范是:
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: es
spec:
version: 7.14.0
nodeSets:
- name: node
count: 2
config:
node.store.allow_mmap: false
volumeClaimTemplates:
- metadata:
name: elasticsearch-data
spec:
accessModes:
- ReadWriteOnce
storageClassName: ebs-sc
resources:
requests:
storage: 1024Gi
字符串
当我部署时,我得到了这个错误:
第一个月
规范包括volumeClaimTemplates
,它用于声明持久存储。我不明白为什么它说volume claim templates can only have their storage requests increased, if the storage class allows volume expansion
。
我已经检查了PVC是空的:
$ kubectl get pvc
No resources found in default namespace.
型
我有下面的存储类规范:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: ebs-sc
provisioner: ebs.csi.aws.com
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
型
3条答案
按热度按时间jm2pwxwz1#
另一个答案是正确的,K8s不知道如何更改存储类,同时保留数据,因为卷也必须更改。
通过更改nodeset名称,旧的nodeset将消失,而新的nodeset将能够从干净的状态中产生(假设您可以不保留旧pod中的数据)。
您可以首先将节点集重命名为新名称,让K8刷新并生成新的pod,然后将节点集重命名为原始名称并重复。
zpjtge222#
如果有人点击了这个和其他注意事项:如果你在初始部署时没有为elasticsearch-data添加正确的volumeClaimTemplate到列表中,那么你最终会处于无法增加卷大小的状态。解决方法是通过kubectl简单地增加卷大小,让kubernetes处理它。这个Operator目前仍然有一些限制。
vsdwdz233#
第一个月
使用ECK,当您应用了引用了允许卷扩展的RISK Class的spec时,您可以增加存储大小并重新应用spec。除此之外,volumeClaimTemplates部分不允许进行其他更改**。如果您必须更改volumeClaimTemplates(例如引用不同的RISK Class,减少存储大小),您还需要将名称重命名为
nodeSets
并重新应用spec。示例:字符串