Loading
0

docker1.12+swarmkit

以 manager 角色加入 swarm 集群:

--advertise-addr 参数, 后面跟你 swarm 集群的通讯地址, 也就是 node1 的地址.
查看端口号监听情况

检查 node1 docker swarm mode 信息:
#docker info
显示信息如下:

查看 swarm 集群 node 列表

可以看到,我们的 swarm 集群中只有一个节点.现在我们把其他节点加入我们的集群中:
把其他节点加入集群中:
在 node1 通过 ssh, 在 node2-node3 上执行上面的加入集群命令:

注:如果你不记得上面提示的加入 swarm 集群的命令和密钥可以使用如下方式查看 worker
节点和 manager 节点的加入命令

再次检查集群节点列表, 我们可以看到所有的服务器都已经加入 swarm 集群了

不过现在集群只有一个manager节点node1, 为了swarm集群的高可用,和避免单点故障. 我
们希望建立多个 manager 节点集群.
只需要通过如下命令, 提升 worker 节点成 manager 节点:

现在我们可以看到, 已经有2个manager节点了, 一个Leader节点, 一个Reachable节点. 现
在你也可以在 node2 上面管理整个 swarm 集群.
我们的 swarm 集群就搭建完毕了. 超级简单
习惯使用 docker 命令帮助:docker --help
总结:
docker swarm:集群管理,子命令主要有下面几个。
docker swarm init 命令用于初始化一个集群
dockerswarm join 命令用于加入一个现有集群
dockerswarm leave 命令由于离开集群
附:node 下线
有些时候需要维护一个节点,此时此节点可能会网络断开或者需要关机,造成节点上服务不
可用。使用 docker node update --availability drain 将节点下线,swarm 会将当前节
点上的容器关闭并在其他节点上启动。当维护完成,需要上线是,将节点状态修改为 active
状态即可,命令如下:docker node update --availability active
有了 Docker Swarm 集群我们如何把我们的应用跑在 Swarm 集群上呢?
很简单, 基本上原来我们使用 docker run 的命令创建容器, 把前面替换成 docker service
create 就行了.
建议搭建一个 registry,为所的 docker 主机提供镜像下载,否则你需要在每个 docker 主机本
地存在容器镜像。
所以搭建一个私有仓库,由私有仓库提供所需要的镜像,
本实验环境中用 node1 同时作为 registry。
拉取本地私有仓库 registry,查看 registry 镜像
开启路由转发
vi /etc/sysctl.cof
添加 net.ipv4.ip_forward=1
执行 sysctl -p 使修改生效
从本地导入镜像

附:registry1 是 python 语言写的,而现在 registry2 版本即 docker distribution 更加安全和快
速,并且是用 go 语言写的。
基于私有仓库镜像运行容器
默认情况下,registry2 会将仓库存放于容器的/var/lib/registry 目录下,这样如果容器被删除,
则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器的
/var/lib/registry 下,两个目录下都有!
·registry 的默认存储路径是/var/lib/registry,只是个临时目录,一段时间之后就会消失
·所以使用-v 参数,指定个本地持久的路径,

返回{"repositories":[]} 说明 registry 服务工作正常.
注:镜像信息存放在/var/lib/registry 目录下,因此这里将宿主机目录映射到/var/lib/registry
所有主机都指向 registry 服务器:
修改/usr/lib/systemd/system/docker.service,修改后保存退出

重载 docker 服务并重启 docker 服务

分页阅读: 1 2 3 4
【声明】:8090安全小组门户(https://www.8090-sec.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们:邮箱hack@ddos.kim,我们会在最短的时间内进行处理。