3.6. 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 
    1
    
      namespace: openshift-sriov-network-operator 
    2
    
    spec:
      maxUnavailable: 2 
    3
    
      nodeSelector: 
    4
    
        matchLabels:
          node-role.kubernetes.io/worker: ""
    Copy to Clipboard Toggle word wrap

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

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

    $ oc create namespace sriov-test
    Copy to Clipboard Toggle word wrap
  4. SriovNetworkNodePolicy リソースを定義する YAML ファイルを作成します。

    sriov-node-policy.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
    Copy to Clipboard Toggle word wrap

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

    $ oc create -f sriov-node-policy.yaml
    Copy to Clipboard Toggle word wrap
  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" }'
    Copy to Clipboard Toggle word wrap

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

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

    $ oc get sriovNetworkpoolConfig -n openshift-sriov-network-operator
    Copy to Clipboard Toggle word wrap

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

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

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

    $ oc get sriovNetworkNodeState -n openshift-sriov-network-operator
    Copy to Clipboard Toggle word wrap

    出力例

    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
    Copy to Clipboard Toggle word wrap

    ドレインプロセスが完了すると、SYNC STATUSSucceeded に変更され、DESIRED SYNC STATE および CURRENT STATE 値は IDLE に戻ります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat