一、克隆虚拟机,组成至少3台虚拟机
1.克隆出的新机器,如果原机器是固定ip,则需要设置不冲突的新的ip。
设置虚拟机为命令行启动界面
systemctl set-default multi-user.target
设置虚拟机为图形启动界面
systemctl set-default graphical.target
创建集群
docker swarm init
加入集群(每个集群的token是不一样的)
docker swarm join --token SWMTKN-1-1ju4os68l3ise668a44m4yf8qebwf9epesnl9dwetnoh5j8dwy-bjybh8bvy7d550lwq07hda9db 192.168.109.133:2377
在集群的管理节点输入
docker swarm join-token worker
docker swarm join-token manager
获取相应的加入命令,在别的节点输入,实现新节点的加入
节点退出集群,两步命令
第一步,在退出的节点上输入docker swarm leave
第二步,在管理节点上输入docker node rm xxxxx
设置不同的hostname
hostnamectl set-hostname 238
集群的数目:一般是奇数,总数目一般是管理节点的数目2倍+1
三、服务的管理
创建服务:docker service create --replicas 4 --name myservice alpine ping baidi.com
查询服务:docker service ls
查询某个服务在节点的运行分摊情况:docker service ps myservice
改变某个服务的任务数量:docker service scale myservice=7
故障的偏移和重新平衡,当集群中某个工作节点故障时,该节点上的任务会被管理节点重新调度,实现故障的迁移和任务的重新负载分担。
强制重新分配业务(一般不使用):
docker service update --force myservice
只查看running的任务
docker service ps myservice -f desired-state=running
替换镜像:
docker service update --image alpine:3 myservice
四、服务端口发布
docker service create --name r-nginx -p 4569:80 --replicas 2 nginx
进入其中一个副本,修改其主页
echo Good > /usr/share/nginx/html/index.html
集群对外体现的服务由集群随机从复制副本返回
全局的服务命令:
docker service create --name g-nginx -p published=4588,target=80,mode=host --mode global nginx
五、节点管理
节点的状态只有3种,active状态表示这个节点正常,可以正常运行老任务,而且可以接受新任务的安排;drain状态叫做排空状态,把所有运行的老任务排空,让管理节点重新安排,并且不再接受新任务;pause状态,老任务正常运行,但是不接受新任务。
把其中一个节点设置为drain状态
docker node update --availability drain 238
对于全局服务来讲,使用drain状态节点的网址访问网页,不能得到服务;全局服务总数目减少一个。对于复制服务来讲,仍然每个节点都能访问网页,并且服务的副本数量保持不变。
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!