5.3. ノードのメンテナンスモードへの設定
NodeMaintenance CR を使用して、Web コンソールまたは CLI からノードをメンテナンスモードにすることができます。
5.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 であることを確認します。
5.3.2. CLI を使用してノードをメンテナンスモードに設定する場合
NodeMaintenance カスタムリソース (CR) を使用して、ノードをメンテナンスモードにすることができます。NodeMaintenance CR を適用すると、許可されているすべての Pod が削除され、ノードがスケジュール不能になります。エビクトされた Pod は、クラスター内の別のノードに移動するようにキューに置かれます。
前提条件
-
Red Hat OpenShift CLI (
oc) をインストールしている。 -
cluster-admin権限を持つユーザーとしてクラスターにログインしている。
手順
次の
NodeMaintenanceCR を作成し、ファイルを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
次のコマンドを実行して、ノードメンテナンス CR を適用します。
$ oc apply -f nodemaintenance-cr.yaml
検証
次のコマンドを実行して、メンテナンスタスクの進捗状況を確認します。
$ oc describe node <node-name>
<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
5.3.3. 現在の NodeMaintenance CR タスクのステータスの確認
現在の NodeMaintenance CR タスクのステータスを確認できます。
前提条件
-
Red Hat OpenShift CLI (
oc) をインストールしている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
以下のコマンドを実行して、現在のノードのメンテナンスタスクのステータスを確認します (例:
NodeMaintenanceCR または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: drainProgress: 100 1 evictionPods: 3 2 lastError: "Last failure message" 3 lastUpdate: "2022-06-23T11:43:18Z" 4 phase: Succeeded totalpods: 5 5 ...