3 Multusの使用
この項では、Multusを使用するKubernetesアプリケーションを作成できることを確認するための基本的なテストについて説明します。 この例では、Multusを使用して、NetworkAttachmentDefinitions CRDで作成されたネットワークを使用するポッドに2番目のネットワーク・インタフェースを作成できることを確認します。
2番目のネットワーク・インタフェースを作成するには:
-
コントロール・プレーン・ノードで、ブリッジ接続のNetworkAttachmentDefinition CRDを含む
nad-bridge.yaml
という名前のYAMLファイルを作成します。 次の内容でYAMLファイルを作成します:apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: bridge-conf spec: config: '{ "cniVersion": "0.3.1", "type": "bridge", "bridge": "mybr0", "ipam": { "type": "host-local", "subnet": "192.168.12.0/24", "rangeStart": "192.168.12.10", "rangeEnd": "192.168.12.200" } }'
-
kubectl apply
コマンドを使用して、ファイルとともにNetworkAttachmentDefinitionを作成します:kubectl apply -f nad-bridge.yaml
NetworkAttachmentDefinitionが作成されます。
-
NetworkAttachmentDefinitionが作成されたことを確認するには、次を使用します:
kubectl get network-attachment-definitions
出力は次のようになります:
NAME AGE bridge-conf 2m
NetworkAttachmentDefinitionの詳細を表示するには、
kubectl describe
コマンドを使用します。次に例を示します:kubectl describe network-attachment-definitions bridge-conf
multus-pod.yaml
という名前のYAMLファイルを作成し、bridge-conf
ネットワークを使用するOracle Linux 9を実行しているポッドを、次の内容で作成します:apiVersion: v1 kind: Pod metadata: name: samplepod annotations: k8s.v1.cni.cncf.io/networks: bridge-conf spec: containers: - name: samplepod command: ["/bin/sh", "-c", "trap : TERM INT; sleep infinity & wait"] image: container-registry.oracle.com/os/oraclelinux:9-slim
-
kubectl
コマンドを使用して、ポッドを起動します:kubectl apply -f multus-pod.yaml
- ポッドが作成され、次を使用して実行されていることを確認できます:
kubectl get pods
出力は次のようになります:
NAME READY STATUS RESTARTS AGE samplepod 1/1 Running 0 1m
kubectl describe
コマンドを使用して、multus-nginx-pod
のネットワーク・インタフェースに割り当てられたIPアドレスを表示します:kubectl describe pod samplepod
出力は次のようになります:
Name: samplepod Namespace: default ... Annotations: k8s.v1.cni.cncf.io/network-status: [{ "name": "cbr0", "interface": "eth0", "ips": [ "10.244.3.4" ], "mac": "86:e7:82:28:58:59", "default": true, "dns": {}, "gateway": [ "10.244.3.1" ] },{ "name": "default/bridge-conf", "interface": "net1", "ips": [ "192.168.12.10" ], "mac": "ca:bb:74:ca:9c:10", "dns": {} }] k8s.v1.cni.cncf.io/networks: bridge-conf ...
この例では、
net1
ネットワーク・インタフェースがbridge-conf
ネットワークを使用しており、IPアドレスが192.168.12.10
であることがわかります。- この例で作成したリソースは、次を使用して削除できます:
kubectl delete pod samplepod kubectl delete network-attachment-definitions bridge-conf