问题描述

我在本地创建了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集群前必须开放7946tcp/udp端口, 4789udp端口, 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外部验证负载均衡时不生效的更多相关文章

  1. 解决docker中使用nginx做负载均衡时并发过高时的一些问题

    # 解决docker中使用nginx做负载均衡时并发过高时的一些问题 1.问题产生原因: 由于通过nginx作为负载均衡服务,在访问并发数量达到一定量级时jmeter报错. nginx日志关键信息:a ...

  2. 服务器配置,负载均衡时需配置MachineKey

    服务器配置,负载均衡时需配置MachineKey https://blog.csdn.net/liuqiao0327/article/details/54018922 Asp.Net应用程序中为什么要 ...

  3. Docker + Nginx + Tomcat 实现负载均衡简单演示

    Docker + Nginx + Tomcat 实现负载均衡 环境 [root@pinyoyougou-docker ~]# docker -v Docker version 1.12.6, buil ...

  4. 解决nginx配置负载均衡时invalid host in upstream报错

    当前平台: windows nginx版本: 1.11.5 前言: 在配置负载均衡时,同时也需要设置反向代理,当修改了nginx.conf时,发现nginx服务无法开启. 1. 打开"ngi ...

  5. [Linux]使用宝塔面板做负载均衡时遇到的问题和解决办法

    最近公司的小程序因为高峰期访问缓慢的问题,打算用负载均衡试试.本人是个新手,在网上找了几篇负载均衡的文章看了看,最后还是用了宝塔面板的负载均衡插件...这个服务器我也是刚刚接手,很多东西都是以前的同事 ...

  6. 转载:Nginx做反向代理和负载均衡时“X-Forwarded-For”信息头的处理

    转载自:https://blog.51cto.com/wjw7702/1150225 一.概述 如今利用nginx做反向代理和负载均衡的实例已经很多了,针对不同的应用场合,还有很多需要注意的地方,本文 ...

  7. 利用Docker快速创建Nginx负载均衡节点

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.Self-Host Kestrel 1. 在vs2017中新建dotnet core2. ...

  8. Nginx+tomcat负载均衡时静态页面报404

    百度到的问题解决BLOG http://os.51cto.com/art/201204/326843.htm nginx+2台tomcat负载均衡,应用程序已部署,单独访问tomcat时,可以访问到所 ...

  9. 【摘自大型网站技术架构书】负载均衡时session如何共享

    由于负载均衡服务器可能会将请求分发到集群任何一台服务器上,所以保证每次请求能够获得正确的session比单机时复杂. 集群环境下,session管理的主要几种手段 1.session复制 sessio ...

随机推荐

  1. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作ubuntu16.04-16

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之镜像制作ubuntu16.04-16 欢迎加QQ群:1026880196 进行交流学习   制作Ope ...

  2. (九)Docker-PS 详解

    1. 作用 查看 docker 容器 2. 基本语法 docker ps [OPTIONS] OPTIONS说明: -a :显示所有的容器,包括未运行的. -f :根据条件过滤显示的内容. --for ...

  3. Dropping Balls UVA - 679

      A number of K balls are dropped one by one from the root of a fully binary tree structure FBT. Eac ...

  4. Day02_15_方法重载

    方法重载 1.什么是方法重载? * 方法重载又被称为 OverLoad,是指在同一个类中,具有相同方法名的不同方法,各个方法虽然方法名相同,但是各自的形式参数不同. 2.什么时候考虑使用方法重载? * ...

  5. 软件调研——GoodNotes 5与Notability

    项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 作业要求 我在这个课程的目标是 积累软件开发经验,提高工程能力 这个作业在哪个具体方面帮助我实现目标 深入调 ...

  6. SpringAOP_设置注入实现

    SpringAOP_设置注入实现 AOP_面向切面编程初步了解 让我们先想象一个场景,你正在编写一个项目,在开发过程中的多个模块都有某段重复的代码,于是你选择将其抽象成一个方法,然后在需要的地方调用这 ...

  7. hdu 5020 求三点共线的组合数(容器记录斜率出现次数)

    题意:       给你n个点,问你3点共线的组合数有多少,就是有多少种组合是满足3点共线的. 思路:      一开始抱着试1试的态度,暴力了一个O(n^3),结果一如既往的超时了,然后又在刚刚超时 ...

  8. 【HTML】HTML5从入门到深入(复习查漏向

    HTML5从入门到深入(复习查漏向 冷知识 万维网之始:第一个网站·蒂姆伯纳斯-李 HTML5 html5文档类型声明: 头部: <!doctype html> 字符集(charset): ...

  9. Spring JPA使用CriteriaBuilder动态构造查询

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://www.cnblogs.com/mzdljgz/p/11495723. ...

  10. 封装了一些sqlsugar的常用方法 用来动态切换数据库和依赖注入 支持泛型

    接口: /// <summary> /// 数据库操作 /// </summary> public interface IDAL_Services { /// <summ ...