使用docker compose 测试集群网络连接性

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 快速方便的测试集群中,跨 host 间容器网络互通性很重要,这里提供一个简单的compose file实现一键部署,访问endpoint就可以检查容器互通性,方便直观。

    在docker 集群中部署相互依赖的应用的时候,有时候会出现因为网络问题导致link之间不能互相访问,错误定位比较麻烦。而且目前docker overlay network也能实现容器的跨主机网络互通,因此一套简单易用的compose file来测试当前集群网络各个主机上容器之间是否是互通的也就很有必要。下面我们来演示如何使用compose file在容器服务上部署测试当前集群网络连通性。

    首先需要创建一个集群。




    这里创建了三个节点的集群。然后使用这个模板创建服务


web:
  image: registry.aliyuncs.com/xianlu/test-link
  command: python test-link.py
  restart: always
  ports:
      - 5000
  links:
      - redis
  labels:
      aliyun.scale: '3'
      aliyun.routing.port_5000: test-link;
redis:
  image: redis
  restart: always

     这里我们使用了flask来完成测试功能。首先三个flask启动的时候,会被平均分配到三个节点上运行。这就保证了三个容器在不同的宿主机上,只要能互相 ping 通,就说明当前网络是可以实现容器跨主机互联的。然后redis会运行在其中一台机器上,每个flask容器启动后都会向redis注册,报告自己的IP地址,然后等待三个flask都启动完毕后,redis中也就有了集群中所有容器的 IP 地址,这里我们直接访问其中任意一个 flask 容器,他就会向另外两个 container 发起 ping,这样我们就可以看到 ping 的结果从而知道当前集群的网络连通性如何。







  可以看到,三个容器都已经启动了,并且他们是分布在不同的 node 上,下面我们访问一下endpoint。




再次刷新一下




从页面的反馈来看,当前 IP 尾号为6的可以访问通7,8,而且 IP 尾号为7的可以访问通8,那么证明当前集群容器之间是互通的。使用这个compose yaml file可以很方便的测试集群容器之间的网络连通性。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
188 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
1月前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
271 77
|
11天前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用
63 27
|
12天前
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用。掌握这些Docker基础概念和操作,可以显著提高开发和部署效率,确保应用程序的可移植性和可扩展性。
61 22
|
30天前
|
存储 Kubernetes Docker
Kubernetes(k8s)和Docker Compose本质区别
理解它们的区别和各自的优势,有助于选择合适的工具来满足特定的项目需求。
145 19
|
1月前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
122 24
|
1月前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
176 6
|
1月前
|
安全 Docker 容器
docker的默认网络模式有哪些
Docker 默认网络模式包括:1) bridge:默认模式,各容器分配独立IP,可通过名称或IP通信;2) host:容器与宿主机共享网络命名空间,性能最优但有安全风险;3) none:容器隔离无网络配置,适用于仅需本地通信的场景。
52 6
|
1月前
|
Prometheus 监控 Cloud Native
如何使用Prometheus监控Docker Swarm集群的资源使用情况?
还可以根据实际需求进行进一步的配置和优化,如设置告警规则,当资源使用超出阈值时及时发出警报。通过这些步骤,能够有效地使用 Prometheus 对 Docker Swarm 集群的资源进行监控和管理。
82 8
|
1月前
|
Prometheus 监控 Cloud Native
如何监控Docker Swarm集群的性能?
如何监控Docker Swarm集群的性能?
131 8