请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于Overlay网络的实际宿主机的端口问题

在Overlay网络中,每个Container都由Overlay网络分配一个IP,实际通信的时候还是要通过宿主机的eth0网卡,我想知道假设我把Container内的8080端口对外暴露,那么在宿主机上8080端口映射到具体哪个端口?

这个问题,其实我是想知道一个具体实际的场景,假设现在是一个RPC场景,有一个ProviderA,一个ConsumerB,一个注册中心Zookeeper,那么以下问题:

1、ProvierA在向Zookeeper注册时,IP用的是Overlay的IP,那端口用的容器内的端口,还是宿主机中映射的端口?
2、假设现在有一个ProviderA,那的端口映射8080:8080,同时ProviderB,也是将8080:8080映射到宿主机上,那理论上两个不能映射到同一个端口,但是在Swarm或者k8s的集群服务编排时,其实具体Provider在哪台宿主机上是随机的,那么这么避免这种端口冲突?(还是说Overlay有其他的容器与宿主机的端口映射方式,希望能讲解一下)

谢谢

正在回答 回答被采纳积分+3

1回答

麦兜搞IT 2021-09-13 03:51:17

您好,最好的方法就是亲自做实验验证。绑定宿主机的端口目的是为了让外界访问的到,而不是内部container之间通信的需求。其实可以通过compose来理解,两个处于同一网络的容器,他们之间的container IP是互通,端口也自然能够访问,并不需要做端口映射到宿主机。

0 回复 有任何疑惑可以回复我~
  • 老师,我想请教下,为什么我通过 swarm 创建多个服务,分布在不同worker上的容器之间可以 ping通,但是端口无法访问通呢?
    回复 有任何疑惑可以回复我~ 2022-09-24 14:42:04
  • 麦兜搞IT 回复 mamafeng #2
    可以说一下具体操作么?比如创建了什么服务,如何映射的端口之类的
    回复 有任何疑惑可以回复我~ 2022-10-18 04:06:44
  • 我也遇到这种问题了,请问您那边有解决方法么?
    回复 有任何疑惑可以回复我~ 2024-01-27 13:15:25
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信