Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 KubeFleet.
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 de ClusterResourcePlacement
est la suivante :
ClusterResourcePlacementScheduled : indique qu’une ressource a été planifiée pour le placement.
ClusterResourcePlacementRolloutStarted : indique que le processus de déploiement a commencé.
ClusterResourcePlacementOverridden : indique que la ressource a été remplacée.
ClusterResourcePlacementWorkSynchronized : indique que les objets de travail ont été synchronisés.
ClusterResourcePlacementApplied : indique que la ressource a été appliquée.
ClusterResourcePlacementAvailable : indique que la ressource est disponible.
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 ClusterSchedulingPolicySnapshot
pour déterminer quels clusters ont été sélectionnés et 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
placementStatuses
dans l’étatClusterResourcePlacement
pour le cluster spécifique. 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}
Remarque
Dans cette commande, remplacez {CRPName}
par votre ClusterResourcePlacement
nom.
Ensuite, comparez le ClusterSchedulingPolicySnapshot
avec la politique ClusterResourcePlacement
pour s'assurer qu'elles correspondent, en excluant le champ numberOfClusters
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}
Remarque
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 section
placementStatuses
de l'étattest-crp
, observez qu'il a distribué des ressources à deux clusters de membres et, par conséquent, il dispose de deux instancesClusterResourceBindings
.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}
Remarque
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 nom
ClusterResourcePlacement
. 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}
Remarque
Dans cette commande, remplacez
{clusterName}
et{CRPName}
par les noms que vous avez identifiés lors de la première étape.
Contactez-nous pour obtenir de l’aide
Si vous avez des questions ou avez besoin d’aide, créez une demande de support ou demandez le support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.