Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird erläutert, wie Sie Probleme beheben können, wenn Sie Ressourcen mithilfe der ClusterResourcePlacementAvailable
Objekt-API im Microsoft Azure Kubernetes Fleet Manager verbreiten.
Symptome
Wenn Sie das ClusterResourcePlacement
API-Objekt in Azure Kubernetes Fleet Manager zum Verteilen von Ressourcen verwenden, schlägt die Bereitstellung fehl. Der Status von ClusterResourcePlacementAvailable
wird als False
angezeigt.
Ursache
Dieses Problem kann aus einem der folgenden Gründe auftreten:
- Der Membercluster verfügt nicht über genügend verfügbare Ressourcen.
- Die Bereitstellung enthält einen ungültigen Bildnamen.
Fallstudie
Das folgende Beispiel zeigt, dass ClusterResourcePlacement
aufgrund eines ungültigen Bildnamens eine Bereitstellung nicht an einen Mitgliedercluster propagiert.
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
Im failedPlacements
-Abschnitt für kind-cluster-1
wird im message
-Feld erläutert, warum die Ressource nicht im Membercluster angewendet wurde. Im vorstehenden conditions
Abschnitt wird die Applied
Bedingung für kind-cluster-1
als false
gekennzeichnet und zeigt den Grund NotAllWorkHaveBeenApplied
. 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 kind-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 für kind-cluster-1
. Sie können sehen, dass die my-deployment
Bereitstellung noch nicht in dem Mitglied-Cluster verfügbar ist. Dies deutet darauf hin, dass sich ein Problem auf das Bereitstellungsmanifest auswirken könnte.
Beschluss
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 benötigen, erstellen Sie eine Support-Anfrage oder wenden Sie sich an den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.