Résolution des problèmes liés à l’API ClusterResourcePlacement dans Azure Kubernetes Fleet Manager
Ce guide de résolution des problèmes vous aide à résoudre les ClusterResourcePlacement
problèmes liés aux objets d’API lorsque vous utilisez Azure Kubernetes Fleet Manager. La résolution de ces erreurs sur le cluster hub nécessite une connaissance des objets suivants :
ClusterResourceSnapshot
ClusterSchedulingPolicySnapshot
ClusterResourceBinding
Work
Pour plus d’informations sur chaque objet, consultez la référence de l’API.
Progression complète du déploiement de ClusterResourcePlacement
La compréhension de la progression et de l’état de la ClusterResourcePlacement
ressource personnalisée est essentielle pour diagnostiquer et identifier les échecs. Vous pouvez afficher l’état de la ClusterResourcePlacement
ressource personnalisée à l’aide de la commande suivante :
kubectl describe clusterresourceplacement <name>
Pour plus d’informations, consultez l’API ClusterResourcePlacement pour propager des ressources aux clusters membres.
La progression complète est ClusterResourcePlacement
la suivante :
ClusterResourcePlacementScheduled : indique qu’une ressource a été planifiée pour le placement.
Si la valeur est false, consultez Comment résoudre les problèmes lorsque l’état de la condition ClusterResourcePlacementScheduled a la valeur false.
ClusterResourcePlacementRolloutStarted : indique que le processus de déploiement a commencé.
Si la valeur est false, consultez Comment résoudre les problèmes lorsque l’état de la condition ClusterResourcePlacementRolloutStarted a la valeur false.
ClusterResourcePlacementOverridden : indique que la ressource a été remplacée.
Si la valeur est false, consultez Comment résoudre les problèmes lorsque l’état de la condition ClusterResourcePlacementOverridden a la valeur false.
ClusterResourcePlacementWorkSynchronized : indique que les objets de travail ont été synchronisés.
Si la valeur est false, consultez Comment résoudre les problèmes lorsque l’état de la condition ClusterResourcePlacementWorkSynchronized a la valeur false.
ClusterResourcePlacementApplied : indique que la ressource a été appliquée.
Si la valeur est false, consultez Comment résoudre les problèmes lorsque l’état de la condition ClusterResourcePlacementApplied a la valeur false.
ClusterResourcePlacementAvailable : indique que la ressource est disponible.
Si la valeur est false, consultez Comment résoudre les problèmes lorsque l’état de la condition ClusterResourcePlacementAvailable a la valeur false.
Questions fréquentes (FAQ)
Comment puis-je déboguer si certains clusters ne sont pas sélectionnés comme prévu ?
Vérifiez l’état de la sélection des ClusterSchedulingPolicySnapshot
clusters et de la raison de leur sélection.
Comment puis-je déboguer si un cluster sélectionné n’a pas les ressources attendues ou si ClusterResourcePlacement ne récupère pas les dernières modifications ?
- Vérifiez si la condition dans l’état
ClusterResourcePlacementRolloutStarted
ClusterResourcePlacement
est définie sur true ou false.- Si la valeur est false, voir Comment déboguer l’état de la condition ClusterResourcePlacementScheduled défini sur false.
- Si la valeur est true, passez à l’étape 2.
- Vérifiez si la
ClusterResourcePlacementApplied
condition est définie sur inconnue, false ou true.- Si elle est inconnue, attendez que le processus se termine, car les ressources sont toujours appliquées au cluster membre. Si l’état reste inconnu pendant un certain temps, ouvrez un problème, car il s’agit d’un comportement inhabituel.
- Si la valeur est false, voir Comment déboguer l’état de la condition ClusterResourcePlacementApplied défini sur false.
- Si la valeur est true, vérifiez que la ressource existe sur le cluster hub.
- Vérifiez la section dans l’état
placementStatuses
ClusterResourcePlacement
du cluster particulier. LaFailedPlacements
section doit fournir des raisons pour toute défaillance d’application de ressource.
Comment puis-je rechercher et vérifier la dernière version de ClusterSchedulingPolicySnapshot pour un déploiement ClusterResourcePlacement ?
Pour trouver la dernière version ClusterSchedulingPolicySnapshot
du déploiement d’API ClusterResourcePlacement
, exécutez la commande suivante :
kubectl get clusterschedulingpolicysnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Note
Dans cette commande, remplacez {CRPName}
par votre ClusterResourcePlacement
nom.
Ensuite, comparez la ClusterSchedulingPolicySnapshot
ClusterResourcePlacement
stratégie pour vous assurer qu’elles correspondent, à l’exclusion du numberOfClusters
champ de la spécification « ClusterResourcePlacement ».
Si le type de placement est PickN
, vérifiez si le nombre de clusters demandés dans la ClusterResourcePlacement
stratégie correspond à la valeur de l’étiquette number-of-clusters
.
Comment trouver la dernière ressource ClusterResourceBinding ?
La commande suivante répertorie toutes les ClusterResourceBindings
instances associées à ClusterResourcePlacement
:
Kubectl get clusterresourcebinding -l kubernetes-fleet.io/parent-CRP={CRPName}
Note
Dans cette commande, remplacez {CRPName}
par votre ClusterResourcePlacement
nom.
Exemple
Exécutez la commande suivante pour afficher l’état du
ClusterResourcePlacement
déploiement. Dans ce cas, leClusterResourcePlacement
nom esttest-crp
.kubectl describe clusterresourceplacement test-crp
Voici un exemple de sortie. Dans la
placementStatuses
section de l’étattest-crp
, notez qu’il dispose de ressources distribuées à deux clusters membres et, par conséquent, a deuxClusterResourceBindings
instances :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
Pour obtenir la
ClusterResourceBindings
valeur, exécutez la commande suivante :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
La sortie répertorie toutes les
ClusterResourceBindings
instances associées àtest-crp
. LeClusterResourceBinding
nom de la ressource utilise le format suivant :{CRPName}-{clusterName}-{suffix}
Comment trouver la dernière ressource ClusterResourceSnapshot ?
Pour rechercher la dernière ressource ClusterResourceSnapshot, exécutez la commande suivante :
kubectl get clusterresourcesnapshot -l kubernetes-fleet.io/is-latest-snapshot=true,kubernetes-fleet.io/parent-CRP={CRPName}
Note
Dans cette commande, remplacez {CRPName}
par votre ClusterResourcePlacement
nom.
Comment trouver la ressource de travail appropriée associée à ClusterResourcePlacement ?
Pour rechercher la ressource de travail appropriée, procédez comme suit :
Identifiez l’espace de noms du cluster membre et le
ClusterResourcePlacement
nom. Le format de l’espace de noms estfleet-member-{clusterName}
.Pour obtenir la ressource de travail, exécutez la commande suivante :
kubectl get work -n fleet-member-{clusterName} -l kubernetes-fleet.io/parent-CRP={CRPName}
Note
Dans cette commande, remplacez et
{CRPName}
par{clusterName}
les noms que vous avez identifiés lors de la première étape.
Contactez-nous pour obtenir de l’aide
Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.