Swarm工具使用

1. 准备 3 台实例机 ip 地址分别是 192.168.0.131 ~ 133

2. 在三台机器上安装 docker 和 修改 docker 启动文件 配置 vim /etc/sysconfig/docker 加入 -H tcp://0.0.0.0:2375
OPTIONS='-g /cutome-path/docker -H tcp://0.0.0.0:2375'

3. 三台机器启动 docker 分别 docker pull swarm


4. 创建 swarm 集群

-- 创建 swarm
docker swarm init --advertise-addr 192.168.0.131
返回: SWMTKN-1-16izmwyfwxhok9lgoq8idlefumipgq2y7iv2pjja6zf53epaya-0cqbeordfj92bj86prcajmft3

--另外俩台机器加入 集群

docker swarm join \
--token SWMTKN-1-16izmwyfwxhok9lgoq8idlefumipgq2y7iv2pjja6zf53epaya-0cqbeordfj92bj86prcajmft3 \
192.168.0.131:2377

可以用以下命令查看 swarm集群的信息:

docker node list
docker network ls ()默认一个公用网络名称 ingress
docker service ls

5. 创建服务
docker service create --replicas 2 --name mynginx_swarm -p 8000:80 --network=ingress nginx

-- 调整 replicas 数量
docker service scale hpuwfzb963yy=3 或 docker service scale mynginx_swarm =3

-- 查看服务
docker service ps mynginx_swarm 或 docker service ps hpuwfzb963yy

--删除服务,慎用
docker service rm mynginx_swarm


6.滚动更新实践
创建一个 redis服务练手
docker service create \
--replicas 3 \
--name redis \
--update-delay 10s \
redis:3.0.6

--update-delay 是一个设置, 在后续的更新过程中,每个 replica 更新间隔 10 秒

2.开始更新
docker service update --image redis:3.0.7 redis


--暂停一个节点的服务
docker node update --availability drain worker1
worker1 是节点名, 节点id


--查看服务
docker service inspect --pretty mynginx_swarm
docker service inspect mynginx_swarm


参考:
http://www.runoob.com/docker/docker-install-nginx.html
https://www.jianshu.com/p/0e231a928ee6
http://dockone.io/article/227
https://www.cnblogs.com/liuyansheng/p/8178341.html
https://blog.csdn.net/u011781521/article/details/80468985 (主要)
https://docs.docker.com/swarm/ (字典)

 


Swarm实战

因为现在新版本的Docker已经结合了Swarm,所以在这里主要结合的是新版本功能的Docker的演示。

1、Swarm基本命令
docker swarm init 创建Swarm,同时让swarm-manager 成为 manager node。
执行该命令后,显示添加worker node和manager node 需要执行的命令。
–advertise-addr 指定与其他node通信的地址。

docker swarm init --advertise-addr [ip]

查看swarm worker的连接令牌
docker swarm join-token worker

查看swarm manager的连接令牌
docker swarm join-token manager

加入docker swarm集群,这里的token和ip更换为具体需求下的即可。
如果忘记可以用docker swarm join-token worker查看。

docker swarm join --token SWMTKN-1-1next4gw4m7yx3j6q1f4z4ooimvp3pc1ahsnnwifu5w1h6b247-f10wphfpnyyunzphr1qp4kew1 192.168.1.245:2377

 

查看集群中的节点
docker node ls

将节点升级为manager
docker node promote work-node1

将节点降级为worker
docker node demote work-node1

只能删除down状态的节点,如何要删除active状态的,需要加上–force
docker node rm --force worker-manager

查看服务列表
docker service ls

查看具体服务信息,这里是web服务
docker service ps web

posted @ 2020-12-07 18:34  walkersss  阅读(412)  评论(0编辑  收藏  举报