7.8. SR-IOV の追加ネットワークの設定

重要

NIC (ネットワークインターフェースカード) SR-IOV ハードウェアは、テクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

Red Hat のテクノロジープレビュー機能のサポート範囲についての詳細は、https://access.redhat.com/ja/support/offerings/techpreview/ を参照してください。

7.8.1. OpenShift Container Platform の SR-IOV ハードウェアについて

OpenShift Container Platform には、ノード上で SR-IOV ハードウェアを使用する機能が含まれます。SR-IOV ハードウェアが搭載されているノード上の Pod に SR-IOV 仮想機能 (VF) インターフェースを割り当てることができます。

SR-IOV ネットワーク Operator をデプロイして、OpenShift Container Platform コンソールを使用して SR-IOV をインストールできます。SR-IOV ネットワーク Operator は SR-IOV スタックのコンポーネントを作成し、管理します。Operator は以下の機能を提供します。

  • クラスター内の SR-IOV ネットワークデバイスを検出します。
  • ノード上でサポートされている SR-IOV NIC モデルを初期化します。
  • ノード上に SR-IOV ネットワークデバイスプラグインをプロビジョニングします。
  • ノード上に SR-IOV CNI プラグイン実行可能ファイルをプロビジョニングします。
  • クラスターに Network Resources Injector をプロビジョニングします。
  • SR-IOV ネットワークデバイスプラグインの設定を管理します。
  • SR-IOV CNI プラグインの NetworkAttachmentDefinition カスタムリソース (CR) を生成します。

以下は、上記の各 SR-IOV コンポーネントの機能になります。

  • SR-IOV ネットワークプラグインは、SR-IOV ネットワークの仮想機能 (VF) リソースを検出し、公開し、割り当てるための Kubernetes デバイスプラグインです。デバイスプラグインは、とりわけ物理デバイスでの制限されたリソースの使用を有効にするために Kubernetes で使用されます。デバイスプラグインは Kubernetes スケジューラーにリソースの可用性を認識させるため、スケジューラーはリソースが十分にあるノードで Pod をスケジュールできます。
  • SR-IOV CNI プラグインは、SR-IOV デバイスプラグインから割り当てられる VF インターフェースを Pod につなぎます。
  • Network Resources Injector は Kubernetes Dynamic Admission Controller Webhook であり、これは SR-IOV VF などのカスタムネットワークリソースの要求および制限のある Kubernetes Pod 仕様のパッチを適用するための機能を提供します。
注記

Network Resource Injector はデフォルトで有効にされており、無効にすることはできません。

7.8.1.1. サポートされるデバイス

以下のネットワークインターフェースカード (NIC) モデルは OpenShift Container Platform でサポートされています。

  • Intel XXV710-DA2 25G カード (ベンダー ID 0x8086 およびデバイス ID 0x158b)
  • Mellanox MT27710 Family [ConnectX-4 Lx] 25G カード (ベンダー ID 0x15b3 およびデバイス ID 0x1015)
  • Mellanox MT27800 Family [ConnectX-5] 100G カード (ベンダー ID 0x15b3 およびデバイス ID 0x1017)

7.8.1.2. SR-IOV ネットワークデバイスの自動検出

SR-IOV ネットワーク Operator は、クラスターでワーカーノード上の SR-IOV 対応ネットワークデバイスを検索します。Operator は、互換性のある SR-IOV ネットワークデバイスを提供する各ワーカーノードの SriovNetworkNodeState カスタムリソース (CR) を作成し、更新します。

1 つの CR がワーカーノードごとに作成され、ノードと同じ名前を共有します。.spec.interfaces 一覧は、ノード上のネットワークデバイスについての情報を提供します。

重要

SriovNetworkNodeState CR は変更しないでください。Operator はこれらのリソースを自動的に作成し、管理します。

以下は、SR-IOV ネットワーク Operator によって作成される SriovNetworkNodeState CR の例です。

apiVersion: sriovnetwork.openshift.io/v1
kind: SriovNetworkNodeState
metadata:
  name: node-25 1
  namespace: sriov-network-operator
  ownerReferences:
  - apiVersion: sriovnetwork.openshift.io/v1
    blockOwnerDeletion: true
    controller: true
    kind: SriovNetworkNodePolicy
    name: default
spec:
  dpConfigVersion: d41d8cd98f00b204e9800998ecf8427e
status:
  interfaces: 2
  - deviceID: "1017"
    driver: mlx5_core
    mtu: 1500
    name: ens785f0
    pciAddress: "0000:18:00.0"
    totalvfs: 8
    vendor: 15b3
  - deviceID: "1017"
    driver: mlx5_core
    mtu: 1500
    name: ens785f1
    pciAddress: "0000:18:00.1"
    totalvfs: 8
    vendor: 15b3
  - deviceID: 158b
    driver: i40e
    mtu: 1500
    name: ens817f0
    pciAddress: 0000:81:00.0
    totalvfs: 64
    vendor: "8086"
  - deviceID: 158b
    driver: i40e
    mtu: 1500
    name: ens817f1
    pciAddress: 0000:81:00.1
    totalvfs: 64
    vendor: "8086"
  - deviceID: 158b
    driver: i40e
    mtu: 1500
    name: ens803f0
    pciAddress: 0000:86:00.0
    totalvfs: 64
    vendor: "8086"
  syncStatus: Succeeded
1
name パラメーターの値はワーカーノードの名前と同じです。
2
interfaces コレクションには、ワーカーノード上の Operator によって検出されるすべての SR-IOV デバイスの一覧が含まれます。

7.8.1.3. Pod での VF (仮想機能) の使用例

SR-IOV VF が割り当てられている Pod で Remote Direct Memory Access (RDMA) または Data Plane Development Kit (DPDK) アプリケーションを実行できます。以下の例では、Pod は RDMA モードで VF を使用しています。

apiVersion: v1
kind: Pod
metadata:
  name: rdma-app
  annotations:
    k8s.v1.cni.cncf.io/networks: sriov-rdma-mlnx
spec:
  containers:
  - name: testpmd
    image: <RDMA_image>
    imagePullPolicy: IfNotPresent
    securityContext:
     capabilities:
        add: ["IPC_LOCK"]
    command: ["sleep", "infinity"]

以下の例は、DPDK モードの VF のある Pod を示しています。

apiVersion: v1
kind: Pod
metadata:
  name: dpdk-app
  annotations:
    k8s.v1.cni.cncf.io/networks: sriov-dpdk-net
spec:
  containers:
  - name: testpmd
    image: <DPDK_image>
    securityContext:
     capabilities:
        add: ["IPC_LOCK"]
    volumeMounts:
    - mountPath: /dev/hugepages
      name: hugepage
    resources:
      limits:
        memory: "1Gi"
        cpu: "2"
        hugepages-1Gi: "4Gi"
      requests:
        memory: "1Gi"
        cpu: "2"
        hugepages-1Gi: "4Gi"
    command: ["sleep", "infinity"]
  volumes:
  - name: hugepage
    emptyDir:
      medium: HugePages

7.8.2. SR-IOV ネットワーク Operator のインストール

クラスター管理者は、OpenShift Container Platform CLI または Web コンソールを使用して SR-IOV ネットワーク Operator をインストールできます。

7.8.2.1. CLI を使用した Operator のインストール

クラスター管理者は、CLI を使用して Operator をインストールできます。

前提条件

  • SR-IOV に対応するハードウェアを持つノードでベアメタルハードウェアにインストールされたクラスター。
  • oc として知られる OpenShift Container Platform コマンドラインインターフェース (CLI)。
  • cluster-admin 権限を持つユーザーとしてのログイン。

手順

  1. 以下のアクションを実行して、SR-IOV ネットワーク Operator の namespace を作成します。

    1. sriov-network-operator namespace を定義する以下の Namespace カスタムリソース (CR) を作成し、YAML を sriov-namespace.yaml ファイルに保存します。

      apiVersion: v1
      kind: Namespace
      metadata:
        name: sriov-network-operator
        labels:
          openshift.io/run-level: "1"
    2. 以下のコマンドを実行して namespace を作成します。

      $ oc create -f sriov-namespace.yaml
  2. 以下のオブジェクトを作成して、直前の手順で作成した namespace に SR-IOV ネットワーク Operator をインストールします。

    1. 以下の OperatorGroup CR を作成し、YAML を sriov-operatorgroup.yaml ファイルに保存します。

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: sriov-network-operators
        namespace: sriov-network-operator
      spec:
        targetNamespaces:
        - sriov-network-operator
    2. 以下のコマンドを実行して OperatorGroup CR を作成します。

      $ oc create -f sriov-operatorgroup.yaml
    3. 以下のコマンドを実行して、次の手順に必要な channel の値を取得します。

      $ oc get packagemanifest sriov-network-operator -n openshift-marketplace -o jsonpath='{.status.defaultChannel}'
      
      4.2
    4. 以下の Subscription CR を作成し、YAML を sriov-sub.yaml ファイルに保存します。

      Subscription の例

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: sriov-network-operator-subscription
        namespace: sriov-network-operator
      spec:
        channel: <channel> 1
        name: sriov-network-operator
        source: redhat-operators 2
        sourceNamespace: openshift-marketplace

      1
      .status.defaultChannel パラメーターの直前の手順で取得した値を指定します。
      2
      redhat-operators 値を指定する必要があります。
    5. 以下のコマンドを実行して Subscription オブジェクトを作成します。

      $ oc create -f sriov-sub.yaml
    6. sriov-network-operator プロジェクトに切り替えます。

      $ oc project sriov-network-operator
      
      Now using project "sriov-network-operator"

7.8.2.2. Web コンソールでの Operator のインストール

クラスター管理者は、Web コンソールを使用して Operator をインストールできます。

注記

先のセクションで説明されているように Namespace CR および OperatorGroup CR を作成する必要があります。

手順

  1. OpenShift Container Platform Web コンソールを使用して SR-IOV ネットワーク Operator をインストールします。

    1. OpenShift Container Platform Web コンソールで、OperatorsOperatorHub をクリックします。
    2. 利用可能な Operator の一覧から SR-IOV Network Operator を選択してから Install をクリックします。
    3. Create Operator Subscription ページの A specific namespace on the cluster の下で、sriov-network-operator を選択します。次に、Subscribe をクリックします。
  2. オプション: SR-IOV ネットワーク Operator が正常にインストールされていることを確認します。

    1. OperatorsInstalled Operators ページに切り替えます。
    2. SR-IOV Network Operator がiStatusInstallSucceeded の状態で sriov-network-operator プロジェクトに一覧表示されていることを確認します。

      注記

      インストール時に、 Operator は Failed ステータスを表示する可能性があります。インストールが後に InstallSucceeded メッセージを出して正常に実行される場合は、Failed メッセージを無視できます。

      Operator がインストール済みとして表示されない場合に、さらにトラブルシューティングを実行します。

      • OperatorsInstalled Operators ページに移動し、Operator Subscriptions および Install Plans タブで Status の下にエラーがあるかどうかを検査します。
      • WorkloadsPods ページに移動し、sriov-network-operator プロジェクトで Pod のログを確認します。

7.8.3. SR-IOV ネットワークデバイスの設定

SR-IOV Network Operator は SriovNetworkNodePolicy.sriovnetwork.openshift.io カスタムリソース定義 (CRD) を OpenShift Container Platform に追加します。SR-IOV ネットワークデバイスは、SriovNetworkNodePolicy カスタムリソース (CR) を作成して設定できます。

注記

SriovNetworkNodePolicy CR で指定された設定を適用する際に、SR-IOV Operator はノードをドレイン (解放) する可能性があり、場合によってはノードの再起動を行う場合があります。設定の変更が適用されるまでに数分の時間がかかる場合があります。エビクトされたワークロードを処理するために、クラスター内に利用可能なノードが十分にあることを前もって確認します。

設定の更新が適用された後に、sriov-network-operator namespace のすべての Pod が Running ステータスに変更されます。

前提条件

  • oc として知られる OpenShift コマンドラインインターフェース (CLI) のインストール。
  • cluster-admin 権限を持つユーザーとしてのログイン。
  • SR-IOV Operator がインストールされていること。

手順

  1. 以下の SriovNetworkNodePolicy CR を作成してから、YAML を <name>-sriov-node-network.yaml ファイルに保存します。<name> をこの設定の名前に置き換えます。

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetworkNodePolicy
    metadata:
      name: <name> 1
      namespace: sriov-network-operator 2
    spec:
      resourceName: <sriov_resource_name> 3
      nodeSelector:
        feature.node.kubernetes.io/network-sriov.capable: "true" 4
      priority: <priority> 5
      mtu: <mtu> 6
      numVfs: <num> 7
      nicSelector: 8
        vendor: "<vendor_code>" 9
        deviceID: "<device_id>" 10
        pfNames: ["<pf_name>", ...] 11
        rootDevices: ["<pci_bus_id>", "..."] 12
      deviceType: <device_type> 13
      isRdma: false 14
    1
    CR の名前を指定します。
    2
    SR-IOV Operator がインストールされている namespace を指定します。
    3
    SR-IOV デバイスプラグインのリソース名を指定します。プレフィックス openshift.io/ は Pod 仕様で参照される場合に追加されます。1 つのリソース名に複数の SriovNetworkNodePolicy CR を作成できます。
    4
    設定するノードを選択するノードセレクターを指定します。ユーザーは、手動で、または Kubernetes Node Feature Discovery などのツールを使ってノードにラベルを付けることを選択できます。選択したノード上の SR-IOV ネットワークデバイスのみが設定されます。SR-IOV CNI プラグインおよびデバイスプラグインは、選択されたノードにのみデプロイされます。
    5
    0 から 99 までの整数値を指定します。数値が大きいほど優先度が低くなるため、99 の優先度は 10よりも低くなります。
    6
    Virtual Function の最大転送単位 (MTU) の値を指定します。MTU の値は 1 から 9000 の範囲である必要があります。MTU を指定しない場合は、'' の値を指定します。
    7
    SR-IOV 物理ネットワークデバイス用に作成する VF (仮想機能) の数を指定します。Intel Network Interface Card (NIC) の場合、VF の数はデバイスがサポートする VF の合計よりも大きくすることはできません。Mellanox NIC の場合、VF の数は 128 よりも大きくすることはできません。
    8
    nicSelector マッピングは、Operator が設定するイーサネットデバイスを選択します。すべてのパラメーターの値を指定する必要はありません。意図せずにイーサネットデバイスを選択する可能性を最低限に抑えるために、イーサネットアダプターを正確に特定できるようにすることが推奨されます。rootDevices を指定する場合、vendordeviceID、または pfName の値も指定する必要があります。pfNamerootDevices の両方を同時に指定する場合、それらが同一のデバイスをポイントすることを確認します。
    9
    SR-IOV ネットワークデバイスのベンダー 16 進コードを指定します。許可される値は 8086 または 15b3 のいずれかのみになります。
    10
    SR-IOV ネットワークデバイスのデバイス 16 進コードを指定します。許可される値は 158b10151017 のみになります。
    11
    このパラメーターは、1 つ以上のイーサネットデバイスの物理機能 (PF) 名の配列を受け入れます。
    12
    このパラメーターは、イーサネットデバイスの物理機能についての 1 つ以上の PCI バスアドレスの配列を受け入れます。以下の形式でアドレスを指定します: 0000:02:00.1
    13
    仮想機能のドライバータイプを指定します。以下の値のいずれかを指定できます: netdevice または vfio-pciデフォルト値は netdevice です。
    14
    RDMA モードを有効にするかどうかを指定します。デフォルト値は false です。Mellanox Ethernet アダプターでは、RoCE (RDMA over Converged Ethernet) モードのみがサポートされます。
    注記

    RDMA フラグが true に設定される場合、引き続き RDMA 対応の VF を通常のネットワークデバイスとして使用できます。デバイスはどちらのモードでも使用できます。

  2. 以下のコマンドを実行して CR を作成します。

    $ oc create -f <filename> 1
    1
    <filename> を、先の手順で作成したファイルの名前に置き換えます。

7.8.4. SR-IOV の追加ネットワークの設定

SriovNetwork Custom Resource (CR) を作成して、SR-IOV ハードウェアを使用する追加のネットワークを設定できます。SriovNetwork CR の作成時に、SR-IOV Operator は NetworkAttachmentDefinition CR を自動的に作成します。

注記

SriovNetwork Custom Resource (CR) が running 状態の Pod に割り当てられている場合、これを変更したり、削除したりしないでください。

前提条件

  • oc として知られる OpenShift コマンドラインインターフェース (CLI) のインストール。
  • cluster-admin 権限を持つユーザーとしてのログイン。

手順

  1. 以下の SriovNetwork CR を作成してから、YAML を <name>-sriov-network.yaml ファイルに保存します。<name> を、この追加ネットワークの名前に置き換えます。

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetwork
    metadata:
      name: <name> 1
      namespace: sriov-network-operator 2
    spec:
      networkNamespace: <target_namespace> 3
      ipam: |- 4
        ...
      vlan: <vlan> 5
      resourceName: <sriov_resource_name> 6
    1
    <name> を CR の名前に置き換えます。Operator は同じ名前を持つ NetworkAttachmentDefinition CR を作成します。
    2
    SR-IOV Operator がインストールされている namespace を指定します。
    3
    <target_namespace> を NetworkAttachmentDefinition CR が作成される namespace に置き換えます。
    4
    IPAM CNI プラグインの設定オブジェクトを YAML ブロックスケーラーとして指定します。プラグインは、割り当て定義についての IP アドレスの割り当てを管理します。
    5
    <vlan> を、追加ネットワークの仮想 LAN (VLAN) ID に置き換えます。整数値は 0 から 4095である必要があります。デフォルト値は 0 です。
    6
    <sriov_resource_name> を、この追加ネットワークの SR-IOV ハードウェアを定義する SriovNetworkNodePolicy CR の .spec.resourceName パラメーターの値に置き換えます。
  2. 以下のコマンドを実行して CR を作成します。

    $ oc create -f <filename> 1
    1
    <filename> を、先の手順で作成したファイルの名前に置き換えます。
  3. オプション: 以下のコマンドを実行して、直前の手順で作成した SriovNetwork CR に関連付けられた NetworkAttachmentDefinition CR が存在することを確認します。<namespace> を、SriovNetwork CR で指定した namespace に置き換えます。

    oc get net-attach-def -n <namespace>

7.8.4.1. IPAM CNI プラグインの設定

IP アドレス管理 (IPAM) CNI プラグインは、他の CNI プラグインの IP アドレスの割り当てを管理します。DHCP を使用して、静的 IP アドレスの割り当てまたは動的 IP アドレスの割り当てのいずれかに IPAM を設定することができます。指定する DHCP サーバーは、追加のネットワークから到達可能である必要があります。

重要

OpenShift Container Platform 4.2.0 では、Pod を、IP アドレス管理に DHCP を使用する追加ネットワークに割り当てると、Pod は起動に失敗します。これは OpenShift Container Platform 4.2.1 で修正されています。詳細は、BZ#1754686 を参照してください。

以下の JSON 設定オブジェクトは設定できるパラメーターについて説明しています。

重要

type パラメーターを DHCP 値に設定すると、その他のパラメーターを設定することはできません。

IPAM CNI プラグイン JSON 設定オブジェクト

{
  "ipam": {
    "type": "<type>", 1
    "addresses": [ 2
      {
        "address": "<address>", 3
        "gateway": "<gateway>" 4
      }
    ],
    "routes": [ 5
      {
        "dst": "<dst>" 6
        "gw": "<gw>" 7
      }
    ],
    "dns": { 8
      "nameservers": ["<nameserver>"], 9
      "domain": "<domain>", 10
      "search": ["<search_domain>"] 11
    }
  }
}

1
IP アドレスの割り当てを管理できるようにプラグインを設定するには static を指定します。DHCP を指定して、DHCP サーバーが IP アドレスの割り当てを管理できるようにします。DHCP の値を指定する場合は、追加のパラメーターを指定できません。
2
仮想インターフェースに割り当てる IP アドレスを記述する配列。IPv4 と IPv6 の IP アドレスの両方がサポートされます。
3
10.1.1.0/24 など、ワーカーノードの Pod に割り当てる CIDR 形式で指定する IP アドレスのブロック。
4
egress ネットワークトラフィックをルーティングするデフォルトのゲートウェイ。
5
Pod 内で設定するルートを記述する配列。
6
CIDR 形式の IP アドレス範囲。
7
ネットワークトラフィックのルーティングに使用するゲートウェイ。
8
DNS 設定。オプション。
9
DNS クエリーの送信先となる 1 つ以上の IP アドレスの配列。
10
ホスト名に追加するデフォルトのドメイン。たとえば、ドメインが example.com に設定されている場合、example-host の DNS ルックアップクエリー は example-host.example.com として書き換えられます。
11
DNS ルックアップクエリー時に非修飾ホスト名に追加されるドメイン名の配列 (例: example-host)。
7.8.4.1.1. 静的 IP アドレス割り当ての設定例

静的 IP アドレスの割り当てに IPAM を設定することができます。

{
  "ipam": {
    "type": "static",
      "addresses": [
        {
          "address": "191.168.1.1/24"
        }
      ]
  }
}
7.8.4.1.2. 動的 IP アドレス割り当ての設定例

DHCP に IPAM を設定できます。

{
  "ipam": {
    "type": "DHCP"
  }
}

7.8.5. Pod の追加ネットワークへの追加

Pod を追加のネットワークに追加できます。Pod は、デフォルトネットワークで通常のクラスター関連のネットワークトラフィックを継続的に送信します。

注記

Network Resources Injector は、SR-IOV CNI プラグインに関連付けられている NetworkAttachmentDefinition CR が指定されている場合に resource パラメーターを Pod CR に同時に挿入します。

前提条件

  • Pod が追加ネットワークと同じ namespace にあること。
  • oc として知られる OpenShift コマンドラインインターフェース (CLI) のインストール。
  • クラスターにログインする必要があります。
  • SR-IOV Operator がインストールされ、SriovNetwork CR が定義されている必要があります。

手順

Pod を追加のネットワークに追加するには、以下の手順を実施します。

  1. Pod リソース定義を作成し、k8s.v1.cni.cncf.io/networks パラメーターを Pod の metadata マッピングに追加します。k8s.v1.cni.cncf.io/networks は、1 つ以上の NetworkAttachmentDefinition カスタムリソース (CR) 名のカンマ区切りの一覧を受け入れます。

    metadata:
      annotations:
        k8s.v1.cni.cncf.io/networks: <network>[,<network>,...] 1
    1
    <network> を、Pod に関連付ける追加ネットワークの名前に置き換えます。複数の追加ネットワークを指定するには、各ネットワークをカンマで区切ります。カンマの間にはスペースを入れないでください。同じ追加ネットワークを複数回指定した場合、Pod は複数のネットワークインターフェースをそのネットワークに割り当てます。

    以下の例では、2 つの追加のネットワークが Pod に割り当てられます。

    apiVersion: v1
    kind: Pod
    metadata:
      name: example-pod
      annotations:
        k8s.v1.cni.cncf.io/networks: net1,net2
    spec:
      containers:
      - name: example-pod
        command: ["/bin/bash", "-c", "sleep 2000000000000"]
        image: centos/tools
  2. 以下のコマンドを実行して Pod を作成します。

    $ oc create -f pod.yaml
  3. オプション: 以下のコマンドを実行して、アノテーションが Pod CR に存在することを確認します。<name> を Pod の名前に置き換えます。

    $ oc get pod <name> -o yaml

    以下の例では、example-pod Pod が追加ネットワークの net1 に割り当てられています。

    $ oc get pod example-pod -o yaml
    apiVersion: v1
    kind: Pod
    metadata:
      annotations:
        k8s.v1.cni.cncf.io/networks: macvlan-bridge
        k8s.v1.cni.cncf.io/networks-status: |- 1
          [{
              "name": "openshift-sdn",
              "interface": "eth0",
              "ips": [
                  "10.128.2.14"
              ],
              "default": true,
              "dns": {}
          },{
              "name": "macvlan-bridge",
              "interface": "net1",
              "ips": [
                  "20.2.2.100"
              ],
              "mac": "22:2f:60:a5:f8:00",
              "dns": {}
          }]
      name: example-pod
      namespace: default
    spec:
      ...
    status:
      ...
    1
    k8s.v1.cni.cncf.io/networks-status パラメーターは、オブジェクトの JSON 配列です。各オブジェクトは、Pod に割り当てられる追加のネットワークのステータスについて説明します。アノテーションの値はプレーンテキストの値として保存されます。