このトラブルシューティング ガイドは、Azure Kubernetes Fleet Manager を使用 ClusterResourcePlacement
API オブジェクト関連の問題を解決するのに役立ちます。 ハブ クラスターでこれらのエラーをトラブルシューティングするには、次のオブジェクトに関する知識が必要です。
ClusterResourceSnapshot
ClusterSchedulingPolicySnapshot
ClusterResourceBinding
Work
各オブジェクトの詳細については、 KubeFleet API リファレンスを参照してください。
ClusterResourcePlacement デプロイメントの完了状況の進行
ClusterResourcePlacement
カスタム リソースの進行状況と状態を理解することは、障害の診断と識別に不可欠です。 次のコマンドを使用して、 ClusterResourcePlacement
カスタム リソースの状態を表示できます。
kubectl describe clusterresourceplacement <name>
詳細については、「 ClusterResourcePlacement API を使用してリソースをメンバー クラスターに伝達する」を参照してください。
ClusterResourcePlacement
の完全な進行は次のとおりです。
ClusterResourcePlacementScheduled: リソースが配置用にスケジュールされていることを示します。
false の場合は、「 ClusterResourcePlacementScheduled 条件の状態が false の場合のトラブルシューティング方法」を参照してください。
ClusterResourcePlacementRolloutStarted: ロールアウト プロセスが開始されたことを示します。
false の場合は、「 ClusterResourcePlacementRolloutStarted 条件の状態が false の場合のトラブルシューティング方法」を参照してください。
ClusterResourcePlacementOverridden: リソースがオーバーライドされたことを示します。
false の場合は、「 ClusterResourcePlacementOverridden 条件の状態が false の場合のトラブルシューティング方法」を参照してください。
ClusterResourcePlacementWorkSynchronized: 作業オブジェクトが同期されたことを示します。
false の場合は、「 ClusterResourcePlacementWorkSynchronized 条件の状態が false の場合のトラブルシューティング方法」を参照してください。
ClusterResourcePlacementApplied: リソースが適用されたことを示します。
false の場合は、「 ClusterResourcePlacementApplied 条件の状態が false の場合のトラブルシューティング方法」を参照してください。
ClusterResourcePlacementAvailable: リソースが使用可能であることを示します。
false の場合は、「 ClusterResourcePlacementAvailable 条件の状態が false の場合のトラブルシューティング方法」を参照してください。
よくあるご質問
一部のクラスターが期待どおりに選択されていない場合にデバッグするにはどうすればよいですか?
ClusterSchedulingPolicySnapshot
の状態を確認して、選択されたクラスターとその選択理由を確認します。
選択したクラスターに予想されるリソースがない場合、または ClusterResourcePlacement が最新の変更を取得しない場合、デバッグするにはどうすればよいですか?
-
ClusterResourcePlacement
状態のClusterResourcePlacementRolloutStarted
条件が true または false に設定されているかどうかを確認します。- false の場合は、「ClusterResourcePlacementScheduled 条件の状態を false に設定してデバッグする方法」を参照してください。
- true の場合は、手順 2 に進みます。
-
ClusterResourcePlacementApplied
条件が unknown、false、または true に設定されているかどうかを確認します。- 不明な場合は、リソースがまだメンバー クラスターに適用されているため、プロセスが完了するまで待ちます。 状態がしばらく 不明 なままの場合は、通常とは異なる動作であるため 、問題 を開きます。
- false の場合は、「ClusterResourcePlacementApplied 条件の状態を false に設定してデバッグする方法」を参照してください。
- true の場合は、リソースがハブ クラスターに存在することを確認します。
- 特定のクラスターの状態における
ClusterResourcePlacement
のplacementStatuses
セクションを確認します。FailedPlacements
セクションでは、リソース アプリケーションのエラーの理由を示す必要があります。
ClusterResourcePlacement デプロイの最新の ClusterSchedulingPolicySnapshot を見つけて確認するにはどうすればよいですか?
ClusterResourcePlacement
API デプロイの最新のClusterSchedulingPolicySnapshot
を見つけるには、次のコマンドを実行します。
kubectl get clusterschedulingpolicysnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
注
このコマンドでは、 {CRPName}
を実際の ClusterResourcePlacement
名に置き換えます。
次に、 ClusterSchedulingPolicySnapshot
を ClusterResourcePlacement
ポリシーと比較して、'ClusterResourcePlacement' 仕様の numberOfClusters
フィールドを除外して、それらが一致することを確認します。
配置の種類が PickN
されている場合は、 ClusterResourcePlacement
ポリシーで要求されたクラスターの数が、 number-of-clusters
ラベルの値と一致するかどうかを確認します。
最新の ClusterResourceBinding リソースを見つけるにはどうすればよいですか?
次のコマンドは、ClusterResourcePlacement
に関連付けられているすべてのClusterResourceBindings
インスタンスを一覧表示します。
Kubectl get clusterresourcebinding -l kubernetes-fleet.io/parent-CRP={CRPName}
注
このコマンドでは、 {CRPName}
を実際の ClusterResourcePlacement
名に置き換えます。
例
次のコマンドを実行して、
ClusterResourcePlacement
デプロイの状態を表示します。 この場合、ClusterResourcePlacement
名はtest-crp
。kubectl describe clusterresourceplacement test-crp
出力例を次に示します。
test-crp
状態のplacementStatuses
セクションから、リソースが 2 つのメンバー クラスターに分散されているため、2 つのClusterResourceBindings
インスタンスがあることに注意してください。status: conditions: - lastTransitionTime: "2023-11-23T00:49:29Z" ... placementStatuses: - clusterName: kind-cluster-1 conditions: ... type: ResourceApplied - clusterName: kind-cluster-2 conditions: ... reason: ApplySucceeded status: "True" type: ResourceApplied
ClusterResourceBindings
値を取得するには、次のコマンドを実行します。kubectl get clusterresourcebinding -l kubernetes-fleet.io/parent-CRP=test-crp
NAME WORKCREATED RESOURCESAPPLIED AGE test-crp-kind-cluster-1-be990c3e True True 33s test-crp-kind-cluster-2-ec4d953c True True 33s
出力には、
test-crp
に関連付けられているすべてのClusterResourceBindings
インスタンスが一覧表示されます。ClusterResourceBinding
リソース名は、次の形式を使用します。{CRPName}-{clusterName}-{suffix}
最新の ClusterResourceSnapshot リソースを見つけるにはどうすればよいですか?
最新の ClusterResourceSnapshot リソースを見つけるには、次のコマンドを実行します。
kubectl get clusterresourcesnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
注
このコマンドでは、 {CRPName}
を実際の ClusterResourcePlacement
名に置き換えます。
ClusterResourcePlacement に関連付けられている正しい作業リソースを見つけるにはどうすればよいですか?
正しい作業リソースを見つけるには、次の手順に従います。
メンバー クラスターの名前空間と
ClusterResourcePlacement
名を識別します。 名前空間の形式はfleet-member-{clusterName}
。作業リソースを取得するには、次のコマンドを実行します。
kubectl get work -n fleet-member-{clusterName} -l kubernetes-fleet.io/parent-CRP={CRPName}
注
このコマンドでは、
{clusterName}
と{CRPName}
を、最初の手順で識別した名前に置き換えます。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、 サポートリクエストを作成するか、 Azure コミュニティ サポートに問い合わせてください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。