升级 ES 集群

最近更新时间:2020-08-14 10:37:11

腾讯云 ES 提供了版本升级的功能,支持 ES 从低版本到高版本的升级,以及高级特性的升级,可根据业务需要对集群进行升级,实现业务的无缝过渡。

支持的升级操作

ES 支持以下两种类型的升级。

  1. Elasticsearch 版本升级

    源 Elasticsearch 版本 目标 Elasticsearch 版本
    低版本(如5.6版本) 高版本(如6.8版本)
  2. 高级特性升级

    源高级特性版本 目标高级特性版本
    开源版 基础版、白金版
    基础版 白金版

    高级特性版本说明:
    基础版和白金版集成了官方高级商业特性插件(原 X-Pack),包含安全(Security)、SQL、机器学习(Machine Learning)、监控(Monitor)等高级功能,其中基础版只包含 SQL 的一部分和监控,白金版则包含所有高级特性,详细介绍可查看 高级特性(X-Pack)

    说明:

    • 以上两种类型的升级一次只能操作一种,不能同时进行。低版本/开源版升级到高版本时,可同时选择升级到基础版。
    • 5.x 版本只有开源版,没有基础版和白金版。

关于升级的重启

  1. 对于升级重启情况,在执行升级操作时,集群可能:

    • 不重启
    • 滚动重启(节点依次重启,期间服务可以正常访问,但性能可能受到部分影响,建议在集群负载不高时进行)
    • 全量重启(所有节点完全关闭后重启,期间服务不可访问,需谨慎选择)

    根据您的选择,升级界面对这些情况均会给出提示说明。

  2. 对于集群全量重启的情况,因为会涉及业务不可访问,这里做一个特别说明:
    集群全量重启与 ES 集群用户登录认证 从关闭到开启有关(可极大提升集群访问安全性),当您的集群从未开启此功能状态变化为开启此功能状态时,根据 Elastic 官方的设计要求,集群需要全量重启,期间集群不可用,因此建议您选择不影响业务的时机来慎重开启此功能。

    警告:

    从关闭到开启 ES 集群用户登录认证,您还需要提前改造业务代码,通过 API 访问集群,在调用 API/SDK 时传入用户名和密码参数,否则升级后集群无法正常访问。

  3. 对 ES 集群用户登录认证能力的版本支持情况说明如下:

    • 开源版没有此能力
    • 6.8及以上基础版支持此能力(可选择是否开启)
    • 白金版默认开启此能力

    举例:

    • 从6.4开源版(无此能力)升级到6.8基础版(选择不开启此能力),不需要全量重启集群。
    • 从6.4开源版(无此能力)升级到6.8基础版(选择开启此能力),需要全量重启集群。
    • 从6.8基础版(未开启此能力)升级到6.8白金版(默认开启此能力),需要全量重启集群。
    • 从6.8基础版(已开启此能力)升级到6.8白金版(默认开启此能力),不需要全量重启集群。

升级注意事项

Elasticsearch 5.x版本与6.x版本兼容及使用说明

  1. index 多 type
    Elasticsearch 从 6.x 开始,不再支持一个索引多个 type。从5.x版本升级到6.x版本后,新建多 type 的索引将会报错,原有在5.x版本创建的多 type 索引,不受影响,可以正常写入。
  2. curl 访问集群
    用 curl 访问集群时,需要增加请求header -H 'Content-Type: application/json'
     curl -XPUT http://10.0.0.2:9200/china/city/beijing -H 'Content-Type: application/json' -d'
     {
         "name":"北京市",
         "province":"北京市",
         "lat":39.9031324643,
         "lon":116.4010433787,
         "x":6763,
         "level.range":4,
         "level.level":1,
         "level.name":"一线城市",
         "y":6381,
         "cityNo":1
     }
  3. 配置项兼容
    Elasticsearch 不同版本之间会存在一些不兼容的配置,如果您有设置,升级后可能会影响集群的使用。ES 升级功能提供了配置项的检查流程,也提供了调整说明,见下文 升级检查
  4. 更多说明请参考 Breaking changes in 6.0

升级处理流程说明

Elasticsearch 版本升级,需要先进行升级检查、数据备份两个步骤。前两项成功后,才会开始执行升级操作。

  1. 升级检查
    说明:

    只有 Elasticsearch 版本升级会有。

    检查升级前后两个版本是否有不兼容的配置,如果检查不通过,流程就会终止。如果升级过程中,遇到升级检查不通过的情况,您可以查看具体的检查项和相应的解决方案。具体请参考 升级检查。您也可以在升级操作前,只选择升级检查操作,查看集群是否满足升级条件。
  2. 快照备份
    说明:

    只有 Elasticsearch 版本升级会有。

    升级操作前,ES 会先对您的集群进行快照备份,以防升级操作失败时,可以用快照还原集群。所以,如果快照这一步失败,升级流程也会终止。快照备份耗时同集群数据量有关,如果集群未开启自动快照备份,且数据量较大,第一次快照时间会比较长。
  3. 升级过程和集群重启
    6.x及以上版本的集群,支持高级特性的升级(从开源版到基础版或白金版),升级期间服务需要重启,方式如下:
    • 若升级过程不涉及 ES 集群用户登录认证从关闭到开启,集群需滚动重启,需满足健康状态是绿色,并且不存在只配置了单个副本的索引,以及不能有 close 的索引,才能执行升级操作。升级期间,服务可以正常访问,但性能可能受到部分影响,建议在集群负载不高时进行。
    • 若升级过程涉及 ES 集群用户登录认证从关闭到开启,集群需要全量重启,期间集群会停服,服务不可访问,升级完成后才能正常访问,请谨慎选择。

集群升级操作步骤

  1. 登录 ES 控制台,进入集群详情页,单击右上角【更多操作】>【升级】。
  2. 在升级对话框中可以选择升级 Elasticsearch 版本或选择升级高级特性。

升级 Elasticsearch 版本

  1. 在升级对话框的【升级类型】中选择【升级 Elasticsearch 版本】。
  2. 在【Elasticsearch 版本】下拉框中选择要升级到的版本。
    说明:

    • 若不选择同时升级高级特性,则默认升级到高版本时保持原高级特性。
    • 特殊的:ES主版本升级,例如ES 5.x版本升级到6.x版本,可以同时把【高级特性】从开源版升级到基础版。我们也建议您选择【基础版】高级特性,其包含监控、SQL 等高级版功能。升级到6.8及以上基础版,还可以选择勾选 ES 集群用户登录认证,此时需要全量重启,期间集群会停服,服务不可访问,请谨慎选择。
  3. 我们在升级之前会先对集群状态进行检查,判断集群是否可以升级,包括检查集群的配置、集群的状态等。您可以勾选【仅做升级检查】,在单击【确定】后,仅做升级检查,不执行升级命令,您可以在详情页【集群变更记录】中查看检查结果。
    说明:

    ES主版本升级,例如5.x版本到6.x版本,有些集群级别的配置项和索引级别的配置项不兼容,需要通过【升级检查】判断集群是否可升级。整个升级检查会检查一些配置项,错误的配置项需要您进行调整,告警的配置项可以选择性调整,具体可查看 ES 版本升级检查

  4. 阅读升级须知,同意并勾选后单击【确定】开始版本升级(如勾选【仅做升级检查】则开始版本升级检查)。

升级高级特性

  1. 在升级对话框中选择【升级类型】>【升级[高级特性]版本】。
  2. 在【高级特性】中选择要升级到的高级特性版本。
  3. 单击【确定】开始升级。
    注意:

    • 高级特性升级须知:
      目前支持6.x及以上版本的高级特性升级,5.x版本不支持(5.x版本只有开源版,无基础和白金版)。
    • 升级到不同的版本,过程有所不同,具体如下:
      • 若升级过程不涉及 ES 集群用户登录认证从关闭到开启,集群需要滚动重启,期间服务访问会受短暂影响,请在服务访问量不大时进行操作。
      • 若升级过程涉及 ES 集群用户登录认证从关闭到开启,集群需要全量重启,期间集群会停服,服务不可访问,请谨慎选择。
  4. 开始升级后,可以在集群详情页的【集群变更记录】中查看升级进度。
目录