大版本升级方案

6.x 到7.x

  • 如果版本不是6.8.23则先升级到6.8.23
  • 6.8.23再升级到7.x

滚动更新

# 关闭自动分片迁移
PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.enable": "primaries"
  }
}

#进行一次写盘
POST _flush/synced
#停止所有机器学习任务
#停止一个节点进行升级
#用新的程序或者镜像启动节点(注意配置文件必要设置,例如发现地址、集群名称等)
#升级必要的插件
#开启自动分片迁移
PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.enable": null
  }
}
#查看集群状态变绿后再进行后续动作
GET _cat/health?v
#按照上面步骤升级其他节点
……
#最后通过下面网址查看所有节点的版本
GET /_cat/nodes?h=ip,name,version&v

#例子
docker run --name esdata -it --net host -e node.name=esdata -e xpack.security.enabled=false -e cluster.name=dev   -v /data/esdata:/usr/share/elasticsearch/data es624

docker run --name esdata6823 -it --net host -e node.name=esdata -e xpack.security.enabled=true -e xpack.security.transport.ssl.enabled=true -e cluster.name=dev   -v /data/esdata:/usr/share/elasticsearch/data elasticsearch:6.8.23

docker run --name esdata7177 -it --net host -v /home/ice/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -e node.name=esdata -e xpack.security.enabled=true -e xpack.security.transport.ssl.enabled=true -e cluster.name=dev   -v /data/esdata:/usr/share/elasticsearch/data elasticsearch:7.17.7