Swarm集群
集群环境:
服务器 |
角色 |
docker版本 |
系统版本 |
9.1.1.128 |
Manager |
docker 18.09-ce |
Ubuntu:18.04 |
9.1.1.129 |
Agent01 |
docker 18.09-ce |
Ubuntu:18.04 |
9.1.1.131 |
Agent02 |
docker 18.09-ce |
Ubuntu:18.04 |
一、安装docker[每个服务器执行]
1.获取最新版本的 Docker 安装包
wget -qO- https://get.docker.com/ | sh
2.启动docker 后台服务和开机自启
sudo service docker start
sudo systemctl enable docker
3.镜像加速
请在该配置文件中加入[/etc/docker/daemon.json](没有该文件的话,请先建一个)
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
二、安装swarm
拉取swarm镜像
Docker pull swarm
Node节点管理
初始化集群【Manage执行】:
docker swarm init --advertise-addr 9.1.1.128
init:初始化swarm集群;
–- advertise-addr 指定与其他node通信的地址
其他节点加入【Agent01 Agent02】:
作为管理节点【以便Leader节点挂了,能选出新的Leader】
docker swarm join --token
SWMTKN-1-4pgv25ml63amdnkg32ib4saexdpohh8q9wwtpdksdragwa2s14-472jqfsd16i38g61oklpgf0jm
9.1.1.128:2377
本人测试【Agent01作为作为管理节点,Agent02作为工作节点】:Manager挂了,另外两个节点不能选举出Leader
查看集群节点【每个节点都能看到】
docker node ls
- demote:从集群中降级一个或多个节点;
- inspect:在一个或多个节点上显示详细信息;
- ls:列出群中的节点;
- promote:将一个或多个节点提升为Manager;
- ps:列出在一个或多个节点上运行的任务,默认为当前节点;
- rm:从群中删除一个或多个节点;只能删除down状态的节点,如何要删除active状态的,需要加上–force
- update:更新节点;
Eg: [将Agent02降为工作节点]
docker node demote Agent02
Service服务管理
创建服务:
docker service create --replicas 1 --name test01 busybox top
参数数明:
--replicas :创建的副本数
--name:容器名称取名为test01
busybox:这个是docker hub中的一个官方镜像;
top:通过busybox镜像运行容器后执行的top命令,因为busybox镜像运行后没有任何进程在跑,如果不在后台跑个进程容器会自动退出,如果你用其它的官方镜像就不需要这种操作,所以我们随便跑个top进程;
查看副本运行情况
docker service ps test01
显示服务详细信息
docker service inspect test01
扩展服务数量【副本怎么扩展为3个】
docker service scale test01=3
更新服务某些项【限制为0.5个cpu】
docker service update --limit-cpu=0.5 test01
滚动更新、回滚更新服务版本
1.创建服务
docker service create --replicas 3 --name web_test -p 80:80 nginx:1.11.5
2.更新到版本【1.11.6】
docker service update --image nginx:1.11.6 web_test
3.回滚服务版本[版本回滚到1.11.5]
docker service update --rollback web_test