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负载均衡内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- dockerservice启动参数(docker.service启动报错的一次排查详解)
- dockermysql实例(docker 连接宿主Mysql操作)
- docker容器编排入门教程(laradock环境docker-compose操作详解)
- docker打包配置好的镜像(docker镜像的导入和导出的实现)
- docker插件容器使用(Docker容器开jupyter不能访问到的解决方法)
- windows下搭建docker私有仓库(使用docker compose安装harbor私有仓库的详细教程)
- docker运行tomcat服务(使用 docker部署tomcat并接入skywalking的使用)
- nginx tomcat docker 负载均衡(Nginx+Tomcat实现负载均衡、动静分离的原理解析)
- springbootdocker详解(Spring Boot 2.4 新特性之一键构建Docker镜像的过程详解)
- docker shell教学(docker安装rockerChat设置聊天室的详细步骤)
- java连接mongodb(Docker连接mongodb实现过程及代码案例)
- 日常操作docker命令(Docker常用命令详解)
- dockerfile深度解析(Dockerfile文本文件使用方法实例解析)
- idea 远程部署docker(IDEA使用Docker插件菜鸟教程)
- docker执行shell脚本(基于Docker搭建ELK 日志系统的方法)
- docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)
- 三分71 生死战爆发 篮网旧将丁威迪今天成奇兵,助队赢球(三分71生死战爆发)
- 《红 雄安》系列广播剧第一集 水上奇兵雁翎队(雄安系列广播剧第一集)
- 小说 小伙穿越成刘备,用现代知识指挥作战,众谋士都看呆了(小伙穿越成刘备)
- 解析葡萄牙6-1瑞士 进攻多点开花,贡萨洛-拉莫斯一战成名(解析葡萄牙6-1瑞士)
- 这支 奇兵队 腕大 有范儿还各怀绝技,毒贩杀人犯见了都要仓皇而逃(这支奇兵队腕大)
- 雄藩崛起 奇兵队与幕末长州藩军事改革(雄藩崛起奇兵队与幕末长州藩军事改革)
热门推荐
- php提供哪些函数来避免sql的注入(PHP与SQL语句写一句话木马总结)
- docker容器缺少很多命令怎么办(解决docker 容器设置中文语言包出现的问题)
- 织梦标签怎么设置网站(织梦模板DEDECMS文章页实现让用户选择字体大小的代码的方法)
- python编写小程序实现密码验证(python实现扫描ip地址的小程序)
- jquery 选择器的用法
- mysql存储引擎的创建与修改(关于MySQL Memory存储引擎的相关知识)
- python使用aes加密解密(python实现AES加密与解密)
- navicat连接mysql是远程连接吗(详解Navicat远程连接mysql很慢)
- mysql innodb存储原理(mysql innodb的重要组件汇总)
- canvas设置点击(Canvas高级路径操作之拖拽对象的实现)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9