docker-swarm

Docker Swarm是一个原生的Docker集群管理工具。Swarm将一组Docker主机作为一个虚拟的Docker主机来管理。

实验环境:rhel7.3

swarm管理节点:server1 172.25.254.101

节点1:server2 172.25.254.102

节点2:server3 172.25.254.103

1.swarm管理节点初始化

[root@server1 ~]# docker swarm init
Swarm initialized: current node (fak2wocca1nlfca7r75slge0j) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-5vjk1xsmivnxtlxzrsaepo0dhn8avfbnlwh4mf53t7okxys6mb-8l1a8wjcnuy0sn2pdc7yckzng 172.25.254.101:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

2.将上方提示的命令分别在各个结点运行

[root@server2 ~]# docker swarm join --token SWMTKN-1-5vjk1xsmivnxtlxzrsaepo0dhn8avfbnlwh4mf53t7okxys6mb-8l1a8wjcnuy0sn2pdc7yckzng 172.25.254.101:2377
This node joined a swarm as a worker.
[root@server3 ~]# docker swarm join --token SWMTKN-1-5vjk1xsmivnxtlxzrsaepo0dhn8avfbnlwh4mf53t7okxys6mb-8l1a8wjcnuy0sn2pdc7yckzng 172.25.254.101:2377
This node joined a swarm as a worker.

3.查看swarm管理节点是否已将节点1、节点2添加成功

[root@server1 ~]# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
fak2wocca1nlfca7r75slge0j *   server1             Ready               Active              Leader              18.06.1-ce
zjzcu3d5exhhkbmw6ksptr2wf     server2             Ready               Active                                  18.06.1-ce
v3r996yxqqyuxbken870qoki8     server3             Ready               Active                                  18.06.1-ce

在集群中添加nginx服务,--replicas表示开启多少个任务,这里开启了3个nginx,那么3个nginx服务会平均分配到各个节点上,前提是每个节点都有nginx镜像。

[root@server1 ~]# docker service create --name web --publish 80:80 --replicas 3 nginx

可以使用docker cp index.html 容器ID:/usr/share/nginx/html来写入测试页面

测试:因为这里每个80端口都被映射到server1的80端口,所以会调度访问server1-server3

for i in {1..10}; do curl 172.25.254.101; done

查看web服务集群

[root@server1 ~]# docker service ps web

添加至6个运行nginx服务的容器

[root@server1 ~]# docker service scale web=6
  [root@server1 ~]# docker service ps web
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
nc4pwi4j2xht        web.1               nginx:latest        server1             Running             Running 16 minutes ago                       
vq3g6hlge2ie        web.2               nginx:latest        server2             Running             Running 16 minutes ago                       
qh5hq7u0iv7u        web.3               nginx:latest        server3             Running             Running 16 minutes ago                       
llhbqg8bt6r8        web.4               nginx:latest        server2             Running             Running 29 seconds ago                       
qb5l0g0o7q4w        web.5               nginx:latest        server3             Running             Running 29 seconds ago                       
ht8vsmwn2zf3        web.6               nginx:latest        server1             Running             Running 29 seconds ago         
可以分别给这6个nginx写入web测试页,然后访问,查看效果

监控swarm集群

这里用到的是visualizer,visualizer是官方的简单容器状态可视化工具

1.手工导入镜像(或者pull)

[root@server1 ~]# docker load -i visualizer.tar

2.

[root@server1 ~]# docker service create \
>   --name=viz \
>   --publish=8080:8080/tcp \
>   --constraint=node.role==manager \
>   --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
>   dockersamples/visualizer

3.浏览器访问:172.25.254.101:8080  可以看到容器运行的效果,此时可以添加容器,删除容器,更新容器,都可以在浏览器中看到

[root@server1 ~]# docker service scale web=33     增加到33个容器

docker ps -aq|wc -l  此命令用于查看本节点下有多少个容器
docker service rm web  删除web集群

也可以使用自己创建的网络创建集群
docker network create -d overlay my_net1
docker service create --name web --network my_net1 --publish 80:80 --replicas 30 nginx
开启30个容器,平均分配到三个swarm节点上,也就是三个虚拟机上。
docker service update --image rhel7:v1 --update-delay 5s --update-parallelism 10 web
将容器集群更新为rhel7:v1   后面的参数表示每5秒更新10个

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值