Échec de propagation des ressources : ClusterResourcePlacementAvailable a la valeur False
Cet article explique comment résoudre les ClusterResourcePlacementAvailable
problèmes liés à la propagation des ressources à l’aide de l’API ClusterResourcePlacement
objet dans Microsoft Azure Kubernetes Fleet Manager.
Symptômes
Lorsque vous utilisez l’objet ClusterResourcePlacement
API dans Azure Kubernetes Fleet Manager pour propager des ressources, le déploiement échoue. L’état ClusterResourcePlacementAvailable
s’affiche sous la forme False
.
Cause
Ce problème peut se produire en raison de l’une des raisons suivantes :
- Le cluster membre n’a pas suffisamment de disponibilité des ressources.
- Le déploiement contient un nom d’image non valide.
Étude de cas
L’exemple suivant montre que ClusterResourcePlacement
le déploiement n’est pas propagé à un cluster membre en raison d’un nom d’image non valide.
Spécifications clusterResourcePlacement
apiVersion: placement.kubernetes-fleet.io/v1beta1
kind: ClusterResourcePlacement
metadata:
name: crp
spec:
resourceSelectors:
- group: ""
kind: Namespace
name: test-ns
version: v1
policy:
placementType: PickN
numberOfClusters: 1
strategy:
type: RollingUpdate
État de ClusterResourcePlacement
status:
conditions:
- lastTransitionTime: "2024-05-14T18:52:30Z"
message: found all cluster needed as specified by the scheduling policy, found
1 cluster(s)
observedGeneration: 1
reason: SchedulingPolicyFulfilled
status: "True"
type: ClusterResourcePlacementScheduled
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: All 1 cluster(s) start rolling out the latest resource
observedGeneration: 1
reason: RolloutStarted
status: "True"
type: ClusterResourcePlacementRolloutStarted
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: No override rules are configured for the selected resources
observedGeneration: 1
reason: NoOverrideSpecified
status: "True"
type: ClusterResourcePlacementOverridden
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: Works(s) are succcesfully created or updated in 1 target cluster(s)'
namespaces
observedGeneration: 1
reason: WorkSynchronized
status: "True"
type: ClusterResourcePlacementWorkSynchronized
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: The selected resources are successfully applied to 1 cluster(s)
observedGeneration: 1
reason: ApplySucceeded
status: "True"
type: ClusterResourcePlacementApplied
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: The selected resources in 1 cluster(s) are still not available yet
observedGeneration: 1
reason: ResourceNotAvailableYet
status: "False"
type: ClusterResourcePlacementAvailable
observedResourceIndex: "0"
placementStatuses:
- clusterName: kind-cluster-1
conditions:
- lastTransitionTime: "2024-05-14T18:52:30Z"
message: 'Successfully scheduled resources for placement in kind-cluster-1 (affinity
score: 0, topology spread score: 0): picked by scheduling policy'
observedGeneration: 1
reason: Scheduled
status: "True"
type: Scheduled
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: Detected the new changes on the resources and started the rollout process
observedGeneration: 1
reason: RolloutStarted
status: "True"
type: RolloutStarted
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: No override rules are configured for the selected resources
observedGeneration: 1
reason: NoOverrideSpecified
status: "True"
type: Overridden
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: All of the works are synchronized to the latest
observedGeneration: 1
reason: AllWorkSynced
status: "True"
type: WorkSynchronized
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: All corresponding work objects are applied
observedGeneration: 1
reason: AllWorkHaveBeenApplied
status: "True"
type: Applied
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: Work object crp1-work isn't available
observedGeneration: 1
reason: NotAllWorkAreAvailable
status: "False"
type: Available
failedPlacements:
- condition:
lastTransitionTime: "2024-05-14T18:52:31Z"
message: Manifest is trackable but not available yet
observedGeneration: 1
reason: ManifestNotAvailableYet
status: "False"
type: Available
group: apps
kind: Deployment
name: my-deployment
namespace: test-ns
version: v1
selectedResources:
- kind: Namespace
name: test-ns
version: v1
- group: apps
kind: Deployment
name: my-deployment
namespace: test-ns
version: v1
Dans la failedPlacements
section pour kind-cluster-1
, le message
champ explique pourquoi la ressource n’a pas été appliquée sur le cluster membre. Dans la section précédenteconditions
, la condition pour kind-cluster-1
laquelle l’indicateur Applied
est signalé false
et indique la NotAllWorkHaveBeenApplied
raison. Cela indique que l’objet Work
destiné au cluster kind-cluster-1
membre n’a pas été appliqué. Pour plus d’informations, consultez Comment trouver la ressource de travail appropriée associée ClusterResourcePlacement
à .
État du travail de type-cluster-1
status:
conditions:
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: Work is applied successfully
observedGeneration: 1
reason: WorkAppliedCompleted
status: "True"
type: Applied
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: Manifest {Ordinal:1 Group:apps Version:v1 Kind:Deployment Resource:deployments
Namespace:test-ns Name:my-deployment} is not available yet
observedGeneration: 1
reason: WorkNotAvailableYet
status: "False"
type: Available
manifestConditions:
- conditions:
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: Manifest is already up to date
reason: ManifestAlreadyUpToDate
status: "True"
type: Applied
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: Manifest is trackable and available now
reason: ManifestAvailable
status: "True"
type: Available
identifier:
kind: Namespace
name: test-ns
ordinal: 0
resource: namespaces
version: v1
- conditions:
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: Manifest is already up to date
observedGeneration: 1
reason: ManifestAlreadyUpToDate
status: "True"
type: Applied
- lastTransitionTime: "2024-05-14T18:52:31Z"
message: Manifest is trackable but not available yet
observedGeneration: 1
reason: ManifestNotAvailableYet
status: "False"
type: Available
identifier:
group: apps
kind: Deployment
name: my-deployment
namespace: test-ns
ordinal: 1
resource: deployments
version: v1
Vérifiez l’état Available
pour kind-cluster-1
. Vous pouvez voir que le my-deployment
déploiement n’est pas encore disponible sur le cluster membre. Cela suggère qu’un problème peut affecter le manifeste de déploiement.
Résolution
Dans ce cas, une solution potentielle consiste à vérifier le déploiement dans le cluster membre, car le message indique que la cause racine du problème est un nom d’image incorrect. Une fois que ce nom d’image est identifié, vous pouvez corriger le manifeste de déploiement et le mettre à jour. Après avoir corrigé et mis à jour le manifeste de ressource, l’API ClusterResourcePlacement
objet propage automatiquement la ressource corrigée vers le cluster membre.
Pour toutes les autres situations, vérifiez que la ressource propagée est configurée correctement. En outre, vérifiez que le cluster sélectionné dispose d’une capacité suffisante pour prendre en charge les nouvelles ressources.
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.