假设一个 pod 有两个容器,A 和 B,分别暴露 80 和 443。如果另一个 pod 使用其 IP 地址在端口 80 连接到该 pod,kubernetes 怎么知道我连接到容器 A,而不是 B?Kubernetes 采用什么机制来保证容器 A 接收到我的连接?
假设一个 pod 有两个容器,A 和 B,分别暴露 80 和 443。如果另一个 pod 使用其 IP 地址在端口 80 连接到该 pod,kubernetes 怎么知道我连接到容器 A,而不是 B?Kubernetes 采用什么机制来保证容器 A 接收到我的连接?
Pod 中的所有容器共享相同的网络命名空间[1]。只有一个容器能够将服务绑定到给定端口 - 因此通过选择一个端口,您就是在选择目标容器。
[1] Linux 内核命名空间,不要与 Kubernetes 命名空间混淆。