广告位联系
返回顶部
分享到

docker swarm外部验证负载均衡时不生效的解决方法

云和虚拟化 来源:转载 作者:秩名 发布时间:2021-06-07 21:17:11 人浏览
摘要

我在本地创建了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 lsID HOST

我在本地创建了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


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://www.cnblogs.com/laggage/p/14638585.html
相关文章
  • kvm 透传显卡至win10虚拟机的方法

    kvm 透传显卡至win10虚拟机的方法
    环境 1 2 3 4 5 6 7 8 9 10 11 已安装nvidia 显卡 驱动 操作系统:CentOS Linux release 7.9.2009 (Core) 内核版本:Linux 5.4.135-1.el7.elrepo.x86_64 显卡 型号:rtx 6000
  • Docker Desktop常见的几种启动失败问题解决方法

    Docker Desktop常见的几种启动失败问题解决方法
    报错1,Error:Failed to restart 点Quit 然后出现提示WSL 2 is not installed 点击 Use Hyper-V 打开 启用或关闭windows功能 确保适用于Linux的Windows子系统和
  • 使用Kubernetes自定义资源(CRD)的介绍
    什么是CRD CRD的全称为CustomResourceDefinitions,即自定义资源。k8s拥有一些内置的资源,比如说Pod,Deployment,ReplicaSet等等,而CRD则提供了一种方
  • 部署k8s集群的实践步骤

    部署k8s集群的实践步骤
    1、部署k8s的两种方式: 目前生产部署Kubernetes集群主要有两种方式: kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部
  • docker启动jenkins环境的问题介绍

    docker启动jenkins环境的问题介绍
    【注意:】jenkins的docker镜像,需要从官网进入直接获取,其他地方获取到的docker镜像,可能因为Jenkins版本过低,导致后续插件安装失败等问
  • Docker容器搭建Kafka集群的教程

    Docker容器搭建Kafka集群的教程
    一、Kafka集群的搭建 1.拉取相关镜像 1 2 docker pull wurstmeister/kafka docker pull zookeeper 2.运行zookeeper 1 docker run -d --name zookeeper -p 2181:2181 -t zookeeper
  • 详解Docker容器之间数据传输

    详解Docker容器之间数据传输
    1.从容器中将文件拷贝到宿主机上。 在宿主机你想要接收文件的地方,运行下面的指令 1 docker cp 容器id:home/test . 1 2 3 4 5 6 7 8 9 10 11 12 13 14
  • KVM介绍及作用

    KVM介绍及作用
    一、虚拟化 1、背景 美国环境保护EPA报告中曾经统计过一组统计数据:EPA研究服务器和数据中心得能源效率时发现,实际上服务器只有5%得时
  • 碎片拼接技术恢复XenServer服务器SQL Server数据库数

    碎片拼接技术恢复XenServer服务器SQL Server数据库数
    环境:? Dell PowerEdge服务器; XenServer虚拟化平台; 4块希捷2T STAT硬盘用RAID卡组成的RAID10; XenServer虚拟机操作系统:Windows Server系统; 虚拟机
  • Docker私有仓库Harbor介绍和部署方法介绍

    Docker私有仓库Harbor介绍和部署方法介绍
    Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计