哭佛林

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1.1   使用Docker Swarm搭建集群

官方文档:https://docs.docker.com/engine/swarm/swarm-tutorial/

1.1.1   准备三台虚拟机

192.168.56.99 (hostname: swarm-manager)作为swarm manager

192.168.56.10 (hostname: swarm-worker1)作为swarm agent1

192.168.56.11 (hostname: swarm-worker2)作为swarm agent2

#修改虚拟机hostname命令:

hostnamectl --static set-hostname swarm-manager

hostnamectl status

#开放相关端口

firewall-cmd --zone=public --add-port=2377/tcp --permanent && \

firewall-cmd --zone=public --add-port=7946/tcp --permanent && \

firewall-cmd --zone=public --add-port=7946/udp --permanent && \

firewall-cmd --zone=public --add-port=4789/tcp --permanent && \

firewall-cmd --zone=public --add-port=4789/udp --permanent && \

firewall-cmd --reload

  

1.1.2   创建一个虚拟机作为 manger 节点

docker swarm init --listen-addr 0.0.0.0 --advertise-addr 192.168.56.99

docker swarm join-token manager       #查看加入为swarm manager的token

docker swarm join-token worker        #查看加入为swarm worker的token

  

 

 

1.1.3   另外两个虚拟机作为worker节点

docker swarm join \

    --token SWMTKN-1-4544tttduruaww6toemdp3rxr5cnbp6tqqz9n8ej11g2x3sxzd-ax6ok1jwje314qi68e1xdjeio \

    192.168.56.99:2377

  

1.1.4   在Manager上查看docker swarm的节点

docker node ls

  

 

 

1.1.5   Swarm Work脱离集群,并加入Manager

docker swarm leave           #脱离集群

docker swarm join \

    --token SWMTKN-1-4544tttduruaww6toemdp3rxr5cnbp6tqqz9n8ej11g2x3sxzd-ax6ok1jwje314qi68e1xdjeio \

    192.168.56.99:2377

  

1.1.6   删除Swarm Work

docker swarm leave           #脱离集群

docker node rm nodeid        #在Mananger上使用命令:docker node ls查看

  

1.1.7   建立跨主机网络

docker network ls     #查看现有的网络

  

 

 

docker network inspect ingress   #查看现有的网络情况

  

      

 

docker network create --subnet=10.0.9.0/24 --driver overlay swarm-network

  

--subnet 用于指定创建overlay网络的网段,也可以省略此参数

1.1.8   在网络上运行容器

docker service create --name test-ping --replicas 2 --network=swarm-network alpine ping baidu.com

docker service ps test-ping      #查看Swarm中的运行容器

  

 

 

1.1.9   扩展应用(Scaling)

docker service scale test-ping=4

  

 

 

1.1.10      对service服务进行指定运行

docker service create --network swarm-network --name idoall-org --constraint 'node.hostname==c4' -p 9000:9000 testweb

  

1.1.11      测试docker swarm网络是否能互通

在mananger上执行

docker ps

docker exec -it ba8b sh

  

 

 

其中:test-ping.1.np2cl2hq02tal9iaysl6i02th是worker1中的运行名称

1.1.12      测试dokcer swarm自带的负载均衡

docker service create --name whoami --mode global -p 8000:8000 jwilder/whoami

docker service ps whoami

  

              在任意一台机器上执行以下命令,可以发现,每次获取到的都是不同的值,超过4次以后,会继续轮询到第1台机器

    curl $(hostname --all-ip-addresses | awk '{print $1}'):8000

1.1.13      删除正在运行的Service

docker service rm test-ping

  

1.1.14      相关资料

Docker Swarm 介绍:https://www.cnblogs.com/ityouknow/p/8903975.html

https://www.cnblogs.com/jsonhc/p/7784466.html

https://www.cnblogs.com/lion.net/p/6160548.html

https://www.jianshu.com/p/9eb9995884a5

使用NGINX和NGINX Plus进行Docker Swarm负载均衡:http://dockone.io/article/2050

posted on 2019-05-02 16:01  哭佛林<Kufolin>  阅读(120)  评论(0编辑  收藏  举报