36.12.2. 执行 Elasticsearch 完整集群重启


当更改 Elasticsearch 的主要版本或其他更改时,建议您完全重启,这可能会在更改过程中造成数据完整性。

注意

如果 openshift_logging_use_ops 配置为 True,则需要对 ops 集群重复执行 Elasticsearch 集群的所有操作。

注意

logging-es-ops 服务进行更改时,使用 "es-ops-blocked" 和 "es-ops" in patch

  1. 禁用 Elasticsearch 集群的所有外部通信,同时禁用它。编辑非集群日志记录服务(如 logging-eslogging-ops)不再与运行的 Elasticsearch pod 匹配:

    $  oc patch svc/logging-es -p '{"spec":{"selector":{"component":"es-blocked","provider":"openshift"}}}'
  2. 执行分片同步刷新,确保在关机之前没有等待写入磁盘的待定操作:

    $ oc exec -c elasticsearch <any_es_pod_in_the_cluster> -- \
              curl -s \
              --cacert /etc/elasticsearch/secret/admin-ca \
              --cert /etc/elasticsearch/secret/admin-cert \
              --key /etc/elasticsearch/secret/admin-key \
              -XPOST 'https://localhost:9200/_flush/synced'
  3. 防止在有意关闭节点时进行分片平衡:

    $ oc exec -c elasticsearch <any_es_pod_in_the_cluster> -- \
              curl -s \
              --cacert /etc/elasticsearch/secret/admin-ca \
              --cert /etc/elasticsearch/secret/admin-cert \
              --key /etc/elasticsearch/secret/admin-key \
              -XPUT 'https://localhost:9200/_cluster/settings' \
              -d '{ "transient": { "cluster.routing.allocation.enable" : "none" } }'
  4. 完成后,对于 Elasticsearch 集群中的每个 dc,请缩减所有节点:

    $ oc scale dc <dc_name> --replicas=0
  5. 缩减完成后,对于 Elasticsearch 集群都有的每个 dc,运行 oc rollout latest 来部署最新版本的 dc 对象:

    $ oc rollout latest <dc_name>

    您将看到部署了新的 pod。当 pod 有两个就绪的容器后,您可以继续到下一个 dc

  6. 部署完成后,对于 Elasticsearch 集群都有每个 dc,扩展节点:

    $ oc scale dc <dc_name> --replicas=1
  7. 扩展完成后,启用到 ES 集群的所有外部通信。编辑非集群日志记录服务(如 logging-eslogging-ops)来再次运行 Elasticsearch Pod:

    $ oc patch svc/logging-es -p '{"spec":{"selector":{"component":"es","provider":"openshift"}}}'
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.