13.1.1 在 pod 中使用宿主节点的网络命名空间

一些 pod 需要在宿主节点的默认命名空间中运行, 以允许操作节点级别的资源.

image.png

设置 hostNetwork:

image.png
image.png

kubeadm 部署 Kubernetes 使用 pod 方式部署时都使用 hostNetwork 选项.

13.1.2 绑定宿主节点上的端口而不使用宿主节点的网络命名空间

  1. spec.containers.ports
  2. hostPort

hostPort 和 NodePort 的区别:

  • 对于一个使用 hostPort 的 pod, 到达宿主节点的端口的连接会被直接转发到 pod 的对应端口上, NodePort 服务中, 到达宿主节点的端口的连接将被转发到随机选取的 pod 上 (这个 pod 可能在其他节点上)
  • 对于使用 hostPort 的 pod, 仅有运行了这类 pod 的节点会绑定对应的端口, 而 NodePort 类型的服务会在所有的节点上绑定端口

image.png

注意:

  • 如果使用 hostPort, 同一宿主节点只能绑定一个该类型的 pod

image.png

在 yaml 中定义 hostPort:

image.png

image.png

13.1.3 使用宿主节点的 PID 与 IPC 命名空间

pod spec 中的 hostPID 和 hostIPC 与 hostNetwork 相似.

image.png
image.png