运维之我的docker-swarm集群中删除节点和服务

删除swam节点

如果有的确实想要从swarm集群中删除,你应该先把这个节点容器排空,然后再把节点从集群中去掉。

排空节点(其实就是把这个节点上的容器先从其它节点启动,再停掉排空节点上的容器,保证你定义服务的预先状态不受影响)

docker node update --availability drain g36lvv23ypjd8v7ovlst2n3yt

删除指定节点

docker node rm  node9

docker node rm --force node9

删除服务

删除服务以后容器也会删除,注意:容器删除会延迟一定时间。

[[email protected] salt]# docker service rm cache_cluster2

cache_cluster2

下面操作强烈不建议随意操作

离开swarm集群(离开后发现在manager里面这个节点是down的状态,当然这状态变化是有延时的,因为需要迁移容器)

[[email protected] ~]# docker swarm leave
Node left the swarm.
[[email protected] pkg]# docker node ls
ID                           HOSTNAME    STATUS  AVAILABILITY  MANAGER STATUS
0jz3o2avbbugyoejzs1ed3djz    data-node3  Ready   Active        
2pzv4kzc2p8f7c4wqlfupp9h9 *  salt-node1  Ready   Active        Leader
37lpbieigtc2cz6njwqfe0c4b    compute1    Ready   Active        
g36lvv23ypjd8v7ovlst2n3yt    salt-node3  Ready   Active        Reachable
h14re9viizbs5yj3zunuo9zo8    salt-node2  Ready   Active        Reachable
nuf5y9ecpeupw2eb0u9z1gt3q    data-node2  Down    Active

强制离开swarm集群

docker swarm leave
--force

删除服务

删除服务以后容器也会删除,注意:容器删除会延迟一定时间。

[[email protected]
salt]# docker service rm cache_cluster2

cache_cluster2

下面做了一个实验,清空一个节点后你会看到这个节点似的状态变为Drain    ,容器变为shutdown

查看集群内的容器状态

[[email protected]
salt]# docker service ps redis3

ID            NAME          IMAGE                                                 
NODE        DESIRED STATE  CURRENT STATE            ERROR  PORTS

ub6zvbeayv1e  redis3.1     
registry.cn-hangzhou.aliyuncs.com/forker/redis:latest  salt-node3 
Running        Running 34 minutes
ago

pcgn683xixqn   \_ redis3.1 
redis:3.0.6                                           
salt-node3  Shutdown       Shutdown 34 minutes ago

y2tpi5kpfz0v  redis3.2     
registry.cn-hangzhou.aliyuncs.com/forker/redis:latest  salt-node1 
Running        Running 33 minutes
ago

pmsrkkpsjihp   \_ redis3.2 
redis:3.0.6                                           
salt-node1  Shutdown       Shutdown 33 minutes ago

w75q4im55w0l  redis3.3     
registry.cn-hangzhou.aliyuncs.com/forker/redis:latest  salt-node2 
Running        Running 34 minutes
ago

mc0badk4bk4h   \_ redis3.3 
redis:3.0.6                                           
salt-node2  Shutdown       Shutdown 34 minutes ago

排空一个节点

[[email protected] salt]# docker node update --availability drain g36lvv23ypjd8v7ovlst2n3yt
g36lvv23ypjd8v7ovlst2n3yt
[[email protected] salt]# docker node ls
ID                           HOSTNAME    STATUS AVAILABILITY  MANAGER STATUS
2pzv4kzc2p8f7c4wqlfupp9h9 *  salt-node1  Ready  Active        Leader
g36lvv23ypjd8v7ovlst2n3yt    salt-node3  Ready   Drain       
h14re9viizbs5yj3zunuo9zo8    salt-node2  Ready   Active   
 
[[email protected] salt]# docker service ps redis3
ID            NAME          IMAGE               NODE        DESIRED STATE  CURRENT STATE            ERROR  PORTS
w0jjjrdr25eh  redis3.1     registry.cn-hangzhou.aliyuncs.com/forker/redis:latest  salt-node1 
Running        Running 30 seconds
ago         
ub6zvbeayv1e   \_ redis3.1 registry.cn-hangzhou.aliyuncs.com/forker/redis:latest  salt-node3 
Shutdown       Shutdown 34 seconds
ago        
pcgn683xixqn   \_ redis3.1 redis:3.0.6                                           
salt-node3  Shutdown       Shutdown 11 hours ago          
y2tpi5kpfz0v  redis3.2     
registry.cn-hangzhou.aliyuncs.com/forker/redis:latest  salt-node1 
Running        Running 11 hours
ago           
pmsrkkpsjihp   \_ redis3.2 redis:3.0.6                                           
salt-node1  Shutdown       Shutdown 11 hours ago          
w75q4im55w0l  redis3.3     registry.cn-hangzhou.aliyuncs.com/forker/redis:latest  salt-node2 
Running        Running 11 hours
ago           
mc0badk4bk4h   \_ redis3.3 redis:3.0.6                                          salt-node2  Shutdown       Shutdown 11 hours ago

#恢复active一个节点

[[email protected] salt]# docker node update --availability Active g36lvv23ypjd8v7ovlst2n3yt
g36lvv23ypjd8v7ovlst2n3yt
时间: 2024-10-24 19:20:27

运维之我的docker-swarm集群中删除节点和服务的相关文章

Docker Swarm集群中部署Traefik负载均衡器

一.创建单节点的Docker Swarm集群 docker swarm init 二.在Swarm集群中创建一个网络 docker network create --driver=overlay traefik --attachable 三.在Swarm集群中部署traefik负载均衡器服务 docker service create \ --name traefik \ --constraint=node.role==manager \ --publish 80:80 --publish 80

同一个Docker swarm集群中部署多版本的测试环境

先介绍下用到的技术 Docker swarm: Docker官方的集群管理工具,相比kubernetes更加简单,容易入门.https://docs.docker.com/engine/swarm/ Traefik: 一个现代化的反向代理工具,原生支持Docker swarm模式,可以实现swarm的动态代理.https://docs.traefik.io/user-guide/swarm-mode/ 下图展示主要的思路: 在Docker swarm中创建某个测试版本service时,通过设置s

docker swarm 集群进入某节点容器失败的原因及解决方法

今日在自己的docker swarm 测试环境中,想进入某个节点的容器去查看下,结果进入容器失败,并且报了如下错误信息: [[email protected] ~]# docker exec -it 9a6f61107d67 /bin/bashrpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \&qu

非节点主机通过内网远程管理docker swarm集群

这是今天使用 docker swarm 遇到的一个问题,终于在睡觉前解决了,在这篇随笔中记录一下. 在 docker swarm 集群的 manager 节点上用 docker cli 命令可以正常管理集群.但是在另外一台不是集群节点的主机上,虽然设置了DOCKER_HOST环境变量 export DOCKER_HOST="tcp://manger节点内网IP:2377" 但连接不上 # docker ps Cannot connect to the Docker daemon at

故障公告:docker swarm集群“群龙无首”造成部分站点无法访问

今天傍晚 17:38-18:18 左右,由于 docker swarm 集群出现 "The swarm does not have a leader" 问题,造成博问.闪存.园子.小组.openapi 无法正常访问,由此给您带来麻烦,请您谅解. 目前我们已经迁移至 asp.net core 的站点都部署在 docker swarm 集群上,节点用的是阿里云服务器,操作系统是 ubtunu 16.04 ,docker engine 版本是 17.06.0-ce, build 02c1d8

Docker系列(十四):Docker Swarm集群

一.Swarm简介 Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源.Swarm和Kubernetes比较类似,但是更加轻便,具有的功能也较kubernetes更少一些. Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令.目前,Swarm 是 Do

linux docker swarm集群安装

1. docker swarm 简介 Docker Swarm是Docker自己的Docker容器本地集群解决方案,具有与Docker生态系统紧密集成并使用自己的API的优势.它监视跨服务器群集的容器数量,是在没有其他硬件的情况下创建群集docker应用程序的最便捷方式.它为Dockerized应用程序提供了一个小规模但有用的编排系统. 使用Docker Swarm的优点 与docker集成的集群管理工具 去中心化设计,只使用docker引擎即可创建各类节点 声明式服务模型.可以声明的方式来定义

【赵强老师】Docker Swarm集群的数据持久化

如果Docker Swarm集群中运行了mysql.nginx等服务,这些服务的数据如果没有挂载到宿主机中,那么容器一旦停止运行,那就意味着数据丢失. 有什么方法可以解决swarm集群中运行的服务能够数据持久化呢?我们可以通过volme.nfs等方法来实现swarm集群应用数据持久化,其实也和docker数据持久化的形式是一样的. 可以用两种方式来实现: volume 默认模式:工作节点宿主机数据同步到容器内. volume NFS 共享存储模式:管理节点宿主同步到工作节点宿主,工作节点宿主同步

老男孩教育运维班2016春节期末大型集群架构搭建说明

只有苦练功夫,才能所向披靡(秒杀其它竞争者),老男孩教育运维班你值得拥有!27,28,29,30年后4个班运维班即将同步开班,另有多个Python班,架构班,大数据班同步开班,成就自己,拿高薪的机会就在眼前,加油,还在观望别人拿高薪么! 伙伴们,年后你们就要飞了,春节不要太贪玩呦!一定要完成老师布置的期末架构作业. 虽然部分同学已经找到了心仪的工作,不要着急做完架构你们年后会更牛的. 为了促进大家完成期末架构,每个班级以小组为单位,完成运维班期末集群架构五架构实战(见下发的作业文档)并且做述职报