使用host网络

Kubernetes中,Pod使用host网络模式意味着Pod与所在的节点(宿主机)共享网络命名空间。在这种模式下,Pod的网络行为与宿主机完全一致,直接使用宿主机的IP地址和端口。本文介绍如何在ACK集群中使用host网络。

前提条件

操作步骤

  1. 使用以下YAML文件host-network.yaml,在spec下指定hostNetwork: true来使用host网络

    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        name: nginx
      name: nginx
    spec:
      hostNetwork: true
      containers:
      - name: nginx
        image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
        ports:
        - containerPort: 80  # 直接映射到宿主机的80端口
  2. 执行以下命令,创建一个使用host网络的Pod。

    kubectl apply -f host-network.yaml
  3. 执行以下命令,查看Pod的网络和其所在的节点网络是否一致。

    kubectl get pod nginx -o wide

    预期输出:

    NAME    READY   STATUS    RESTARTS   AGE   IP              NODE                          NOMINATED NODE   READINESS GATES
    nginx   1/1     Running   0          23s   192.168.1.***   cn-wulanchabu.192.168.1.***   <none>           <none>

    当显示结果中,PodIP地址和节点的IP地址一致时,表示host网络配置完成。