docker swarm集群迁移(ES示例)

发布时间 2023-04-19 15:23:21作者: JentZhang

docker swarm 集群迁移

0. 先down掉集群内的stack
docker stack down es
1. 集群解散
# 在每个节点执行
docker swarm leave --force

注意:

  1. 记得备份每个节点对应的标签 node1: tag1,tag2 node2:...
  2. 集群解散之后,之前创建的swarm网络(elastic)被移除了,加入新集群之后需要重新创建,但是volume的数据依然存在
2. 在新的集群生成worker的token
docker swarm join-token worker
3. 在每个需要加入集群的机器执行上面一步生成的命令
docker swarm join --token SWMTKN-1-33n2y5u5nqqi1imgvd8spkjk5hhlvw2571bhcmlk0ldu27wp27-1ik1a6vx0e6ewe6n042pe34tu 172.25.114.9:2377
4. 重新打标签

注意:这里的标签与主机的对应关系跟之前的标签与主机的对应关系一致,不然会导致数据丢失!

docker node update --label-add es.replica=1 iZbp14elaus2o5tcs2a1qgZ
docker node update --label-add es.replica=2 iZbp14elaus2o5tcs2a1qrZ
docker node update --label-add es.replica=3 iZbp14elaus2o5tcs2a1q9Z
5. 重新创建网络
docker network create --driver overlay elastic
6. 重新deploy服务
docker stack deploy -c docker-compose-es-cluster-tls-test.yml es
7. 检查ES的服务状态
  1. 检查每个service的日志
  2. 登录kibana控制台查看数据