12.6. コントロールプレーンマシンセットのトラブルシューティング
このセクションの情報を使用して、発生する可能性のある問題を理解し、回復してください。
12.6.1. コントロールプレーンマシンセットのカスタムリソースの状態を確認する
ControlPlaneMachineSet
カスタムリソース (CR) の存在と状態を確認できます。
手順
次のコマンドを実行して、CR の状態を確認します。
$ oc get controlplanemachineset.machine.openshift.io cluster \ --namespace openshift-machine-api
-
Active
の結果は、ControlPlaneMachineSet
CR が存在し、アクティブ化されていることを示します。管理者の操作は必要ありません。 -
Inactive
の結果は、ControlPlaneMachineSet
CR が存在するがアクティブ化されていないことを示します。 -
NotFound
の結果は、既存のControlPlaneMachineSet
CR がないことを示します。
-
次のステップ
コントロールプレーンマシンセットを使用するには、クラスターの正しい設定を持つ ControlPlaneMachineSet
CR が存在することを確認する必要があります。
- クラスターに既存の CR がある場合は、CR の設定がクラスターに対して正しいことを確認する必要があります。
- クラスターに既存の CR がない場合は、クラスターの正しい設定で CR を作成する必要があります。
12.6.2. 不足している Azure 内部ロードバランサーの追加
Azure の ControlPlaneMachineSet
とコントロールプレーン Machine
のカスタムリソース (CR) の両方で internalLoadBalancer
パラメーターが必要です。このパラメーターがクラスターで事前設定されていない場合は、両方の CR に追加する必要があります。
このパラメーターが Azure プロバイダー仕様のどこにあるかの詳細は、サンプルの Azure プロバイダー仕様を参照してください。コントロールプレーン Machine
CR での配置も同様です。
手順
次のコマンドを実行して、クラスター内のコントロールプレーンマシンを一覧表示します。
$ oc get machines \ -l machine.openshift.io/cluster-api-machine-role==master \ -n openshift-machine-api
コントロールプレーンマシンごとに、次のコマンドを実行して CR を編集します。
$ oc edit machine <control_plane_machine_name>
-
クラスターの正しい詳細を含む
internalLoadBalancer
パラメーターを追加し、変更を保存します。 次のコマンドを実行して、コントロールプレーンマシンセットの CR を編集します。
$ oc edit controlplanemachineset.machine.openshift.io cluster \ -n openshift-machine-api
-
クラスターの正しい詳細を含む
internalLoadBalancer
パラメーターを追加し、変更を保存します。
次のステップ
-
デフォルトの
RollingUpdate
更新戦略を使用するクラスターの場合、Operator は自動的に変更をコントロールプレーン設定に伝達します。 -
OnDelete
更新戦略を使用するように設定されているクラスターの場合、コントロールプレーンマシンを手動で置き換える必要があります。
関連情報
12.6.3. 劣化した etcd Operator のリカバリー
特定の状況では、etcd Operator が劣化する可能性があります。
たとえば、修復の実行中に、マシンのヘルスチェックによって、etcd をホストしているコントロールプレーンマシンが削除される場合があります。その時点で etcd メンバーにアクセスできない場合、etcd Operator は劣化します。
etcd Operator が劣化している場合、Operator に障害のあるメンバーを強制的に削除させ、クラスターの状態を復元させるには、手動の介入が必要です。
手順
次のコマンドを実行して、クラスター内のコントロールプレーンマシンを一覧表示します。
$ oc get machines \ -l machine.openshift.io/cluster-api-machine-role==master \ -n openshift-machine-api \ -o wide
次のいずれかの状態は、コントロールプレーンマシンの障害を示している可能性があります。
-
STATE
値はstopped
です。 -
PHASE
値はFailed
です。 -
PHASE
値が 10 分以上Deleting
です。
重要続行する前に、クラスターに 2 つの正常なコントロールプレーンマシンがあることを確認します。この手順のアクションを複数のコントロールプレーンマシンで実行すると、etcd クォーラムが失われるリスクがあり、データが失われる可能性があります。
大多数のコントロールプレーンホストが失われ、etcd のクォーラム (定足数) の損失が発生した場合は、この手順ではなく、「直前のクラスター状態への復元に向けた障害復旧」手順を実行する必要があります。
-
次のコマンドを実行して、障害が発生したコントロールプレーンマシンのマシン CR を編集します。
$ oc edit machine <control_plane_machine_name>
障害が発生したコントロールプレーンマシンから
lifecycleHooks
パラメーターの内容を削除し、変更を保存します。etcd Operator は、障害が発生したマシンをクラスターから削除し、新しい etcd メンバーを安全に追加できるようにします。
関連情報