Kubernetes多服务器通信

时间:2019-01-28 09:20:50

标签: docker kubernetes

我对Kubernetes网络有疑问。

我知道在Docker群中,如果我想在不同的服务器上运行不同的容器,我需要创建一个覆盖网络,然后所有容器(来自所有服务器)都将连接到该网络,并且它们可以与彼此(例如,我可以从容器A ping到容器B)。

我想在Kubernetes中没有覆盖网络-而是另一种解决方案。例如,我想在2台服务器(服务器1:ubuntu,服务器2:centos7)上创建2个linux容器,那么如果没有覆盖网络,吊舱如何彼此通信?

还有另一个疑问-我可以创建一个由带有kubernetes的Windows和linux计算机组成的集群吗?我的意思是,一个所有平台彼此通信的多平台kubernetes。

非常感谢!

1 个答案:

答案 0 :(得分:1)

在kubernetes中,pod通过服务相互通信。要访问群集中的任何Pod,必须使用clusterIP服务将其公开。因此,如果在创建Pod之前先创建了服务,则容器中每个可用服务都将具有env变量。使用它,您可以ping或访问服务,然后依次打开pod。

例如: 假设您有两个Pod U1和C1,它们分别通过名为U-SVC和C-SVC的服务公开。

因此,如果要从U1访问C1,将在容器中具有C-SVC服务环境变量(C-SVC_SERVICE_HOST,C-SVC_SERVICE_PORT)。

如果为群集设置了DNS服务器,您也可以访问服务而不使用环境变量。