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

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

    首先需要创建一个集群。


7e7b53b1c7ef6c9f8d4c2b27434128687f51edeb


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


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 的结果从而知道当前集群的网络连通性如何。

6779193719539c50356028692349247d0ad57cb1


8a06f90751a40f8bfa4c107a900a0447def742fc




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


4bb5456c0a29276463b86077fda871da8bcaf385


再次刷新一下


eb28a9ef49898e47007c0a79f24a334359e91b73


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值