Fehler bei der Ressourcenverteilung: "ClusterResourcePlacementAvailable" ist "False".
In diesem Artikel wird erläutert, wie Sie Probleme beheben ClusterResourcePlacementAvailable
können, wenn Sie Ressourcen mithilfe der ClusterResourcePlacement
Objekt-API in Microsoft Azure Kubernetes Fleet Manager verteilen.
Symptome
Wenn Sie das ClusterResourcePlacement
API-Objekt in Azure Kubernetes Fleet Manager zum Verteilen von Ressourcen verwenden, schlägt die Bereitstellung fehl. Der ClusterResourcePlacementAvailable
Status wird als False
.
Ursache
Dieses Problem kann aus einem der folgenden Gründe auftreten:
- Der Membercluster verfügt nicht über genügend Ressourcenverfügbarkeit.
- Die Bereitstellung enthält einen ungültigen Bildnamen.
Fallstudie
Das folgende Beispiel zeigt, dass ClusterResourcePlacement
eine Bereitstellung aufgrund eines ungültigen Bildnamens nicht an einen Membercluster weitergegeben wird.
ClusterResourcePlacement-Spezifikationen
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
ClusterResourcePlacement-Status
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
failedPlacements
Im Abschnitt für kind-cluster-1
dieses Feld wird erläutert, message
warum die Ressource nicht auf den Membercluster angewendet wurde. Im vorstehenden conditions
Abschnitt wird die Applied
Bedingung für kind-cluster-1
diese gekennzeichnet false
und zeigt den NotAllWorkHaveBeenApplied
Grund an. Dies gibt an, dass das Work
Objekt, das für den Membercluster kind-cluster-1
vorgesehen ist, nicht angewendet wurde. Weitere Informationen finden Sie unter How to find the correct Work resource associated with ClusterResourcePlacement
.
Arbeitsstatus von Art-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
Überprüfen Sie den Available
Status auf kind-cluster-1
. Sie können sehen, dass die my-deployment
Bereitstellung noch nicht im Membercluster verfügbar ist. Dies deutet darauf hin, dass sich ein Problem auf das Bereitstellungsmanifest auswirken könnte.
Lösung
In diesem Fall besteht eine potenzielle Lösung darin, die Bereitstellung im Membercluster zu überprüfen, da die Meldung angibt, dass die Ursache des Problems ein ungültiger Imagename ist. Nachdem dieser Bildname identifiziert wurde, können Sie das Bereitstellungsmanifest korrigieren und aktualisieren. Nachdem Sie das Ressourcenmanifest behoben und aktualisiert haben, verteilt die ClusterResourcePlacement
Objekt-API automatisch die korrigierte Ressource an den Membercluster.
Stellen Sie für alle anderen Situationen sicher, dass die verteilte Ressource ordnungsgemäß konfiguriert ist. Stellen Sie außerdem sicher, dass der ausgewählte Cluster über ausreichende Kapazität verfügt, um die neuen Ressourcen aufzunehmen.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.