如何将docker swarm的manager节点降级为worker节点?
2023-09-11 14:14:16 时间
将manager降级为worker
这个问题,说来挺有意思的,我在集群里面创建了2个manager,然后,模拟将第2个manager节点,从集群中移出去,结果发现报错了:
[root@nccztsjb-node-07 ~]# docker node rm cw5bome4a9g1rzelivxejd31c Error response from daemon: rpc error: code = FailedPrecondition desc = node cw5bome4a9g1rzelivxejd31c is a cluster manager and is a member of the raft cluster. It must be demoted to worker before removal
报错信息说:在移除该节点是manager节点,在移除之前,必须首先降级为worker节点。
降级的方法也很简单:
docker node demote cw5bome4a9g1rzelivxejd31c
使用node的demote参数,后面加上node的ID 【通过docker node ls可以查看到】
[root@nccztsjb-node-07 ~]# docker node demote cw5bome4a9g1rzelivxejd31c Manager cw5bome4a9g1rzelivxejd31c demoted in the swarm.
降级后,可以看到,原来在MANAGER STATUS列中的Reachable状态已经没有了,说明是个worker节点。
[root@nccztsjb-node-07 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION mjktd9is5xd8d4el2awrqby5k * nccztsjb-node-07 Ready Active Leader 20.10.17 u87i9artgcnyki0osp9gvylu3 nccztsjb-node-08 Ready Active 20.10.17 z1x3ufsdxekrt6w5n37m7azfe nccztsjb-node-09 Ready Active 20.10.17 cw5bome4a9g1rzelivxejd31c nccztsjb-node-10 Ready Active 20.10.17
manger降级之后,就可以对其进行remove的操作了。当然remove之前要先drain才行。
将worker升级为manager
那反过来,将worker升级为manager 呢?
docker node promote cw5bome4a9g1rzelivxejd31c
[root@nccztsjb-node-07 ~]# docker node promote cw5bome4a9g1rzelivxejd31c Node cw5bome4a9g1rzelivxejd31c promoted to a manager in the swarm. [root@nccztsjb-node-07 ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION mjktd9is5xd8d4el2awrqby5k * nccztsjb-node-07 Ready Active Leader 20.10.17 u87i9artgcnyki0osp9gvylu3 nccztsjb-node-08 Ready Active 20.10.17 z1x3ufsdxekrt6w5n37m7azfe nccztsjb-node-09 Ready Active 20.10.17 cw5bome4a9g1rzelivxejd31c nccztsjb-node-10 Ready Active Reachable 20.10.17 [root@nccztsjb-node-07 ~]#
这样,就将worker节点升级为manager节点了。
相关文章
- docker探索-CentOS7中配置Docker的yum源并升级安装docker1.13(十)
- 简单的Docker编排工具TOSCA
- [Docker] Run Stateless Docker Containers (Volumes with docker compose)
- docker学习-docker镜像
- 通过Docker、Alpine Linux和Unbound实现DNS服务器托管
- 【3】docker命令集
- docker 每次都得source /etc/profile以及如何查看Docker容器环境变量、向容器传递环境变量
- /var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间
- 80.第十七章 企业级容器技术docker -- Docker 数据管理(八)
- 【云原生之Docker实战】使用docker部署yesplaymusic个人音乐播放器
- 【云原生之Docker实战】使用Docker部署nginx管理工具nginxWebUI
- 【云原生之Docker实战】使用docker部署koel家庭个人音乐服务器
- 【云原生之Docker实战】使用docker部署Jellyfin个人影音服务器
- 【云原生之Docker实战】使用docker部署PicUploader图床工具
- 【云原生之Docker实战】使用docker部署nacos平台
- docker-compose------------启动etcd
- Docker决战到底(九) 部署MySQL服务
- Docker Compose 部署Nginx服务实现负载均衡
- moby、docker-ce与docker-ee的区别
- Docker----docker-compose初体验
- Docker学习笔记10:docker使用之仓库管理
- Docker学习笔记09:docker使用之容器连接
- 【Docker系列】3.docker-compose安装redis
- Docker部署rancherv2.44及故障排查