dockerswarm网络架构(docker swarm外部验证负载均衡时不生效的解决方案)
类别:服务器 浏览量:1485
时间:2021-10-12 00:31:15 dockerswarm网络架构
docker swarm外部验证负载均衡时不生效的解决方案问题描述我在本地创建了3个装了centos7的虚拟机, 并初始化了swarm集群, 即1个manager节点, 2个worker节点; 三台机子的ip分别是 192.168.124.8 - (manager节点)
, 192.168.124.9 - (worker节点)
, 192.168.124.10 - (worker节点)
[root@localhost ~]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION j0f4up8v7epacp3vceby4exsz localhost.localdomain Ready Active 19.03.13 qeeqc10gl9e56w61pajjqle08 localhost.localdomain Ready Active 19.03.13 r5sg5m9dkwcu76t56hg0vu29t * localhost.localdomain Ready Active Leader 19.03.14
然后我通过下面的命令在swarm集群上起了一个服务
docker service create --name test-vote --replicas 2 --constraint node.role==worker --publish 8080:80 registry.cn-hangzhou.aliyuncs.com/anoy/vote
直接curl 工作者节点ip:端口 是可以拿到响应的, 但是返回的containerId一直不变, 并且如果直接访问manager节点的话是拿不到响应的, 似乎是负载均衡没有生效!
解决经过一番搜索, 在stack overflow上找到了答案, https://stackoverflow.com/questions/48360577/docker-swarm-mode-routing-mesh-not-working
原来是防火墙的问题, 按照文档的说法, 要让 swarm mode routing mesh
生效的话, 在初始化swarm集群前必须开放7946
的tcp/udp
端口, 4789
的udp
端口, https://docs.docker.com/engine/swarm/ingress/
所以如果是centos可以用下面的脚本开放端口, swarm集群里的每个主机都需要开放, 图方便这两个端口的tcp和udp都开放了; 开放完端口后还需要重启一下机器
firewall-cmd --permanent --zone=public --add-port=4789/tcp && \ firewall-cmd --permanent --zone=public --add-port=7946/tcp && \ firewall-cmd --permanent --zone=public --add-port=4789/udp && \ firewall-cmd --permanent --zone=public --add-port=7946/udp && \ firewall-cmd --reload && \ # 重启 sudo reboot
到此这篇关于docker swarm外部验证负载均衡时不生效的文章就介绍到这了,更多相关docker swarm负载均衡内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- docker容器设置网站(docker容器中布置静态网站的实现)
- dockerswarm滚动部署(使用Docker部署war包项目的实现)
- docker创建mysql环境(docker上部署MySQL的示例)
- docker暴露端口无法访问(完美解决Windows10下无法对docker容器进行端口访问的操作)
- dockerfile挂载目录(解决docker run中使用 ./ 相对路径挂载文件或目录失败的问题)
- docker-compose启动超时(docker compose idea CreateProcess error=2 系统找不到指定的文件的问题)
- docker部署kafka认证(docker-compose部署zk+kafka+storm集群的实现)
- 2022-01-26 01:41:54
- docker如何改tomcat(docker安装Tomcat 404问题的解决方案)
- docker容器启动自动执行命令(docker run 运行容器自动结束的解决)
- dockernacos教程(Docker+nacos+seata1.3.0安装与使用配置教程)
- docker和golang哪个好(使用Golang玩转Docker API的实践)
- idea docker使用(最新IDEA快速实现Docker镜像部署运行的过程详解)
- docker镜像如何打包(Docker打包镜像及修改配置的实现)
- dockerpull下来的容器存放位置(详解docker pull下来的镜像存储在哪里)
- docker怎么解决隔离性问题(docker启动ES内存溢出的解决方案)
- CellPress旗下的6 期刊,国人友刊来了解一下吧(CellPress旗下的6期刊国人友刊来了解一下吧)
- ()
- SCI检索 SSCI检索 EI检索 ISTP检索 CSCD检索简介(SCI检索SSCI检索EI检索)
- 参考文献里期刊名称的写法,你知道吗(参考文献里期刊名称的写法)
- 硕博期刊 SCI SSCI CSSCI分不清 一文带你看懂主流期刊分类(硕博期刊SCISSCI)
- 辱华品牌新百伦官宣新代言人IU,个别粉丝希望get爱豆同款(辱华品牌新百伦官宣新代言人IU)
热门推荐
- 织梦栏目怎么管理(织梦“模块管理”里面的“模块列表”显示空白的解决方法)
- pythonturtle库画图代码(用Python中的turtle模块画图两只小羊方法)
- pythoncsv格式转换(Python把对应格式的csv文件转换成字典类型存储脚本的方法)
- js日期格式化
- js图片水印库(js给图片打马赛克的方法示例)
- rename重命名mysql表(MySQL 重命名表的操作方法及注意事项)
- MySql 中IFNULL、ISNULL和NULLIF
- 如何让mysql强制设置复杂的密码
- html5canvas怎么改扇形起始角(HTML5 Canvas实现放大镜效果示例)
- MVC升级后报"当前上下文中不存在ViewBag"错的解决方法
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9