记一次 Docker swarm - overlay network access error

背景

之前使用Docker swam 在不同的服务器 (docker host) 上面创建了service,他们之间的container通过overlay的网络通信。 昨天由于公司网络维护,其中一台服务器(我们简称 manager node)由于需要维护,暂时无法连接(大概持续了6个小时)。今天再过来,就发现container之间的通信出了问题...

分析问题

1. 首先从物理机器以及网络层面入手,检查了两台服务器彼此间的网络连接,发现没有问题。

2. 进入(work node), 发现其中的 container 里面已经无法连接到(manager node)上面的 container。

3. 在 node 之间重新创建Overlay network,并在其中建立containers(我这里使用busybox来试验),发现也无法相互通信。

解决问题

1. worker node 重新加入 swarm

#docker swarm join --token SWMTKN-1-23xxxxxxxxxxxxxxxxxxxxxxxxx  <managernode-ip> 2377 

2. 重新启动container

docker restart <container-name>

3. 进入 container 测试网络连接

#nslookup managerbusybox

发现可以找到指定的container,container之间的通信问题解决!

重新调用shell脚本启动服务,OK,一切恢复正常 :)

PS. 有一个奇怪的地方就是,使用命令查看swarm node 的情况:

#docker node ls 

返回的 nodes 都是 active 的状态,但是事实上,彼此之前的网络通信已经出现了问题。。。这一点有点令人费解,不知道是不是bug →_→

希望有明白的童鞋可以给出解析,在此谢过!!

时间: 2024-08-27 06:03:08

记一次 Docker swarm - overlay network access error的相关文章

Docker Swarm 创建overlay网络

Docker Swarm 创建overlay网络 环境: 系统:Centos 7.4 x64 应用版本:Docker 18.09.0 管理节点:192.168.1.79 工作节点:192.168.1.78 工作节点:192.168.1.77 一.创建网络与服务 1.管理节点:创建overlay网络名字为my-network docker network create --driver overlay my-network 命令:docker network ls NETWORK ID NAME

行车记+翻车记:.NET Core 新车改造,C# 节能降耗,docker swarm 重回赛道

非常抱歉,10:00~10:30 左右博客站点出现故障,给您带来麻烦了,请您谅解. 故障原因与博文中谈到的部署变更有关,但背后的问题变得非常复杂,复杂到我们都在怀疑与阿里云服务器 CPU 特性有关. 这篇博文本来准备 9:30 左右发布的,但发布博文时出现了 docker swarm 部署异常情况,切换到 docker-compose 部署后问题依旧,一直到 10:30 左右才恢复正常,继续发布这篇博文,在标题中加上了“翻车记”. 原先的博文正文开始: 周一向大家汇报车况之后,我们的 .NET

k8s 开船记-首航:博客站点从 docker swarm 切换到 k8s

昨天晚上,我们将博客站点的生产环境从 docker swarm 集群切换到了 k8s 集群,开船到目前,航行非常平稳,可以说首航成功! k8s 集群是我们用10台阿里云服务器自己搭建的,1台 master 配置是2核4G,9台 nodes 配置都是4核8G,kubernetes 版本是 1.16.3 . 博客站点请求入口没有走 ingress ,直接通过 service 监听 30080 端口,阿里云负载均衡转发请求到该端口. apiVersion: v1 kind: Service metad

(转) Docker swarm - 使用体验 1+2

背景 凭借敏捷开发部署理念的推行,相信对于很多人来说docker这项容器技术已经并不陌生,Docker 1.12引擎发布了快两个月,新引擎中包含了许多特性.诸如: Swarm模式,容器集群的健康检查,节点的身份加密,docker Service API调用,容器启动的过滤匹配方式(constraint), docker的内建路由,以及支持在多平台系统上运行docker(MAC.Windows.AWS.AZURE),以及一些插件升级等等. 特性之多,就连Docker 自己的产品经理也表示这次的新版

docker swarm英文文档学习-8-在集群中部署服务

Deploy services to a swarm在集群中部署服务 集群服务使用声明式模型,这意味着你需要定义服务的所需状态,并依赖Docker来维护该状态.该状态包括以下信息(但不限于): 应该运行服务容器的镜像名称和标记有多少容器参与服务是否有任何端口暴露给集群之外的客户端当Docker启动时,服务是否应该自动启动重启服务时发生的特定行为(例如是否使用滚动重启)服务可以运行的节点的特征(例如资源约束和位置首选项)有关群模式的概述,请参见 Swarm mode key concepts.有关

Docker系列(十四):Docker Swarm集群

一.Swarm简介 Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源.Swarm和Kubernetes比较类似,但是更加轻便,具有的功能也较kubernetes更少一些. Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令.目前,Swarm 是 Do

DOCKER 07:docker swarm

docker compose 主要用于单机容器编排,docker swarm 则用于跨主机容器编排. docker compose 需要单独下载执行脚本,docker swarm 系统自带无需安装. docker swarm 属于需要了解得东西,毕竟生产中大多选择还是 Kubernetes(K8S). 说明: 在 docker swarm 中包含了两个角色,Manager 和 Worker.Manager 是一个集群的核心,起着调度作用,建议部署多节点,且节点数量为奇数,防止脑裂. 在 Mnag

Docker Swarm群集

Docker Swarm 是什么? Docker Swarm是一个用于创建Docker主机(运行Docker守护进程的服务器)集群的工具,使用Swarm操作集群,会使用户感觉就像是在一台主机上进行操作 docker1.12集成了swarmkit, 使你可以不用安装额外的软件包, 使用简单的命令启动创建docker swarm集群. 如果你在运行 Docker 1.12时,你就可以原生创建一个 Swarm 集群 . 集成了swarm集群的安全特性, 集成了K-V存储, 你现在不需要额外部署etcd

docker swarm集群及其UI部署

一.规划 ①swarm01作为manager节点,swarm02和swarm03作为worker节点. # cat /etc/hosts 127.0.0.1   localhost 192.168.139.175  swarm01  192.168.139.176  swarm02  192.168.139.177  swarm03 ②配置SSH免密登陆 # ssh-keygen -t rsa -P '' # ssh-copy-id -i .ssh/id_rsa.pub [email prote