【问题标题】:If POD has unique IP address, what will be the IP address of each container in POD?如果 POD 有唯一的 IP 地址,POD 中每个容器的 IP 地址是什么?
【发布时间】:2019-09-30 11:25:12
【问题描述】:

假设我在 POD 中有 2 个容器。 每个 POD 是否都有唯一的 IP 地址? 如果是这样,每个容器的 IP 地址是多少?

【问题讨论】:

    标签: kubernetes kubernetes-pod


    【解决方案1】:

    pod 的网络命名空间 (IP) 由 infra container 管理,它只不过是一个占位符而已。 pod 中的所有其他容器都共享这个 IP 地址(Pod IP),而不是使用主机网络命名空间或主机 IP。

    kubelet以下参数控制

    --pod-infra-container-image :每个 pod 中的 network/ipc 命名空间容器将使用的镜像。 (默认“k8s.gcr.io/pause:3.1”)

    下面的文章更详细地描述了它。

    在 Kubernetes 中,暂停容器充当 pod 中所有容器的“父容器”。 pause 容器有两个核心职责。首先,它是 Pod 中 Linux 命名空间共享的基础。其次,在启用 PID(进程 ID)命名空间共享的情况下,它充当每个 pod 的 PID 1 并收获僵尸进程。 almighty-pause-container

    【讨论】:

      【解决方案2】:

      pod 中的所有容器共享相同的 IP 地址和 localhost。您必须为每个容器定义不同的端口号。

      【讨论】:

      • 是不是说POD中的每个容器都是POD中的一个独立进程?
      • 当然,pod 中的每个容器都是独立 cgroup 中的独立进程。然而,pod 中的所有容器共享网络命名空间,因此它们共享相同的 IP 地址以及 localhost 和 iptables 规则。
      • 这意味着端口号也被所有容器共享。是吗?
      • pod 内的容器可以使用 localhost 相互通信,因为每个容器都在 localhost 上侦听,这对 pod 中的所有容器都是通用的。也使用 localhost 绕过网络堆栈,因此通常更快。
      猜你喜欢
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      • 2018-11-21
      • 2016-03-19
      • 2022-10-11
      • 1970-01-01
      相关资源
      最近更新 更多