我必须编辑elasticsearch.yml才能创建备份(必须这样设置path.repo):
path.repo: /mnt/backup
但是我在Kubernetes上运行了elasticsearch,我想同时从有状态集或类似于所有pod的东西中设置path.repo。 谁能告诉我该怎么做? 谢谢
我试图使用configmap来做到这一点,如下所示: https://discuss.elastic.co/t/modify-elastic-yml-file-in-kubernetes-pod/103612
但是当我重新启动Pod时,它抛出了一个错误:
/usr/share/elasticsearch/bin/run.sh: line 28: ./config/elasticsearch.yml: Read-only file system
答案 0 :(得分:1)
ConfigMap作为只读文件系统安装到Pod,无法更改此行为。
如果要一次修改所有Pod的配置,则必须将config /目录作为ReadWriteMany永久卷(NFS,GlusterFS等)安装。
答案 1 :(得分:0)
我刚刚意识到,您甚至不必编辑elasticsearch.yml来设置path.repo设置,就可以将其添加为statefulset中的环境变量,如下所示: 环境: -名称:path.repo 值:“ / mnt / backup”
答案 2 :(得分:0)
在 6.8 版中,配置文件处于保密状态。 我无法更改更新 base64 编码配置的秘密。 但是,显然配置它的方法是按照此处记录的方式进行设置:
https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-node-configuration.html
yaml 文件是可以在对象浏览器下找到的文件:
您可以从命令行使用:
kubectl get -o yaml Elasticsearch elasticsearch-name-of-your-deployment > your.yml
然后修改它并应用它
kubectl apply -f your.yml