6.8. Node Maintenance Operator 使用してノードをメンテナンスモードにする場合


Node Maintenance Operator を使用して、ノードをメンテナンスモードにすることができます。これは、Open Shift Virtualization のインストールから独立したスタンドアロンバージョンの Node Maintenance Operator です。

注記

Open Shift Virtualization をインストールしている場合、それにバンドルされている Node Maintenance Operator を使用する必要があります。

6.8.1. Node Maintenance Operator について

oc adm ユーティリティーまたは NodeMaintenance カスタムリソース (CR) を使用してノードをメンテナンスモードにすることができます。

Node Maintenance Operator は、新規または削除された NodeMaintenance CR をモニタリングします。新規の NodeMaintenance CR が検出されると、新規ワークロードはスケジュールされず、ノードは残りのクラスターから遮断されます。エビクトできるすべての Pod はノードからエビクトされます。NodeMaintenance CR が削除されると、CR で参照されるノードは新規ワークロードで利用可能になります。

注記

ノードのメンテナンスタスクに NodeMaintenance CR を使用すると、標準の OpenShift Container Platform CR 処理を使用して oc adm cordon および oc adm drain コマンドの場合と同じ結果が得られます。

6.8.2. ベアメタルノードのメンテナンス

OpenShift Container Platform をベアメタルインフラストラクチャーにデプロイする場合、クラウドインフラストラクチャーにデプロイする場合と比較すると、追加で考慮する必要のある点があります。クラスターノードが一時的とみなされるクラウド環境とは異なり、ベアメタルノードを再プロビジョニングするには、メンテナンスタスクにより多くの時間と作業が必要になります。

カーネルエラーや NIC カードのハードウェア障害が原因でベアメタルノードに障害が発生した場合には、障害のあるノードが修復または置き換えられている間に、障害が発生したノード上のワークロードをクラスターのノードで再起動する必要があります。ノードのメンテナンスモードにより、クラスター管理者はノードを正常にオフにし、ワークロードをクラスターの他の部分に移動させ、ワークロードが中断されないようにします。詳細な進捗とノードのステータスについての詳細は、メンテナンス時に提供されます。

6.8.3. Node Maintenance Operator のインストール

Node Maintenance Operator は、Web コンソールまたは Open Shift CLI (oc) を使用してインストールできます。

6.8.3.1. Web コンソールを使用した Node Maintenance Operator のインストール

Open Shift Container Platform Web コンソールを使用して、Node Maintenance Operator をインストールできます。

前提条件

  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. OpenShift Container Platform Web コンソールで、Operators OperatorHub ページに移動します。
  2. Node Maintenance Operator を検索し、Install をクリックします。
  3. Operator が openshift-operators namespace にインストールされるように、Installation modenamespace のデフォルトの選択を維持します。
  4. Install をクリックします。

検証

インストールが正常に行われたことを確認するには、以下を実行します。

  1. Operators Installed Operators ページに移動します。
  2. Operator が openshift-operators の namespace 内に設置されていることと、その状態が Succeeded となっていることを確認してください。

Operator が正常にインストールされていない場合、以下を実行します。

  1. Operators Installed Operators ページに移動し、Status 列でエラーまたは失敗の有無を確認します。
  2. Workloads Podsページにナビゲートし、問題を報告している openshift-operators プロジェクトの Pod のログを確認します。

6.8.3.2. CLI を使用した Node Maintenance Operator のインストール

OpenShift CLI (oc) を使用して、Node Maintenance Operator をインストールできます。

Node Maintenance Operator は、独自の namespace または openshift-operators namespace にインストールできます。

独自の namespace に Operator をインストールするには、手順に従います。

openshift-operators namespace に Operator をインストールするには、手順の 3 にスキップします。これは、新しい Namespace カスタムリソース (CR) と OperatorGroup CR を作成する必要がないためです。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. Node Maintenance Operator のNamespace CR を作成します。

    1. Namespace CR を定義し、YAML ファイルを保存します (例: node-maintenance-namespace.yaml)。

      apiVersion: v1
      kind: Namespace
      metadata:
        name: nmo-test
    2. NamespaceCR を作成するには、次のコマンドを実行します。

      $ oc create -f node-maintenance-namespace.yaml
  2. OperatorGroup を作成します。

    1. OperatorGroup CR を定義し、YAML ファイルを保存します (例: node-maintenance-operator-group.yaml)。

      apiVersion: operators.coreos.com/v1
      kind: OperatorGroup
      metadata:
        name: node-maintenance-operator
        namespace: nmo-test
    2. OperatorGroup CR を作成するには、次のコマンドを実行します。

      $ oc create -f node-maintenance-operator-group.yaml
  3. SubscriptionCR を作成します。

    1. Subscription CR を定義し、YAML ファイルを保存します (例: node-maintenance-subscription.yaml)。

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        name: node-maintenance-operator
        namespace: nmo-test 1
      spec:
        channel: stable
        InstallPlaneApproval: Automatic
        name: node-maintenance-operator
        source: redhat-operators
        sourceNamespace: openshift-marketplace
        StartingCSV: node-maintenance-operator.v4.10.0
      1
      Node Maintenance Operator をインストールする Namespace を指定します。
      重要

      Node Maintenance Operator を openshift-operators namespace にインストールするには、Subscription CR で openshift-operators を指定します。

    2. SubscriptionCR を作成するには、次のコマンドを実行します。

      $ oc create -f node-maintenance-subscription.yaml

検証

  1. CSV リソースを調べて、インストールが成功したことを確認します。

    $ oc get csv -n openshift-operators

    出力例

    NAME                               DISPLAY                     VERSION   REPLACES  PHASE
    node-maintenance-operator.v4.10    Node Maintenance Operator   4.10                Succeeded

  2. Node Maintenance Operator が実行されていることを確認します。

    $ oc get deploy -n openshift-operators

    出力例

    NAME                                           READY   UP-TO-DATE   AVAILABLE   AGE
    node-maintenance-operator-controller-manager   1/1     1            1           10d

Node Maintenance Operator は、制限されたネットワーク環境でサポートされています。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。

6.8.4. ノードのメンテナンスモードへの設定

NodeMaintenance CR を使用して、Web コンソールまたは CLI からノードをメンテナンスに配置できます。

6.8.4.1. Web コンソールでのノードのメンテナンスモードへの設定

ノードをメンテナンスモードに設定するために、Web コンソールを使用して NodeMaintenance カスタムリソース (CR) を作成できます。

前提条件

  • cluster-admin 権限を持つユーザーとしてログインしている。
  • OperatorHub から Node Maintenance Operator をインストールします。

手順

  1. Web コンソールの Administrator パースペクティブで、Operators Installed Operators に移動します。
  2. Operator リストから Node Maintenance Operator を選択します。
  3. Node Maintenance タブで Create NodeMaintenance をクリックします。
  4. Create NodeMaintenance ページで、Form view または YAML view t を選択して NodeMaintenance CR を設定します。
  5. 設定した NodeMaintenance CR を適用するには、Create をクリックします。

検証

Node Maintenance タブで Status 列を調べ、そのステータスが Succeeded であることを確認します。

6.8.4.2. CLI を使用してノードをメンテナンスモードに設定する場合

NodeMaintenance カスタムリソース (CR) を使用して、ノードをメンテナンスモードにすることができます。NodeMaintenance CR を適用すると、許可されているすべての Pod が削除され、ノードがスケジュール不能になります。エビクトされた Pod は、クラスター内の別のノードに移動するようにキューに置かれます。

前提条件

  • OpenShift Container Platform CLI (oc) をインストールしている。
  • cluster-admin 権限を持つユーザーとしてクラスターにログインしている。

手順

  1. 次の NodeMaintenance CR を作成し、ファイルを nodemaintenance-cr.yaml として保存します。

    apiVersion: nodemaintenance.medik8s.io/v1beta1
    kind: NodeMaintenance
    metadata:
      name: nodemaintenance-cr  1
    spec:
      nodeName: node-1.example.com 2
      reason: "NIC replacement" 3
    1
    ノードメンテナンス CR の名前。
    2
    メンテナンスモードにするノードの名前。
    3
    メンテナンスの理由を説明するプレーンテキスト。
  2. 次のコマンドを実行して、ノードメンテナンス CR を適用します。

    $ oc apply -f nodemaintenance-cr.yaml
  3. 以下のコマンドを実行し、<node-name> をノードの名前 (例: node-1.example.com) に置き換えて、メンテナンスタスクの進捗を確認します。

    $ oc describe node node-1.example.com

    出力例

    Events:
      Type     Reason                     Age                   From     Message
      ----     ------                     ----                  ----     -------
      Normal   NodeNotSchedulable         61m                   kubelet  Node node-1.example.com status is now: NodeNotSchedulable

6.8.4.2.1. 現在の NodeMaintenance CR タスクのステータスの確認

現在の NodeMaintenance CR タスクのステータスを確認できます。

前提条件

  • OpenShift Container Platform CLI (oc) をインストールしている。
  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  • 以下のコマンドを実行して、現在のノードのメンテナンスタスクのステータスを確認します (例: NodeMaintenance CR または nm)。

    $ oc get nm -o yaml

    出力例

    apiVersion: v1
    items:
    - apiVersion: nodemaintenance.medik8s.io/v1beta1
      kind: NodeMaintenance
      metadata:
    ...
      spec:
        nodeName: node-1.example.com
        reason: Node maintenance
      status:
        evictionPods: 3   1
        lastError: "Last failure message" 2
        phase: Succeeded
        totalpods: 5 3
    ...

    1
    エビクションにスケジュールされる Pod 数。
    2
    最新のエビクションエラー (ある場合)。
    3
    ノードがメンテナンスモードに入る前の Pod の総数。

6.8.5. メンテナンスモードからのノードの再開

CLI から、または NodeMaintenance CR を使用して、メンテナンスモードからノードを再開できます。ノードを再起動することにより、ノードをメンテナンスモードから切り替え、再度スケジュール可能な状態にできます。

6.8.5.1. Web コンソールを使用してノードをメンテナンスモードから再開する方法

ノードをメンテナンスモードから再開するために、Web コンソールを使用して NodeMaintenance カスタムリソース (CR) を削除できます。

前提条件

  • cluster-admin 権限を持つユーザーとしてログインしている。
  • OperatorHub から Node Maintenance Operator をインストールします。

手順

  1. Web コンソールの Administrator パースペクティブで、Operators Installed Operators に移動します。
  2. Operator リストから Node Maintenance Operator を選択します。
  3. Node Maintenance タブで、削除する NodeMaintenance CR を選択します。
  4. ノードの末尾の Options メニュー kebab をクリックし、Delete NodeMaintenance を選択します。

検証

  1. Open Shift Container Platform コンソールで、Compute Nodes をクリックします。
  2. NodeMaintenance CR を削除したノードの Status 列を調べて、その状況が Ready であることを確認します。

6.8.5.2. CLI を使用してノードをメンテナンスモードから再開する方法

NodeMaintenance CR を削除することにより、NodeMaintenance CR で開始されたメンテナンスモードからノードを再開できます。

前提条件

  • OpenShift Container Platform CLI (oc) をインストールしている。
  • cluster-admin 権限を持つユーザーとしてクラスターにログインしている。

手順

  • ノードのメンテナンスタスクが完了したら、アクティブな NodeMaintenance CR を削除します。

    $ oc delete -f nodemaintenance-cr.yaml

    出力例

    nodemaintenance.nodemaintenance.medik8s.io "maintenance-example" deleted

6.8.6. Node Maintenance Operator に関するデータの収集

Node Maintenance Operator に関するデバッグ情報を収集するには、must-gather ツールを使用します。Node Maintenance Operator の must-gather イメージは、特定の機能に関するデータの収集 を参照してください。

6.8.7. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.