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