Docker系列器十一:容器编排docker swarm和水平扩展

容器编排 Swarm mode

在单机docker中,思考
1,怎么去管理这么多容器?
2,怎么能方便的横向扩展?
3,如果容器down了,怎么能自动恢复?
4,如何去更新容器而不影响这些业务?
5,如何去监控追踪这些容器?
6,怎么去调度容器的创建?
7,保护隐私数据?

Docker Swarm Mode Architecture
swarm是一种集群的架构
swarm里面有几点,节点node有两种角色
第一种:Manager  (raft consensus group)
 (大脑,最少有两个,同步数据另外一个Manager,通过分布式的数据库Raft)
第二种:worker  (Gossip network)
(数据的同步是Gossip)
 

实验流程:
准备三台主机:
Manager     192.168.205.10
node1        192.168.205.20
node2        192.168.205.30

查看帮助:
docker swarm --help

docker swarm init --advertise-addr=192.168.205.10
在Manager节点上运行就是Manager

[root@docker-Manager]# docker swarm init --advertise-addr=192.168.205.10
Swarm initialized: current node (vc0u406d1te6egsltsvalwlan) is now a manager.

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

    docker swarm join --token SWMTKN-1-4mb7762wejys88h2jewdb11avy2jsq9rgupuivkkjgyp1hsi78-6liafahn1txejnntva103t7oc 192.168.205.10:2377

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

Mangaer节点运行后会生成:
docker swarm join --token SWMTKN-1-4mb7762wejys88h2jewdb11avy2jsq9rgupuivkkjgyp1hsi78-6liafahn1txejnntva103t7oc 192.168.205.10:2377
将此节点复制后再node2和node3上运行

回到Manager节点上,运行

docker node ls 
查看是否添加成功
[root@docker-Manager]# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
vc0u406d1te6egsltsvalwlan *   docker-host         Ready               Active              Leader              18.06.0-ce
aswwj27ubfepmcukhlb1zwixd     docker-node2        Ready               Active                                  18.06.0-ce
u6s0jdbkai3ag4b9j1q4n6ddc     docker-node3        Ready               Active                                  18.06.0-ce
添加成功
docker service的创建

docker service create --name demo busybox sh -c "while true;do sleep 3600;done"

查看是否运行成功
docker service ls

REPLICAS 1/1 是水平扩展的意思

将刚刚demo扩展为5个
docker service scale demo=5

在Manager 查看是否五个正常运行:
docker service ls
REPLICAS 5/5
docker service ps demo

重点:
docker swarm 可以做横向扩展
当一台机器上的服务不可用或者shutdown时候
主节点Manager会继续发出创建命令,使他维持在扩展的总数。
这样做的意义就是保证了服务的高可用性,宕机后自动启动,维持服务的可靠性。

Manage删除刚刚创建的DEMO
docker service rm demo

主节点上删除后,在node1和node2上docker ps发现也是同步消失了。

dcoker service --help 查看帮助

猜你喜欢

转载自blog.csdn.net/weixin_36171533/article/details/81837202