3.7. SR-IOV ネットワークポリシーの更新中に並列ノードドレインを設定する


デフォルトでは、SR-IOV Network Operator は、ポリシーを変更するたびに、ノードからワークロードをドレイン (解放) します。Operator は、再設定がワークロードに影響を与えないように、このアクションを一度に 1 つのノードで実行します。

大規模なクラスターでは、ノードを順番にドレインするには時間がかかり、数時間または数日かかることもあります。時間に敏感な環境では、SriovNetworkPoolConfig カスタムリソース (CR) で並列ノードドレインを有効にして、SR-IOV ネットワーク設定のロールアウトを高速化できます。

並列ドレインを設定するには、SriovNetworkPoolConfig CR を使用してノードプールを作成します。次に、プールにノードを追加し、Operator が並行してドレインできるプール内のノードの最大数を定義できます。このアプローチでは、実行中のワークロードを処理するために十分なノードがプール内に残っていることを確認しながら、並列ドレインを有効にして再設定を高速化できます。

注記

ノードは 1 つの SR-IOV ネットワークプール設定にのみ属することができます。ノードがプールに含まれていない場合、そのノードは、一度に 1 つのノードだけをドレインするように設定された仮想のデフォルトプールに追加されます。

ドレイン処理中にノードが再起動する可能性があります。

この手順では、SR-IOV リソースを作成し、ノードを並列ドレインする必要があります。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。
  • SR-IOV Network Operator がインストールされている。
  • ノードには SR-IOV をサポートするハードウェアがある。

手順

  1. SriovNetworkPoolConfig リソースを定義する YAML ファイルを作成します。

    sriov-nw-pool.yaml ファイルの例

    apiVersion: v1
    kind: SriovNetworkPoolConfig
    metadata:
      name: pool-1
      namespace: openshift-sriov-network-operator
    spec:
      maxUnavailable: 2
      nodeSelector:
        matchLabels:
          node-role.kubernetes.io/worker: ""

    ここでは、以下のようになります。

    name
    SriovNetworkPoolConfig オブジェクトの名前を指定します。
    namespace
    SR-IOV Network Operator がインストールされている namespace を指定します。
    maxUnavailable
    更新中にプール内で使用できなくなるノードの整数値またはパーセンテージ値を指定します。たとえば、ノードが 10 個あり、使用不可の最大数を 2 に設定した場合は、一度に並列ドレインできるノードは 2 個だけとなり、ワークロードの処理には 8 個のノードが残ります。
    nodeSelector
    ノードセレクターを使用して、プールを追加するノードを指定します。この例では、worker ロールを持つすべてのノードをプールに追加します。
  2. 次のコマンドを実行して、SriovNetworkPoolConfig リソースを作成します。

    $ oc create -f sriov-nw-pool.yaml
  3. 次のコマンドを実行して、sriov-test namespace を作成します。

    $ oc create namespace sriov-test
  4. 次のサンプル YAML ファイルで示されるとおり、SriovNetworkNodePolicy リソースを定義する YAML ファイルを作成します。

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetworkNodePolicy
    metadata:
      name: sriov-nic-1
      namespace: openshift-sriov-network-operator
    spec:
      deviceType: netdevice
      nicSelector:
        pfNames: ["ens1"]
      nodeSelector:
        node-role.kubernetes.io/worker: ""
      numVfs: 5
      priority: 99
      resourceName: sriov_nic_1
  5. 次のコマンドを実行して、SriovNetworkNodePolicy リソースを作成します。

    $ oc create -f sriov-node-policy.yaml
  6. SriovNetwork リソースを定義する YAML ファイルを作成します。

    sriov-network.yaml ファイルの例

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetwork
    metadata:
      name: sriov-nic-1
      namespace: openshift-sriov-network-operator
    spec:
      linkState: auto
      networkNamespace: sriov-test
      resourceName: sriov_nic_1
      capabilities: '{ "mac": true, "ips": true }'
      ipam: '{ "type": "static" }'

  7. 次のコマンドを実行して、SriovNetwork リソースを作成します。

    $ oc create -f sriov-network.yaml
  8. 次のコマンドを実行して、作成したノードプールを表示します。

    $ oc get sriovNetworkpoolConfig -n openshift-sriov-network-operator

    予想される出力には、worker ロールを持つすべてのノードを含むノードプールの名前 (pool-1 など) と、ノードプールの秒単位の経過時間 (67s など) が表示されます。

  9. クラスター内のワークロードのドレインをトリガーするには、SriovNetworkNodePolicy リソース内の Virtual Function の数を更新します。

    $ oc patch SriovNetworkNodePolicy sriov-nic-1 -n openshift-sriov-network-operator --type merge -p '{"spec": {"numVfs": 4}}'
  10. 次のコマンドを実行して、ターゲットクラスターのドレイン状態を確認します。

    $ oc get sriovNetworkNodeState -n openshift-sriov-network-operator

    出力例

    NAMESPACE                          NAME       SYNC STATUS   DESIRED SYNC STATE   CURRENT SYNC STATE   AGE
    openshift-sriov-network-operator   worker-0   InProgress    Drain_Required       DrainComplete        3d10h
    openshift-sriov-network-operator   worker-1   InProgress    Drain_Required       DrainComplete        3d10h

    ドレインプロセスが完了すると、SYNC STATUSSucceeded に変わり、DESIRED SYNC STATECURRENT SYNC STATE の値が IDLE に戻ります。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る