1.5. マシン設定プールのステータスの確認
Machine Config Operator (MCO)、そのサブコンポーネント、およびこれが管理するリソースのステータスを表示するには、以下の oc コマンドを使用します。
手順
各マシン設定プール (MCP) のクラスターで使用可能な MCO 管理ノードの数を確認するには、次のコマンドを実行します。
$ oc get machineconfigpool出力例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-06c9c4… True False False 3 3 3 0 4h42m worker rendered-worker-f4b64… False True False 3 2 2 0 4h42mここでは、以下のようになります。
- UPDATED
-
Trueステータスは、MCO が現在のマシン設定をその MCP のノードに適用したことを示します。現在のマシン設定は、oc get mcp出力のSTATUSフィールドに指定されています。Falseステータスは、MCP 内のノードが更新中であることを示します。 - UPDATING
-
Trueステータスは、MCO が、MachineConfigPoolカスタムリソースで指定された目的のマシン設定を、その MCP 内の少なくとも 1 つのノードに適用していることを示します。目的のマシン設定は、新しく編集されたマシン設定です。更新中のノードは、スケジューリングに使用できない場合があります。Falseステータスは、MCP 内のすべてのノードが更新されたことを示します。 - DEGRADED
-
Trueステータスは、MCO がその MCP 内の少なくとも 1 つのノードに現在のまたは目的のマシン設定を適用することをブロックされているか、設定が失敗していることを示します。degraded 状態のノードは、スケジューリングに使用できない場合があります。Falseステータスは、MCP 内のすべてのノードの準備ができていることを示します。 - MACHINECOUNT
- その MCP 内のマシンの総数を示します。
- READYMACHINECOUNT
-
現在のマシン設定を実行しており、スケジューリングの準備ができているマシンの数を示します。この数は常に
UPDATEDMACHINECOUNTの数以下になります。 - UPDATEDMACHINECOUNT
- 現在のマシン設定を持つ MCP 内のマシンの総数を示します。
- DEGRADEDMACHINECOUNT
- degraded または unreconcilable とマークされている、その MCP 内のマシンの総数を示します。
前の出力では、3 つのコントロールプレーン (マスター) ノードと 3 つのワーカーノードがあります。コントロールプレーン MCP と関連するノードは、現在のマシン設定に更新されます。ワーカー MCP のノードは、目的のマシン設定に更新されています。
UPDATEDMACHINECOUNTが2であることからわかるように、ワーカー MCP 内の 2 つのノードが更新され、1 つがまだ更新中です。DEGRADEDMACHINECOUNTが0で、DEGRADEDがFalseであることからわかるように、問題はありません。MCP のノードが更新されている間、
CONFIGの下にリストされているマシン設定は、MCP の更新元である現在のマシン設定です。更新が完了すると、リストされたマシン設定は、MCP が更新された目的のマシン設定になります。注記ノードがスケジューリング対象から外されている場合、そのノードは
READYMACHINECOUNTには含まれませんが、MACHINECOUNTには含まれます。また、MCP ステータスはUPDATINGに設定されます。ノードには現在のマシン設定があるため、UPDATEDMACHINECOUNTの合計にカウントされます。出力例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-06c9c4… True False False 3 3 3 0 4h42m worker rendered-worker-c1b41a… False True False 3 2 3 0 4h42mMachineConfigPoolカスタムリソースを調べて MCP 内のノードのステータスを確認するには、次のコマンドを実行します。$ oc describe mcp worker出力例
... Degraded Machine Count: 0 Machine Count: 3 Observed Generation: 2 Ready Machine Count: 3 Unavailable Machine Count: 0 Updated Machine Count: 3 Events: <none>注記ノードがスケジューリング対象から外されている場合、そのノードは
Ready Machine Countに含まれません。Unavailable Machine Countに含まれます。出力例
... Degraded Machine Count: 0 Machine Count: 3 Observed Generation: 2 Ready Machine Count: 2 Unavailable Machine Count: 1 Updated Machine Count: 3既存の各
MachineConfigオブジェクトを表示するには、次のコマンドを実行します。$ oc get machineconfigs出力例
NAME GENERATEDBYCONTROLLER IGNITIONVERSION AGE 00-master 2c9371fbb673b97a6fe8b1c52... 3.4.0 5h18m 00-worker 2c9371fbb673b97a6fe8b1c52... 3.4.0 5h18m 01-master-container-runtime 2c9371fbb673b97a6fe8b1c52... 3.4.0 5h18m 01-master-kubelet 2c9371fbb673b97a6fe8b1c52… 3.4.0 5h18m ... rendered-master-dde... 2c9371fbb673b97a6fe8b1c52... 3.4.0 5h18m rendered-worker-fde... 2c9371fbb673b97a6fe8b1c52... 3.4.0 5h18mrenderedとして一覧表示されたMachineConfigオブジェクトが変更されたり、削除されたりすることが意図されていないことに注意してください。特定のマシン設定 (この場合は
01-master-kubelet) の内容を表示するには、次のコマンドを実行します。$ oc describe machineconfigs 01-master-kubeletコマンドの出力は、この
MachineConfigオブジェクトに設定ファイル (cloud.confおよびkubelet.conf) と systemd サービス (Kubernetes Kubelet) の両方が含まれていることを示しています。出力例
Name: 01-master-kubelet ... Spec: Config: Ignition: Version: 3.4.0 Storage: Files: Contents: Source: data:, Mode: 420 Overwrite: true Path: /etc/kubernetes/cloud.conf Contents: Source: data:,kind%3A%20KubeletConfiguration%0AapiVersion%3A%20kubelet.config.k8s.io%2Fv1beta1%0Aauthentication%3A%0A%20%20x509%3A%0A%20%20%20%20clientCAFile%3A%20%2Fetc%2Fkubernetes%2Fkubelet-ca.crt%0A%20%20anonymous... Mode: 420 Overwrite: true Path: /etc/kubernetes/kubelet.conf Systemd: Units: Contents: [Unit] Description=Kubernetes Kubelet Wants=rpc-statd.service network-online.target crio.service After=network-online.target crio.service ExecStart=/usr/bin/hyperkube \ kubelet \ --config=/etc/kubernetes/kubelet.conf \ ...
適用するマシン設定で問題が発生した場合は、この変更を常に取り消すことができます。たとえば、oc create -f ./myconfig.yaml を実行してマシン設定を適用した場合、次のコマンドを実行してそのマシン設定を削除できます。
$ oc delete -f ./myconfig.yaml
これが唯一の問題である場合、影響を受けるプールのノードは degraded 以外の状態に戻るはずです。これにより、レンダリングされた設定は、直前のレンダリングされた状態にロールバックされます。
独自のマシン設定をクラスターに追加する場合、直前の例に示されたコマンドを使用して、それらのステータスと、それらが適用されるプールの関連するステータスを確認できます。