docker swarm是一个docker集群管理的应用,类似应用还有很多,只是这个直接集成在1.12的docker版本中
主要继承了swarm的集群安全特性
K-V存储
swarmkit的节点分为两类
worker 工作节点
用于接受管理节点的机器,执行命令执行容器任务,
manager 管理节点,
用来接收用户的命令请求,调整群集状态,分配容器拥有最高权限
两个节点状态可以随意切换,manager为了实现高可用,需要两台以上才可以
----------------------------------------------------------------------------------------------------------------
swarm是通过主机名跟域名互相通信
所以有条件可以使用DNS
简单的直接修改hosts文件即可
swarm需要开启一些端口
TCP,2377 群集管理端口
TCP/UDP 7946节点通讯端口 4789 overlay网络通讯端口
for i in 1 2 3 ; do ssh node$i firewall-cmd --add-port=2377/tcp ; done
for i in 1 2 3 ; do ssh node$i firewall-cmd --add-port=7946/tcp ; done
for i in 1 2 3 ; do ssh node$i firewall-cmd --add-port=7946/udp ; done
for i in 1 2 3 ; do ssh node$i firewall-cmd --add-port=4789/udp ; done
for i in 1 2 3 ; do ssh node$i firewall-cmd --add-port=4789/tcp ; done
for i in 1 2 3 ; do ssh node$i firewall-cmd --reload ; done
方便使用for循环开启端口
for 变量 in 取值范围 ; do 执行的语句 ; done 格式
------------------------------------------------------------------------------------------------------------------------------
初始化swram集群
使用命令创建集群,中间两个命令一个是添加主机成为工作节点,一个是成为管理节点/
查看集群信息,
复制上面命令到其他机器运行会自动加入集群
先开启路由转发功能,所有机器都要开
使用node1 当私有仓库
一般使用都会用反向代理解析,
如果没有就直接指定了
然后只要容器名字指定192.168.1.1:5000就可以存放或者下载 本地仓库了
swram使用的网桥是公用的overlay
自己可以创建,
上面是本身有的,overlay是作用在swarm群集中的
使用create创建命令创建一个自己的网络
manage会直接获取新的网络
worker只有在需要使用的时候才会更新需要的网络
只需要在主控制机使用service create 就可以创建需要的镜像,这就是集群管理
--replicas是指定多少个镜像
--network 指定网络
可以查看服务当前有多少个副本
查看某个服务都运行在那个节点上,状态如何
--mode global 是全局模式,副本个数随着节点的数量走,每个节点都会生成一个副本
swarm那个容器如果出现问题就会自动在其他节点开启保持容器的数量.