ポッドがデプロイされているノードのホストネットワークでポッドが実行されている場合、ポッドはノードのネットワーク名前空間とネットワークリソースを使用できます。 このシナリオでは、ポッドはノード上のループバックデバイスにアクセスし、特定のアドレスに送信された要求をリッスンし、他のポッドのトラフィックを監視できます。 このトピックでは、ホストネットワークの使用方法について説明します。
前提条件
Container Service for Kubernetes (ACK) クラスターが作成されました。 詳細については、「ACK Proクラスターの作成」をご参照ください。
kubectlクライアントがクラスターに接続されています。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。
手順
host-network. YAMLという名前のyamlファイルを開きます。 現在の環境でファイルが見つからない場合は、ファイルを作成します。 specセクションに
hostNetwork: true
を追加します。次のサンプルコードは、YAMLファイルの内容を示しています。
apiVersion: v1 kind: Pod metadata: name: nginx spec: hostNetwork: true containers: - name: nginx image: nginx
次のコマンドを実行してポッドを作成します。
kubectl apply -f host-network.yaml
次のコマンドを実行して、ポッドがノードのホストネットワークを使用しているかどうかを確認します。
kubectl get pod -o wide
出力は、ポッドのIPアドレスがノードのIPアドレスと同じであることを示します。 これは、ポッドがノードのホストネットワークで実行されることを意味します。
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE nginx 1/1 Running 0 29s 192.168.XX.XX cn-zhangjiakou.192.168.XX.XX <none>