1.6. マシン設定ノードのステータスの確認について
たとえば、MachineConfig
または KubeletConfig
オブジェクトを使用して、マシン設定プール (MCP) に変更を加えて新しいマシン設定を作成する場合、マシン設定ノードのカスタムリソースを使用して、ノード更新の進捗状況に関する詳細情報を取得できます。
MachineConfigNode
カスタムリソースを使用すると、更新フェーズを進むにつれて個々のノード更新の進行状況を監視できます。この情報は、更新中にノードの 1 つに問題が発生した場合のトラブルシューティングに役立ちます。カスタムリソースは、現在ノードが更新プロセスのどの段階にあるか、完了したフェーズ、および残りのフェーズを報告します。
ノードの更新プロセスは、次のフェーズとサブフェーズで構成されます。これらのフェーズは、このセクションで後述するマシン設定ノードのカスタムリソースによって追跡されます。
- Update Prepared: MCO は設定ドリフトモニタリングプロセスを停止し、新たに作成されたマシン設定がノードに適用できることを確認します。
Update Executed: MCO はノードをスケジューリング対象から外してドレインし、必要に応じて新しいマシン設定をノードのファイルおよびオペレーティングシステムに適用します。次のサブフェーズが含まれています。
- Cordoned
- Drained
- AppliedFilesAndOS
- PinnedImageSetsProgressing: MCO は、コンテナーイメージの固定および事前ロードに必要な手順を実行しています。
-
PinnedImageSetsDegraded: 固定されたイメージプロセスに失敗しました。
oc describe machineconfignode
コマンドを使用すると、このセクションの後半で説明するように、障害の理由を表示できます。 -
NodeDegraded: ノードの更新に失敗しました。
oc describe machineconfignode
コマンドを使用すると、このセクションの後半で説明するように、障害の理由を表示できます。 - Update Post update action: MCO は必要に応じて CRI-O を再ロードしています。
- Rebooted Node: MCO は必要に応じてノードを再起動しています。
Update Complete: MCO はノードをスケジューリング対象に戻し、ノードの状態をクラスターに更新して、ノードのメトリクスの生成を再開します。これには、次のサブフェーズが含まれます。
- Uncordoned
- Updated MCO はノードの更新を完了し、ノードの現在の設定バージョンは必要な更新バージョンと同じになりました。
- Resumed: MCO は設定ドリフトモニタープロセスを再起動し、ノードは運用状態に戻ります。
更新がこれらのフェーズを通過すると、MachineConfigNode
カスタムリソースをクエリーできます。これは、フェーズごとに次のいずれかの条件を報告します。
-
True
: そのノードでフェーズが完了します。 -
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 がノードをスケジュール対象としてマークしているかどうかを示します。 |
更新ステータスの詳細は、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
コマンドを使用して、クラスター内のすべてのノードの進行状況を監視できます。これらのコマンドは、更新時に問題が発生し、ノードのトラブルシューティングが必要な場合に役立つ情報を提供します。
これらのフィールドの意味に関する詳細は、「マシン設定ノードのステータスの確認について」を参照してください。
手順
次のコマンドを実行して、現在のマシン設定と必要なマシン設定を含む、クラスター内のすべてのノードの更新ステータスを表示します。
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 ここでは、以下のようになります。
<pool_name>
マシン設定プールの名前を指定します。
出力例
NAME POOLNAME DESIREDCONFIG CURRENTCONFIG UPDATED AGE ci-ln-g6dr34b-72292-g9btv-worker-a-sjh5r worker rendered-worker-d5534cb730e5e108905fc285c2a42b6c rendered-worker-d5534cb730e5e108905fc285c2a42b6c True 20M ci-ln-g6dr34b-72292-g9btv-worker-b-xthbz worker rendered-worker-d5534cb730e5e108905fc285c2a42b6c rendered-worker-faf6b50218a8bbce21f1370866283de5 False 20M ci-ln-g6dr34b-72292-g9btv-worker-c-gnpd6 worker rendered-worker-faf6b50218a8bbce21f1370866283de5 rendered-worker-faf6b50218a8bbce21f1370866283de5 True 19M
NAME POOLNAME DESIREDCONFIG CURRENTCONFIG UPDATED AGE ci-ln-g6dr34b-72292-g9btv-worker-a-sjh5r worker rendered-worker-d5534cb730e5e108905fc285c2a42b6c rendered-worker-d5534cb730e5e108905fc285c2a42b6c True 20M ci-ln-g6dr34b-72292-g9btv-worker-b-xthbz worker rendered-worker-d5534cb730e5e108905fc285c2a42b6c rendered-worker-faf6b50218a8bbce21f1370866283de5 False 20M ci-ln-g6dr34b-72292-g9btv-worker-c-gnpd6 worker rendered-worker-faf6b50218a8bbce21f1370866283de5 rendered-worker-faf6b50218a8bbce21f1370866283de5 True 19M
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