This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.6.8. Node Maintenance Operator 使用してノードをメンテナンスモードにする場合
oc adm ユーティリティーまたは NodeMaintenance カスタムリソース (CR) を使用して、Node Maintenance Operator を使用してノードをメンテナンスモードにすることができます。
6.8.1. Node Maintenance Operator について リンクのコピーリンクがクリップボードにコピーされました!
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. Node Maintenance Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Node Maintenance Operator は、Web コンソールまたは Open Shift CLI (oc) を使用してインストールできます。
OpenShift Virtualization バージョン 4.10 以下がクラスターにインストールされている場合は、古いバージョンの Node Maintenance Operator バージョンが含まれています。
6.8.2.1. Web コンソールを使用した Node Maintenance Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Open Shift Container Platform Web コンソールを使用して、Node Maintenance Operator をインストールできます。
前提条件
-
cluster-admin権限を持つユーザーとしてログインしている。
手順
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub ページに移動します。 - Node Maintenance Operator を検索し、Install をクリックします。
-
Operator が
openshift-operatorsnamespace にインストールされるように、Installation mode と namespace のデフォルトの選択を維持します。 - Install をクリックします。
検証
インストールが正常に行われたことを確認するには、以下を実行します。
-
Operators
Installed Operators ページに移動します。 -
Operator が
openshift-operatorsの namespace 内に設置されていることと、その状態がSucceededとなっていることを確認してください。
Operator が正常にインストールされていない場合、以下を実行します。
-
Operators
Installed Operators ページに移動し、 Status列でエラーまたは失敗の有無を確認します。 -
Operators
Installed Operators Node Maintenance Operator Details ページに移動し、Pod を作成する前に Conditionsセクションでエラーを調べます。 -
Workloads
Pods ページに移動し、インストールされた namespace で Node Maintenance OperatorPod を検索し、Logsタブでログを確認します。
6.8.2.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権限を持つユーザーとしてログインしている。
手順
Node Maintenance Operator の
NamespaceCR を作成します。NamespaceCR を定義し、YAML ファイルを保存します (例:node-maintenance-namespace.yaml)。apiVersion: v1 kind: Namespace metadata: name: nmo-test
apiVersion: v1 kind: Namespace metadata: name: nmo-testCopy to Clipboard Copied! Toggle word wrap Toggle overflow NamespaceCR を作成するには、次のコマンドを実行します。oc create -f node-maintenance-namespace.yaml
$ oc create -f node-maintenance-namespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OperatorGroupを作成します。OperatorGroupCR を定義し、YAML ファイルを保存します (例:node-maintenance-operator-group.yaml)。apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: node-maintenance-operator namespace: nmo-test
apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: node-maintenance-operator namespace: nmo-testCopy to Clipboard Copied! Toggle word wrap Toggle overflow OperatorGroupCR を作成するには、次のコマンドを実行します。oc create -f node-maintenance-operator-group.yaml
$ oc create -f node-maintenance-operator-group.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
SubscriptionCR を作成します。SubscriptionCR を定義し、YAML ファイルを保存します (例:node-maintenance-subscription.yaml)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Node Maintenance Operator をインストールする
Namespaceを指定します。
重要Node Maintenance Operator を
openshift-operatorsnamespace にインストールするには、SubscriptionCR でopenshift-operatorsを指定します。SubscriptionCR を作成するには、次のコマンドを実行します。oc create -f node-maintenance-subscription.yaml
$ oc create -f node-maintenance-subscription.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
CSV リソースを調べて、インストールが成功したことを確認します。
oc get csv -n openshift-operators
$ oc get csv -n openshift-operatorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME DISPLAY VERSION REPLACES PHASE node-maintenance-operator.v4.11 Node Maintenance Operator 4.11 Succeeded
NAME DISPLAY VERSION REPLACES PHASE node-maintenance-operator.v4.11 Node Maintenance Operator 4.11 SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow Node Maintenance Operator が実行されていることを確認します。
oc get deploy -n openshift-operators
$ oc get deploy -n openshift-operatorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY UP-TO-DATE AVAILABLE AGE node-maintenance-operator-controller-manager 1/1 1 1 10d
NAME READY UP-TO-DATE AVAILABLE AGE node-maintenance-operator-controller-manager 1/1 1 1 10dCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Node Maintenance Operator は、制限されたネットワーク環境でサポートされています。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。
6.8.3. ノードのメンテナンスモードへの設定 リンクのコピーリンクがクリップボードにコピーされました!
NodeMaintenance CR を使用して、Web コンソールまたは CLI からノードをメンテナンスモードにすることができます。
6.8.3.1. Web コンソールでのノードのメンテナンスモードへの設定 リンクのコピーリンクがクリップボードにコピーされました!
ノードをメンテナンスモードに設定するために、Web コンソールを使用して NodeMaintenance カスタムリソース (CR) を作成できます。
前提条件
-
cluster-admin権限を持つユーザーとしてログインしている。 - OperatorHub から Node Maintenance Operator をインストールします。
手順
-
Web コンソールの Administrator パースペクティブで、Operators
Installed Operators に移動します。 - Operator リストから Node Maintenance Operator を選択します。
- Node Maintenance タブで Create NodeMaintenance をクリックします。
-
Create NodeMaintenance ページで、Form view または YAML view t を選択して
NodeMaintenanceCR を設定します。 -
設定した
NodeMaintenanceCR を適用するには、Create をクリックします。
検証
Node Maintenance タブで Status 列を調べ、そのステータスが Succeeded であることを確認します。
6.8.3.2. CLI を使用してノードをメンテナンスモードに設定する場合 リンクのコピーリンクがクリップボードにコピーされました!
NodeMaintenance カスタムリソース (CR) を使用して、ノードをメンテナンスモードにすることができます。NodeMaintenance CR を適用すると、許可されているすべての Pod が削除され、ノードがスケジュール不能になります。エビクトされた Pod は、クラスター内の別のノードに移動するようにキューに置かれます。
前提条件
-
OpenShift Container Platform CLI (
oc) をインストールしている。 -
cluster-admin権限を持つユーザーとしてクラスターにログインしている。
手順
次の
NodeMaintenanceCR を作成し、ファイルをnodemaintenance-cr.yamlとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ノードメンテナンス CR を適用します。
oc apply -f nodemaintenance-cr.yaml
$ oc apply -f nodemaintenance-cr.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、メンテナンスタスクの進捗状況を確認します。
oc describe node <node-name>
$ oc describe node <node-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <node-name>はノードの名前です。たとえば、node-1.example.comなどになります。出力例を確認します。
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal NodeNotSchedulable 61m kubelet Node node-1.example.com status is now: NodeNotSchedulable
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal NodeNotSchedulable 61m kubelet Node node-1.example.com status is now: NodeNotSchedulableCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.8.3.3. 現在の NodeMaintenance CR タスクのステータスの確認 リンクのコピーリンクがクリップボードにコピーされました!
現在の NodeMaintenance CR タスクのステータスを確認できます。
前提条件
-
OpenShift Container Platform CLI (
oc) をインストールしている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
以下のコマンドを実行して、現在のノードのメンテナンスタスクのステータスを確認します (例:
NodeMaintenanceCR またはnm)。oc get nm -o yaml
$ oc get nm -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.8.4. メンテナンスモードからのノードの再開 リンクのコピーリンクがクリップボードにコピーされました!
NodeMaintenance CR を使用して、Web コンソールまたは CLI から、メンテナンスモードからノードを再開できます。ノードを再起動することにより、ノードをメンテナンスモードから切り替え、再度スケジュール可能な状態にできます。
6.8.4.1. Web コンソールを使用してノードをメンテナンスモードから再開する方法 リンクのコピーリンクがクリップボードにコピーされました!
ノードをメンテナンスモードから再開するために、Web コンソールを使用して NodeMaintenance カスタムリソース (CR) を削除できます。
前提条件
-
cluster-admin権限を持つユーザーとしてログインしている。 - OperatorHub から Node Maintenance Operator をインストールします。
手順
-
Web コンソールの Administrator パースペクティブで、Operators
Installed Operators に移動します。 - Operator リストから Node Maintenance Operator を選択します。
-
Node Maintenance タブで、削除する
NodeMaintenanceCR を選択します。 -
ノードの末尾の Options メニュー
をクリックし、Delete NodeMaintenance を選択します。
検証
-
Open Shift Container Platform コンソールで、Compute
Nodes をクリックします。 -
NodeMaintenanceCR を削除したノードのStatus列を調べて、その状況がReadyであることを確認します。
6.8.4.2. CLI を使用してノードをメンテナンスモードから再開する方法 リンクのコピーリンクがクリップボードにコピーされました!
NodeMaintenance CR を削除することにより、NodeMaintenance CR で開始されたメンテナンスモードからノードを再開できます。
前提条件
-
OpenShift Container Platform CLI (
oc) をインストールしている。 -
cluster-admin権限を持つユーザーとしてクラスターにログインしている。
手順
ノードのメンテナンスタスクが完了したら、アクティブな
NodeMaintenanceCR を削除します。oc delete -f nodemaintenance-cr.yaml
$ oc delete -f nodemaintenance-cr.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
nodemaintenance.nodemaintenance.medik8s.io "maintenance-example" deleted
nodemaintenance.nodemaintenance.medik8s.io "maintenance-example" deletedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、メンテナンスタスクの進捗状況を確認します。
oc describe node <node-name>
$ oc describe node <node-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <node-name>はノードの名前です。たとえば、node-1.example.comなどになります。出力例を確認します。
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal NodeSchedulable 2m kubelet Node node-1.example.com status is now: NodeSchedulable
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal NodeSchedulable 2m kubelet Node node-1.example.com status is now: NodeSchedulableCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.8.5. ベアメタルノードの操作 リンクのコピーリンクがクリップボードにコピーされました!
ベアメタルノードを含むクラスターの場合、Web コンソールの アクション コントロールを使用して、ノードをメンテナンスモードにしたり、ノードをメンテナンスモードから再開したりできます。
ベアメタルノードを含むクラスターは、概説したように、Web コンソールと CLI を使用して、ノードをメンテナンスモードにしたり、ノードをメンテナンスモードから再開したりすることもできます。これらのメソッドは、Web コンソールの アクション コントロールを使用して、ベアメタルクラスターにのみ適用できます。
6.8.5.1. ベアメタルノードのメンテナンス リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform をベアメタルインフラストラクチャーにデプロイする場合、クラウドインフラストラクチャーにデプロイする場合と比較すると、追加で考慮する必要のある点があります。クラスターノードが一時的とみなされるクラウド環境とは異なり、ベアメタルノードを再プロビジョニングするには、メンテナンスタスクにより多くの時間と作業が必要になります。
カーネルエラーや NIC カードのハードウェア障害が原因でベアメタルノードに障害が発生した場合には、障害のあるノードが修復または置き換えられている間に、障害が発生したノード上のワークロードをクラスターのノードで再起動する必要があります。ノードのメンテナンスモードにより、クラスター管理者はノードを正常にオフにし、ワークロードをクラスターの他の部分に移動させ、ワークロードが中断されないようにします。詳細な進捗とノードのステータスについての詳細は、メンテナンス時に提供されます。
6.8.5.2. ベアメタルノードをメンテナンスモードに設定する リンクのコピーリンクがクリップボードにコピーされました!
Compute
を使用するか、Node Details 画面の Actions コントロールを使用して、ベアメタルノードをメンテナンスモードに設定します。
手順
-
Web コンソールの 管理者 パースペクティブから、Compute
Nodes をクリックします。 この画面からノードをメンテナンスモードに設定することができます。これにより、複数のノードでアクションを簡単に実行できるようになります。または、選択したノードの包括的な詳細を表示できる Node Details 画面からも実行できるようになります。
-
ノードの末尾の Options メニュー
をクリックし、Start Maintenance を選択します。
-
ノード名をクリックし、Node Details 画面を開いて Actions
Stat Maintenance をクリックします。
-
ノードの末尾の Options メニュー
- 確認ウィンドウで Start Maintenance をクリックします。
ノードはスケジュール可能ではなくなりました。LiveMigration エビクションストラテジーを使用する仮想マシンがあった場合は、それらをライブマイグレーションします。このノードの他のすべての Pod および仮想マシンは削除され、別のノードで再作成されます。
検証
-
Compute
Nodes ページに移動し、対応するノードのステータスが Under maintenanceであることを確認します。
6.8.5.3. メンテナンスモードからのベアメタルノードの再開 リンクのコピーリンクがクリップボードにコピーされました!
Compute
を使用して、または Node Details 画面の Actions コントロールを使用して、メンテナンスモードからベアメタルノードを再開します。
手順
-
Web コンソールの 管理者 パースペクティブから、Compute
Nodes をクリックします。 複数のノードでアクションを簡単に実行できるこの画面からノードを再開できます。または、選択したノードの包括的な詳細を表示できる Node Details 画面からもノードを再開できます。
-
ノードの末尾の Options メニュー
をクリックし、Stop Maintenance を選択します。
-
ノード名をクリックし、Node Details 画面を開いて Actions
Stop Maintenance をクリックします。
-
ノードの末尾の Options メニュー
- 確認ウィンドウで Stop Maintenance をクリックします。
ノードがスケジュール可能になります。メンテナンス前にノードで実行されていた仮想マシンインスタンスがあった場合、それらは自動的にこのノードに移行されません。
検証
-
Compute
Nodes ページに移動し、対応するノードのステータスが Readyであることを確認します。
6.8.6. Node Maintenance Operator に関するデータの収集 リンクのコピーリンクがクリップボードにコピーされました!
Node Maintenance Operator に関するデバッグ情報を収集するには、must-gather ツールを使用します。Node Maintenance Operator の must-gather イメージに関する詳細は、Gathering data about specific features を参照してください。