docker swarm集群搭建

网友投稿 277 2022-10-19

docker swarm集群搭建

简介

Swarm:作用于运行docker engine(引擎)的多个主机组成的集群。node:每一个docker engine都是一个node(节点),分为manager和worker。manager node:负责执行容器的编排和集群的管理工作,保持并维护swarm处于期望的状态。swarm可以有多个manager node,它们会自动协调并选举出一个Leader执行编排任务。但相反,不能没有manager node。worker node:接受并执行由manager node派发的任务,并且默认manager node也是一个work node,不过可以将它设置为manager-only node,让它只负责编排和管理工作。service:用来定义worker上执行的命令。

部署准备

head c1 c2192.168.196.130 192.168.196.132 192.168.196.131

关闭防火墙

# firewalldsystemctl stop firewalld.servicesystemctl disable firewalld.service# selinuxvi /etc/selinux/config改为 SELINUX=disabled

时间同步

与head时间同步即可ntpdate 192.168.196.130

head节点

docker swarm init --advertise-addr 192.168.196.130# 成功执行后会生成下面的代码docker swarm join --token SWMTKN-1-2jk3nhq8rz7eukh1rk66w197xfnbgvgull2zoq9fvge26et302-25s1k7n303gi19pksw2gqve7p 192.168.196.130:2377

c1和c2节点分别执行下面的代码,意思是让c1和c2加入到集群中

docker swarm join --token SWMTKN-1-2jk3nhq8rz7eukh1rk66w197xfnbgvgull2zoq9fvge26et302-25s1k7n303gi19pksw2gqve7p 192.168.196.130:2377

在head主机上查看节点状态

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSIONjkgnbzwo1jakkhaive404mi78 c1 Ready Active 20.10.6cgehjyv4hf8fu0voe648oxw0w c2 Ready Active 20.10.6k6cgvrxx2t0t3wjr4666xy9cw * head Ready Active Leader 20.10.6# 说明目前head是领导者

部署docker swarm集群网络

docker network create -d overlay --attachable docker # overlay覆盖型网络

部署一个图形化webui界面

docker pull dockersamples/visualizer

运行镜像

docker run -d -p 8080:8080 -e HOST=192.168.196.130 -e PORT=8080 -v /var/run/docker.sock:/var/run/docker.sock --name visualizer dockersamples/visualizer

网页访问

192.168.196.130:8080

让所有节点执行命令任务

docker service create --replicas 5 --network docker --name web01 -p 80 nginx:latest# docker service create 创建服务# --name 表示服务的名称# --replicas 表示指定5个正在运行的实例(可以理解为1个实例等于1个容器)# 上面的意思是让所有worker节点共执行5个实例,任务为开启nginx

让leader节点不参加工作

docker node update head --availability drain

查看service任务信息

docker service ps web01

增加和减少容器数量

docker service scale web01=0 # 减少docker service sacle web01=8 # 增加

常用命令

离开集群:docker swarm leave删除节点:docker node rm node02 #这里注意,只有申请离开集群的node才可以删除。生成令牌,可以是manager身份或worker身份:docker swarm join-token [manager | worker]降级为work与升级为manager:docker node demote(降级):将swarm节点的manager降级为workdocker node promote(升级):将swarm节点的work升级为manager查看service列表:docker service ls查看service信息:docker service ps xxx增加容器与减少容器:docker service scale web1=8docker service scale web1=3 #等号后接容器的数量。删除服务docker service rm web01(启动时指定的name名称)docker node update node01 --availability drain 可以设置三个参数:active"|"pause"|"drain #活跃”|“暂停”|“不工作

-------------------------------------------

个性签名:代码过万,键盘敲烂!!!

如果觉得这篇文章对你有小小的帮助的话,记得“推荐”哦,博主在此感谢!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用俩个链接在一起的容器运行wordpress
下一篇:非常适合新手学生的Java线程池超详细分析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~