Docker集成了swarm做容器编排
一.容器编排Swarm介绍
- 图片
1.swarm角色
- swarm是集群架构,其中有节点,每个节点有自己的角色
- manager:节点是swarm集群的大脑,避免大脑故障,则manager节点应有两个以上,此时需要考虑到状态的同步,通过内置携带raft协议进行同步的数据库同步manager的数据
- worker:节点是swarm干活的节点,大部分容器部署在cluster上面都会运行在worker节点上面,因为worker节点多一些。其中worker节点通过gossip网络进行信息的同步。
2.Service和Replicas
- service相当于一个容器(与docker compose中含义类似),在replicas模式下需要横向做扩展,部署时一个replicas是一个容器
- 实际部署时,一个service会产生三个容器。swarm根据一定的调度算法计算容器调度到哪个机器node上面。
二.创建三个节点的集群cluster
1.方法一:使用vagrant+virtualbox
- 在vagrantfile中定义三台linux主机,执行
vagrant up
安装,通过vagrant status
查看主机状态 - 通过
vagrant ssh 主机名
进入主机查看 - 在主机内执行
docker swarm init --advertuse-addr=虚拟机ip地址
初始化一个swarm的cluster,作为swarm cluster的manager节点,安装后会有提示执行docker swarm join --token manager节点内容
,向此manager节点添加worker节点 - 通过
docker node ls
可以看到当前swarm集群中的节点信息
2.方法二:使用docker machine+virtualbox
- 创建docker-machine的三台虚拟机机器
docker-machine create manager-node docker-machine create worker1-node docker-machine create worker2-node
- 余下虚拟机内操作同上
3.方法三:使用play with docker
- 登陆网站,open一个session,添加三个instance
- 其他操作同上
未完待续…