本文主要是介绍Docker-swarm 这样集群搭建,保证万无一失(六),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 创建docker swarm 集群
- 创建集群命令
- 集群加入 worker
- 集群加入manager
- 小心踩坑
官网
https://docs.docker.com/engine/swarm/
文档地址:
节点工作原理
https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/
创建docker swarm 集群
四台机器为例,2 个 manager 2个 worker。 但建议是 3个manager 以上,这样容错率更高,2台 down 了其中一台集群就不行,多个worker 。
虚拟机 | 状态 | 备注 |
---|---|---|
192.168.116.129 | manager | 用这台创建集群 |
192.168.116.130 | manager | 加入成manager |
192.168.116.131 | worker | |
192.168.116.132 | worker |
- 首先安装 docker,安装docker 不再演示,请看我博客写的 docker第一节内容。
- 配置阿里加速镜像和开放防火墙或者开启安全组,请看我博客写的 docker第二节的内容。
docker swarm 命令:
docker swarm --help
创建集群:
docker swarm init --advertise-addr 虚拟机IP
查看增加 manager的授权命令:
docker swarm join-token manager
查看增加 worker 的授权命令:
docker swarm join-token worker
管理器节点离开 docker swarm 模式:
docker swarm leave --force
普通节点离开Docker Swarm模式
docker swarm leave
创建集群命令
初始化一个集群
docker swarm init --advertise-addr IP地址
如下两图
docker swarm init --advertise-addr 192.168.116.129 --listen-addr 192.168.116.129:2377,–listen-addr 192.168.116.129:2377【可选】
查询和开放端口
firewall-cmd --query-port=8080/tcp
firewall-cmd --permanent --add-port=8080/tcp重启防火墙
firewall-cmd --reload防火墙命令:
# 查看防火状态
systemctl status firewalld
service iptables status# 暂时关闭防火墙
systemctl stop firewalld
service iptables stop
注意:
一定要开放当前创建集群集器的端口(阿里云开通安全组),然后重启防火墙,不然加入worker 会报如下错误:
Error response from daemon: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 192.168.116.129:2377: connect: no route to host"
集群加入 worker
用创建集群生成的命令,把 192.168.116.130、192.168.116.131 加入 worker。
查看集群节点:
docker node ls
万一忘记加入worker 的命令,用如下命令查看
docker swarm join-token worker
集群加入manager
加入 manager 的命令也非常简单
docker swarm join-token manager
小心踩坑
当加入 manager 时报错:
Error response from daemon: manager stopped: can’t initialize raft node: rpc error: code = Unknown desc = could not connect to prospective new cluster member using its advertised address: rpc error: code = Unavailable desc = connection error: desc = “transport: Error while dialing dial tcp 192.168.116.130:2377: connect: no route to host”
我在网上找错误解决方案,好几个都是互相抄袭说参考一个帖子,然后进入官网解决了,实质上他们自己根本没有动手实践,抄袭党实在是可恶至极,误导他人,费了一番周折,依然没有解决问题。
https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
后来,我仔细思考报错信息,察觉不对啊,我 192.168.116.129 创建集群,邀请 192.168.116.130 加入 manager ,一直提示我 RPC连接130失败。我抱着试试的心态,可能是防火墙问题。最后确实解决了。
加入集群成功,设置为 manager。docker node ls 查看集群。
搭建 docker swarm 集群就基本完成了。 欢迎留言交流,转载请说明原处地址。
这篇关于Docker-swarm 这样集群搭建,保证万无一失(六)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!