无需kubectl delete重启ECK Elasticsearch集群安装插件的可行方案问询
解决方案
以下两种方案均只需要修改Elasticsearch的YAML配置,通过kustomize部署即可生效,无需执行任何kubectl命令:
- 方法1:修改Pod模板注解触发滚动重建
你只需要在现有Elasticsearch YAML的podTemplate.metadata下新增一个自定义注解,每次需要触发重启时修改注解的值即可,修改后的配置片段示例如下:
podTemplate: metadata: annotations: restart-trigger: "2024052001" # 每次需要触发重启时修改该值即可 spec: initContainers: - name: install-plugins command: - sh - -c - | bin/elasticsearch-plugin install --batch ingest-attachment
ECK Operator会实时监控Elasticsearch资源的配置变更,只要检测到Pod模板有修改,就会自动滚动重建对应nodeSet下的所有Pod,重建过程中会执行你配置的initContainer完成插件安装。
- 方法2:修改nodeSet名称触发节点重建
如果注解修改没有触发重建,你可以将nodeSet的name字段修改为新值,例如将原来的name: default改为name: default-with-plugin,提交配置后ECK会先创建新名称的nodeSet对应的Pod,等新Pod状态正常后再自动删除旧nodeSet的Pod,同样可以完成Pod重建安装插件的需求。
验证安装结果
Pod重建完成后,调用Elasticsearch的API接口GET _cat/plugins,如果返回结果中存在ingest-attachment插件条目,即说明安装成功。
内容的提问来源于stack exchange,提问作者Saligia
相关产品推荐
相关产品推荐

