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 查看进程, 内存, cup消耗的情况)
- docker开源软件(5款超好用的开源 Docker工具强烈推荐)
- docker停止删除所有容器方法(Docker stop停止/remove删除所有容器)
- docker快速配置redis集群(基于docker搭建redis集群的方法)
- 日常操作docker命令(SEATA事务服务DOCKER部署的过程详解)
- docker原理和使用方法(docker的一些基本指令)
- docker搭建elasticsearch(docker安装ElasticSearch:7.8.0集群的详细教程)
- 怎么用docker部署springboot项目(Spring Boot使用Docker分层打包的设置方法)
- docker怎么装mongodb(Docker 搭建集群MongoDB的实现步骤)
- docker安装nginx如何配置(docker部署nginx并且挂载文件夹和文件操作)
- docker目录映射不起作用(关于dockerfile build过程中报/bin/sh: pip: command not found的解决方法)
- dockerhub镜像排行(DockerHub 镜像仓库的使用详解)
- docker重新加载nginx(Docker Nginx Log 三者的处理详解)
- docker挂载的注意事项(解决docker日志挂载的问题)
- docker正常容器启动失败(Docker容器无法停止删除的解决方案)
- docker容器基础入门认知网络篇(Docker 容器生命周期 架构 以及和VM之间的差异详解)
- 阴生植物为什么不怕照不到阳光(阴生植物为什么不怕照不到阳光)
- 阴生环境 耐阴地被植物,你知道哪些(阴生环境耐阴地被植物)
- 常见的喜阴植物有哪些 养室内盆栽就在这里选(常见的喜阴植物有哪些)
- 这8种耐阴植物,营造阴生植物花境,也是一个不错的选择(营造阴生植物花境)
- 览邦G08 Plus SMART WATCH 测评⑱ 全独立这才是智能手表该有的样子(览邦G08PlusSMART)
- 荣耀手表 GS 3 真机亮相 不支持无线充电(荣耀手表GS3)
热门推荐
- php常用执行函数(PHP自动载入类文件函数__autoload的使用方法)
- 从客户端检测到有潜在危险的Request.Form值
- 云主机内存满了怎么办(为什么云主机不建议安装太多软件?)
- python编程中冒号的用法(浅谈python中get pass用法)
- html5实现上传图片预览
- phpstudy怎么升级mysql(phpStudy中升级MySQL版本到5.7.17的方法步骤)
- dedecms安全补丁(防止Dedecms入侵、漏洞问题的4点安全防范建议)
- python使用门算法加密文件(python实现栅栏加解密 支持密钥加密)
- axios调用接口(如何实现axios的自定义适配器adapter)
- 微信公众号扫码跳转网页(微信公众号实现扫码获取微信用户信息网页授权)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9