关于Overlay网络的实际宿主机的端口问题
来源:8-7 swarm的overlay网络详解

慕函数2082699
2021-09-12
在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有其他的容器与宿主机的端口映射方式,希望能讲解一下)
谢谢
写回答
1回答
-
麦兜搞IT
2021-09-13
您好,最好的方法就是亲自做实验验证。绑定宿主机的端口目的是为了让外界访问的到,而不是内部container之间通信的需求。其实可以通过compose来理解,两个处于同一网络的容器,他们之间的container IP是互通,端口也自然能够访问,并不需要做端口映射到宿主机。
032024-01-27
相似问题