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.yamlNetworkAttachmentDefinitionが作成されます。
-
NetworkAttachmentDefinitionが作成されたことを確認するには、次を使用します:
kubectl get network-attachment-definitions出力は次のようになります:
NAME AGE bridge-conf 2mNetworkAttachmentDefinitionの詳細を表示するには、
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