1.6. マシン設定ノードのステータスの確認について
たとえば、マシン設定または kubelet 設定を使用して、クラスター内のデフォルトのコントロールプレーンノードまたはワーカーノードに変更を加える場合、マシン設定ノードカスタムリソースを使用して、ノード更新の進捗に関する詳細情報を取得できます。新しいマシン設定が生成されるような変更は、ノード更新プロセスをトリガーします。
OpenShift Container Platform のインストール時に作成された control plane
および worker
マシン設定プール内のノードの詳細情報を表示できます。カスタムマシン設定プールは使用できません。
MachineConfigNode
カスタムリソースを使用すると、アップグレードフェーズを通過する際に、個別のノード更新の進捗をモニターできます。この情報は、更新中にノードの 1 つに問題が発生した場合のトラブルシューティングに役立ちます。カスタムリソースは、現在ノードが更新プロセスのどの段階にあるか、完了したフェーズ、および残りのフェーズを報告します。
マシン設定ノードのカスタムリソースは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
ノードの更新プロセスは、次のフェーズとサブフェーズで構成されます。これらのフェーズは、このセクションで後述するマシン設定ノードのカスタムリソースによって追跡されます。
Update Prepared: MCO は設定ドリフトモニタリングプロセスを停止し、新たに作成されたマシン設定がノードに適用できることを確認します。
- UpdateCompatible
Update Executed: MCO はノードをスケジューリング対象から外してドレインし、必要に応じて新しいマシン設定をノードのファイルおよびオペレーティングシステムに適用します。次のサブフェーズが含まれています。
- Cordoned
- Drained
- AppliedFilesAndOS
- PinnedImageSetsProgressing: MCO は、コンテナーイメージの固定および事前ロードに必要な手順を実行しています。
-
PinnedImageSetsDegraded: 固定されたイメージプロセスに失敗しました。
oc describe machineconfignode
コマンドを使用すると、このセクションの後半で説明するように、障害の理由を表示できます。 Update Post update action: MCO は、必要に応じてノードを再起動するか CRI-O を再ロードします。
- RebootedNode
- ReloadedCRIO
Update Complete: MCO はノードをスケジューリング対象に戻し、ノードの状態をクラスターに更新して、ノードのメトリクスの生成を再開します。
- Updated
- Uncordoned
- Resumed: MCO は設定ドリフトモニタープロセスを再起動し、ノードは運用状態に戻ります。
更新がこれらのフェーズを通過すると、MachineConfigNode
カスタムリソースをクエリーできます。これは、フェーズごとに次のいずれかの条件を報告します。
-
True
: そのノードでフェーズが完了したか、MCO がそのノードでそのフェーズを開始したことを意味します。 -
False
: そのノードでは、フェーズが実行中であるか、実行されないことを意味します。 -
Unknown
: そのノードでは、フェーズが実行中であるか、エラーが発生していることを意味します。フェーズにエラーがある場合、このセクションで後で説明するように、oc describe machineconfignodes
コマンドを使用して詳細情報を取得できます。
たとえば、新たに作成されたマシン設定を持つクラスターを考えてみます。
oc get machineconfig
$ oc get machineconfig
出力例
新しいマシン設定でノードが更新される様子を監視できます。
oc get machineconfignodes
$ oc get machineconfignodes
出力例
フィールド | 意味 |
---|---|
| ノードの名前。 |
| そのノードに関連付けられたマシン設定プールの名前。 |
| ノードの更新先である新しいマシン設定の名前。 |
| そのノード上の現在のマシン設定の名前。 |
| ノードが次のいずれかの条件で更新されたかどうかを示します。
|
-o wide
フラグを使用すると、更新に関する追加情報を表示できます。
oc get machineconfignodes -o wide
$ oc get machineconfignodes -o wide
出力例
前の表で定義されたフィールドに加え、-o wide
出力には以下のフィールドが表示されます。
フェーズ名 | 定義 |
---|---|
| MCO がノードを更新する準備ができているかどうかを示します。 |
| MCO がノードで更新の本体を完了したかどうかを示します。 |
| MCO がノードで更新後のアクションを実行したかどうかを示します。 |
| MCO がノードで更新を完了したかどうかを示します。 |
| ノードが通常のプロセスを再開したかどうかを示します。 |
| MCO がノードで更新を実行できると判断したかどうかを示します。 |
| MCO がノードファイルとオペレーティングシステムを更新したかどうかを示します。 |
| MCO がノードをスケジュール対象外としてマークしているかどうかを示します。 |
| MCO がノードをドレインしたかどうかを示します。 |
| MCO がノードを再起動したかどうかを示します。 |
| MCO が CRI-O サービスを再起動したかどうかを示します。 |
| MCO がノードをスケジュール対象としてマークしているかどうかを示します。 |
更新ステータスの詳細は、oc describe machineconfignode
コマンドを使用できます。
oc describe machineconfignode/<machine_config_node_name>
$ oc describe machineconfignode/<machine_config_node_name>
出力例
1.6.1. マシン設定ノードのステータスの確認 リンクのコピーリンクがクリップボードにコピーされました!
マシン設定プール (MCP) の更新中、oc get machineconfignodes
コマンドおよび oc describe machineconfignodes
コマンドを使用して、クラスター内のすべてのコントロールプレーンおよびワーカーノードの進捗をモニターできます。これらのコマンドは、更新時に問題が発生し、ノードのトラブルシューティングが必要な場合に役立つ情報を提供します。
これらのコマンドは、カスタムのマシン設定プールでは使用できません。
これらのフィールドの意味に関する詳細は、「マシン設定ノードのステータスの確認について」を参照してください。
前提条件
cluster
という名前のFeatureGate
CR を編集して、クラスターに必要なテクノロジープレビュー機能を有効にした。oc edit featuregate cluster
$ oc edit featuregate cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow FeatureGate
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告クラスターで
TechPreviewNoUpgrade
機能セットを有効にすると、元に戻すことができず、マイナーバージョンの更新が妨げられます。この機能セットを使用すると、該当するテクノロジープレビュー機能をテストクラスターで有効にして、完全にテストすることができます。実稼働クラスターではこの機能セットを有効にしないでください。変更を保存すると、新規マシン設定が作成され、マシン設定プールが更新され、変更が適用されている間に各ノードのスケジューリングが無効になります。
手順
次のコマンドを実行して、現在のマシン設定と必要なマシン設定を含む、クラスター内のすべてのノードの更新ステータスを表示します。
oc get machineconfignodes
$ oc get machineconfignodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスター内のノードのすべてのマシン設定ノードステータスフィールドを表示します。
oc get machineconfignodes -o wide
$ oc get machineconfignodes -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、特定のマシン設定プールに含まれるノードの更新ステータスを確認します。
oc get machineconfignodes $(oc get machineconfignodes -o json | jq -r '.items[]|select(.spec.pool.name=="<pool_name>")|.metadata.name')
$ oc get machineconfignodes $(oc get machineconfignodes -o json | jq -r '.items[]|select(.spec.pool.name=="<pool_name>")|.metadata.name')
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME POOLNAME DESIREDCONFIG CURRENTCONFIG UPDATED ci-ln-g6dr34b-72292-g9btv-worker-a-sjh5r worker rendered-worker-d5534cb730e5e108905fc285c2a42b6c rendered-worker-d5534cb730e5e108905fc285c2a42b6c True ci-ln-g6dr34b-72292-g9btv-worker-b-xthbz worker rendered-worker-d5534cb730e5e108905fc285c2a42b6c rendered-worker-faf6b50218a8bbce21f1370866283de5 False ci-ln-g6dr34b-72292-g9btv-worker-c-gnpd6 worker rendered-worker-faf6b50218a8bbce21f1370866283de5 rendered-worker-faf6b50218a8bbce21f1370866283de5 True
NAME POOLNAME DESIREDCONFIG CURRENTCONFIG UPDATED ci-ln-g6dr34b-72292-g9btv-worker-a-sjh5r worker rendered-worker-d5534cb730e5e108905fc285c2a42b6c rendered-worker-d5534cb730e5e108905fc285c2a42b6c True ci-ln-g6dr34b-72292-g9btv-worker-b-xthbz worker rendered-worker-d5534cb730e5e108905fc285c2a42b6c rendered-worker-faf6b50218a8bbce21f1370866283de5 False ci-ln-g6dr34b-72292-g9btv-worker-c-gnpd6 worker rendered-worker-faf6b50218a8bbce21f1370866283de5 rendered-worker-faf6b50218a8bbce21f1370866283de5 True
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、個々のノードの更新ステータスを確認します。
oc describe machineconfignode/<node_name>
$ oc describe machineconfignode/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow