1.6. 更新時のノードのステータスについて
たとえば、MachineConfig または KubeletConfig オブジェクトを使用して、マシン設定プール (MCP) に変更を加えて新しいマシン設定を作成する場合、マシン設定ノードのカスタムリソースを使用して、ノード更新の進捗状況に関する詳細情報を取得できます。この情報は、更新時に問題が発生し、ノードのトラブルシューティングが必要な場合に役立ちます。
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
出力例
# ...
rendered-master-23cf200e4ee97daa6e39fdce24c9fb67 c00e2c941bc6e236b50e0bf3988e6c790cf2bbb2 3.4.0 6d15h
rendered-master-a386c2d1550b927d274054124f58be68 c00e2c941bc6e236b50e0bf3988e6c790cf2bbb2 3.4.0 7m26s
# ...
rendered-worker-01f27f752eb84eba917450e43636b210 c00e2c941bc6e236b50e0bf3988e6c790cf2bbb2 3.4.0 6d15h
rendered-worker-f351f6947f15cd0380514f4b1c89f8f2 c00e2c941bc6e236b50e0bf3988e6c790cf2bbb2 3.4.0 7m26s
# ...
新しいマシン設定でノードが更新される様子を監視できます。
$ oc get machineconfignodes
出力例
NAME POOLNAME DESIREDCONFIG CURRENTCONFIG UPDATED
ci-ln-ds73n5t-72292-9xsm9-master-0 master rendered-master-a386c2d1550b927d274054124f58be68 rendered-master-a386c2d1550b927d274054124f58be68 True
ci-ln-ds73n5t-72292-9xsm9-master-1 master rendered-master-a386c2d1550b927d274054124f58be68 rendered-master-23cf200e4ee97daa6e39fdce24c9fb67 False
ci-ln-ds73n5t-72292-9xsm9-master-2 master rendered-master-23cf200e4ee97daa6e39fdce24c9fb67 rendered-master-23cf200e4ee97daa6e39fdce24c9fb67 True
ci-ln-ds73n5t-72292-9xsm9-worker-a-2d8tz worker rendered-worker-f351f6947f15cd0380514f4b1c89f8f2 rendered-worker-f351f6947f15cd0380514f4b1c89f8f2 True
ci-ln-ds73n5t-72292-9xsm9-worker-b-gw5sd worker rendered-worker-f351f6947f15cd0380514f4b1c89f8f2 rendered-worker-01f27f752eb84eba917450e43636b210 False
ci-ln-ds73n5t-72292-9xsm9-worker-c-t227w worker rendered-worker-01f27f752eb84eba917450e43636b210 rendered-worker-01f27f752eb84eba917450e43636b210 True
| フィールド | 意味 |
|---|---|
|
| ノードの名前。 |
|
| そのノードに関連付けられたマシン設定プールの名前。 |
|
| ノードの更新先である新しいマシン設定の名前。 |
|
| そのノード上の現在のマシン設定の名前。 |
|
| ノードが次のいずれかの条件で更新されたかどうかを示します。
|
-o wide フラグを使用すると、更新に関する追加情報を表示できます。
$ oc get machineconfignodes -o wide
出力例
$ oc get machineconfignode -o wide
NAME POOLNAME DESIREDCONFIG CURRENTCONFIG UPDATED UPDATEPREPARED UPDATEEXECUTED UPDATEPOSTACTIONCOMPLETE UPDATECOMPLETE RESUMED UPDATECOMPATIBLE UPDATEDFILESANDOS CORDONEDNODE DRAINEDNODE REBOOTEDNODE RELOADEDCRIO UNCORDONEDNODE
ci-ln-ds73n5t-72292-9xsm9-master-0 master rendered-master-23cf200e4ee97daa6e39fdce24c9fb67 rendered-master-23cf200e4ee97daa6e39fdce24c9fb67 True False False False False False False False False False False False False
ci-ln-ds73n5t-72292-9xsm9-master-1 master rendered-master-23cf200e4ee97daa6e39fdce24c9fb67 rendered-master-23cf200e4ee97daa6e39fdce24c9fb67 True False False False False False False False False False False False False
ci-ln-ds73n5t-72292-9xsm9-master-2 master rendered-master-23cf200e4ee97daa6e39fdce24c9fb67 rendered-master-23cf200e4ee97daa6e39fdce24c9fb67 True False False False False False False False False False False False False
ci-ln-ds73n5t-72292-9xsm9-worker-a-2d8tz worker rendered-worker-f351f6947f15cd0380514f4b1c89f8f2 rendered-worker-f351f6947f15cd0380514f4b1c89f8f2 True False False False False False False False False False False False False
ci-ln-ds73n5t-72292-9xsm9-worker-b-gw5sd worker rendered-worker-f351f6947f15cd0380514f4b1c89f8f2 rendered-worker-01f27f752eb84eba917450e43636b210 False True True Unknown False False True True True True Unknown False False
ci-ln-ds73n5t-72292-9xsm9-worker-c-t227w worker rendered-worker-01f27f752eb84eba917450e43636b210 rendered-worker-01f27f752eb84eba917450e43636b210 True False False False False False False False False False False False False
前の表で定義されたフィールドに加え、-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>
出力例
Name: <machine_config_node_name>
Namespace:
Labels: <none>
Annotations: <none>
API Version: machineconfiguration.openshift.io/v1alpha1
Kind: MachineConfigNode
Metadata:
Creation Timestamp: 2023-10-17T13:08:58Z
Generation: 1
Resource Version: 49443
UID: 4bd758ab-2187-413c-ac42-882e61761b1d
Spec:
Node Ref:
Name: <node_name>
Pool:
Name: worker
ConfigVersion:
Desired: rendered-worker-f351f6947f15cd0380514f4b1c89f8f2
Status:
Conditions:
Last Transition Time: 2025-01-14T17:01:16Z
Message: Node ci-ln-ds73n5t-72292-9xsm9-worker-b-gw5sd needs an update
Reason: Updated
Status: False
Type: Updated
Last Transition Time: 2025-01-14T17:01:18Z
Message: Update is Compatible.
Reason: UpdateCompatible
Status: True
Type: UpdatePrepared
Last Transition Time: 2025-01-14T17:04:08Z
Message: Updated the Files and OS on disk as a part of the in progress phase
Reason: AppliedFilesAndOS
Status: True
Type: UpdateExecuted
Last Transition Time: 2025-01-14T17:04:08Z
Message: Node will reboot into config rendered-worker-db01b33f959e5645a721da50a6db1fbb
Reason: RebootedNode
Status: Unknown
Type: UpdatePostActionComplete
Last Transition Time: 2025-01-14T16:04:27Z
Message: Action during update to rendered-worker-f351f6947f15cd0380514f4b1c89f8f2: UnCordoned Node as part of completing upgrade phase
Reason: Uncordoned
Status: False
Type: UpdateComplete
Last Transition Time: 2025-01-14T16:04:27Z
Message: Action during update to rendered-worker-f351f6947f15cd0380514f4b1c89f8f2: In desired config rendered-worker-01f27f752eb84eba917450e43636b210. Resumed normal operations.
Reason: Resumed
Status: False
Type: Resumed
Last Transition Time: 2025-01-14T17:01:18Z
Message: Update Compatible. Post Cfg Actions []: Drain Required: true
Reason: UpdatePreparedUpdateCompatible
Status: True
Type: UpdateCompatible
Last Transition Time: 2025-01-14T17:03:57Z
Message: Drained node. The drain is complete as the desired drainer matches current drainer: drain-rendered-worker-db01b33f959e5645a721da50a6db1fbb
Reason: UpdateExecutedDrained
Status: True
Type: Drained
Last Transition Time: 2025-01-14T17:04:08Z
Message: Applied files and new OS config to node. OS did not need an update. SSH Keys did not need an update
Reason: UpdateExecutedAppliedFilesAndOS
Status: True
Type: AppliedFilesAndOS
Last Transition Time: 2025-01-14T17:01:23Z
Message: Cordoned node. The node is reporting Unschedulable = true
Reason: UpdateExecutedCordoned
Status: True
Type: Cordoned
Last Transition Time: 2025-01-14T17:04:08Z
Message: Upgrade requires a reboot. Currently doing this as the post update action.
Reason: UpdatePostActionCompleteRebootedNode
Status: Unknown
Type: RebootedNode
Last Transition Time: 2025-01-14T15:30:57Z
Message: This node has not yet entered the ReloadedCRIO phase
Reason: NotYetOccured
Status: False
Type: ReloadedCRIO
Last Transition Time: 2025-01-14T16:04:27Z
Message: Action during update to rendered-worker-f351f6947f15cd0380514f4b1c89f8f2: UnCordoned node. The node is reporting Unschedulable = false
Reason: UpdateCompleteUncordoned
Status: False
Type: Uncordoned
Last Transition Time: 2025-01-14T16:04:07Z
Message: All is good
Reason: AsExpected
Status: False
Type: PinnedImageSetsDegraded
Last Transition Time: 2025-01-14T16:04:07Z
Message: All pinned image sets complete
Reason: AsExpected
Status: False
Type: PinnedImageSetsProgressing
Config Version:
Current: rendered-worker-01f27f752eb84eba917450e43636b210
Desired: rendered-worker-f351f6947f15cd0380514f4b1c89f8f2
Observed Generation: 6
# ...
1.6.1. 更新時のノードステータスの確認 リンクのコピーリンクがクリップボードにコピーされました!
マシン設定プール (MCP) の更新中に、oc get machineconfignodes と oc describe machineconfignodes コマンドを使用して、クラスター内のすべてのノードの進行状況を監視できます。これらのコマンドは、更新時に問題が発生し、ノードのトラブルシューティングが必要な場合に役立つ情報を提供します。
これらのフィールドの意味に関する詳細は、「マシン設定ノードのステータスの確認について」を参照してください。
前提条件
clusterという名前のFeatureGateCR を編集して、クラスターに必要なテクノロジープレビュー機能を有効にした。$ oc edit featuregate clusterFeatureGateCR の例apiVersion: config.openshift.io/v1 kind: FeatureGate metadata: name: cluster spec: featureSet: TechPreviewNoUpgrade警告クラスターで
TechPreviewNoUpgrade機能セットを有効にすると、元に戻すことができず、マイナーバージョンの更新が妨げられます。この機能セットを使用すると、該当するテクノロジープレビュー機能をテストクラスターで有効にして、完全にテストすることができます。実稼働クラスターではこの機能セットを有効にしないでください。変更を保存すると、新規マシン設定が作成され、マシン設定プールが更新され、変更が適用されている間に各ノードのスケジューリングが無効になります。
手順
次のコマンドを実行して、現在のマシン設定と必要なマシン設定を含む、クラスター内のすべてのノードの更新ステータスを表示します。
$ oc get machineconfignodes出力例
NAME POOLNAME DESIREDCONFIG CURRENTCONFIG UPDATED ci-ln-mdb23yt-72292-kzdsg-master-0 master rendered-master-f21b093d20f68a7c06f922ed3ea5fbc8 rendered-master-1abc053eec29e6c945670f39d6dc8afa False ci-ln-mdb23yt-72292-kzdsg-master-1 master rendered-master-1abc053eec29e6c945670f39d6dc8afa rendered-master-1abc053eec29e6c945670f39d6dc8afa True ci-ln-mdb23yt-72292-kzdsg-master-2 master rendered-master-1abc053eec29e6c945670f39d6dc8afa rendered-master-1abc053eec29e6c945670f39d6dc8afa True ci-ln-mdb23yt-72292-kzdsg-worker-a-gfqjr worker rendered-worker-d0130cd74e9e576d7ba78ce166272bfb rendered-worker-8f61bf839898a4487c3b5263a430e94a False ci-ln-mdb23yt-72292-kzdsg-worker-b-gknq4 worker rendered-worker-8f61bf839898a4487c3b5263a430e94a rendered-worker-8f61bf839898a4487c3b5263a430e94a True ci-ln-mdb23yt-72292-kzdsg-worker-c-mffrx worker rendered-worker-8f61bf839898a4487c3b5263a430e94a rendered-worker-8f61bf839898a4487c3b5263a430e94a True次のコマンドを実行して、クラスター内のノードのすべてのマシン設定ノードステータスフィールドを表示します。
$ oc get machineconfignodes -o wide出力例
NAME POOLNAME DESIREDCONFIG CURRENTCONFIG UPDATED UPDATEPREPARED UPDATEEXECUTED UPDATEPOSTACTIONCOMPLETE UPDATECOMPLETE RESUMED UPDATECOMPATIBLE UPDATEDFILESANDOS CORDONEDNODE DRAINEDNODE REBOOTEDNODE RELOADEDCRIO UNCORDONEDNODE ci-ln-g6dr34b-72292-g9btv-master-0 master rendered-master-d4e122320b351cdbe1df59ddb63ddcfc rendered-master-6f2064fcb36d2a914de5b0c660dc49ff False True Unknown False False False True Unknown False False False False False ci-ln-g6dr34b-72292-g9btv-master-1 master rendered-master-6f2064fcb36d2a914de5b0c660dc49ff rendered-master-6f2064fcb36d2a914de5b0c660dc49ff True False False False False False False False False False False False False ci-ln-g6dr34b-72292-g9btv-master-2 master rendered-master-6f2064fcb36d2a914de5b0c660dc49ff rendered-master-6f2064fcb36d2a914de5b0c660dc49ff True False False False False False False False False False False False False ci-ln-g6dr34b-72292-g9btv-worker-a-sjh5r worker rendered-worker-671b88c8c569fa3f60dc1a27cf9c91f2 rendered-worker-d5534cb730e5e108905fc285c2a42b6c False True Unknown False False False True Unknown False False False False False ci-ln-g6dr34b-72292-g9btv-worker-b-xthbz worker rendered-worker-d5534cb730e5e108905fc285c2a42b6c rendered-worker-d5534cb730e5e108905fc285c2a42b6c True False False False False False False False False False False False False ci-ln-g6dr34b-72292-g9btv-worker-c-gnpd6 worker rendered-worker-d5534cb730e5e108905fc285c2a42b6c rendered-worker-d5534cb730e5e108905fc285c2a42b6c True False False False False False False False False False False False False次のコマンドを実行して、特定のマシン設定プールに含まれるノードの更新ステータスを確認します。
$ oc get machineconfignodes $(oc get machineconfignodes -o json | jq -r '.items[]|select(.spec.pool.name=="<pool_name>")|.metadata.name')1 出力例
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次のコマンドを実行して、個々のノードの更新ステータスを確認します。
$ oc describe machineconfignode/<node_name>出力例
Name: <node_name> Namespace: Labels: <none> Annotations: <none> API Version: machineconfiguration.openshift.io/v1alpha1 Kind: MachineConfigNode Metadata: Creation Timestamp: 2023-10-17T13:08:58Z Generation: 1 Resource Version: 49443 UID: 4bd758ab-2187-413c-ac42-882e61761b1d Spec: Node Ref: Name: <node_name> Pool: Name: master ConfigVersion: Desired: rendered-worker-823ff8dc2b33bf444709ed7cd2b9855b Status: # ... Message: Drained node. The drain is complete as the desired drainer matches current drainer: drain-rendered-worker-01f27f752eb84eba917450e43636b210 Reason: UpdateExecutedDrained Status: True Type: Drained Last Transition Time: 2025-01-14T15:45:55Z # ... Config Version: Current: rendered-master-8110974a5cea69dff5b263237b58abd8 Desired: rendered-worker-823ff8dc2b33bf444709ed7cd2b9855b Observed Generation: 6 # ...