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.
Gilt für: ✔️ Flottenmanager mit Hubcluster
Wenn Sie mit Azure Kubernetes Fleet Manager arbeiten, ist das Verständnis des Status Ihrer ClusterResourcePlacement Ressourcen für die Überwachung des Bereitstellungsfortschritts und die Problembehandlung von entscheidender Bedeutung.
Wenn Sie mit Azure Kubernetes Fleet Manager arbeiten, ist das Verständnis des Status Ihrer ResourcePlacement Ressourcen für die Überwachung des Bereitstellungsfortschritts und die Problembehandlung von entscheidender Bedeutung.
Voraussetzungen
- Sie verfügen über einen Flottenmanager mit einem Hubcluster und einem oder mehreren Mitgliedsclustern. Wenn Sie keine haben, lesen Sie Erstellen Sie eine Azure Kubernetes-Flottenmanager-Ressource und treten Sie Mitglieds-Clustern bei.
- Sie haben Zugriff auf den Fleet Manager Hub Cluster. Weitere Informationen finden Sie unter Access the Kubernetes API for an Azure Kubernetes Fleet Manager hub cluster.
- Sie haben mindestens einen
ClusterResourcePlacementbereitgestellt, um Ihre Ressourcen zu verteilen. Falls nicht, lesen Sie Cluster-Ressourcenplatzierung verwenden, um Workloads über mehrere Cluster hinweg bereitzustellen.
- Sie haben mindestens ein ResourcePlacement-API-Objekt bereitgestellt, um Ihre Ressourcen in der Flotte zu platzieren. Falls nicht, lesen Sie Cluster-Ressourcenplatzierung verwenden, um Workloads über mehrere Cluster hinweg bereitzustellen.
Übersicht über die Struktur des Platzierungsstatus
Das ClusterResourcePlacement Objekt enthält nicht nur die beschreibende Spezifikation über die Platzierung, sondern auch den Status des Platzierungsvorgangs.
Das ResourcePlacement Objekt enthält nicht nur die beschreibende Spezifikation über die Platzierung, sondern auch den Status des Platzierungsvorgangs.
Der Statusabschnitt enthält ausführliche Informationen zu:
- Gesamtplatzierungsstatus, ausgedrückt durch Bedingungen
- Durch die Platzierung ausgewählte Ressourcen
- Status der Platzierung pro Cluster, ausgedrückt durch Bedingungen
-
Failed,driftedunddiffedPlatzierungen in jedem Cluster
Verwenden Sie den folgenden Befehl, um den Status einer Platzierung anzuzeigen:
kubectl describe clusterresourceplacement <placement-name>
kubectl describe resourceplacement <placement-name> -n <namespace-name>
Verwenden Sie den folgenden Befehl, um die unformatierte YAML-Ausgabe abzurufen:
kubectl get clusterresourceplacement <placement-name> -o yaml
kubectl get resourceplacement <placement-name> -n <namespace-name> -o yaml
Statusfelder der obersten Ebene
Der Statusabschnitt enthält die folgenden Felder auf oberster Ebene:
- selectedResources: Liste der ressourcen, die durch die Platzierung ausgewählt wurden
- Bedingungen: Array von Allgemeinen Platzierungsbedingungen
- observedResourceIndex: Index der aktuellen Momentaufnahme der Ressource
- placementStatuses: Informationen zum Platzierungsstatus pro Cluster
In den folgenden Abschnitten werden die einzelnen Felder ausführlich untersucht.
Ausgewählte Ressourcen
Das selectedResources-Feld listet alle Ressourcen auf, die vom Placement ausgewählt werden. Verwenden Sie dieses Feld, um zu überprüfen, ob die erwarteten Ressourcen in der Platzierung enthalten sind. Ein Beispiel:
selectedResources:
- kind: Namespace
name: test
version: v1
- kind: ConfigMap
name: test-config
namespace: test
version: v1
envelope:
name: example-envelope
namespace: test
type: ResourceEnvelope
- kind: Deployment
name: web-app
namespace: test
group: apps
version: v1
- kind: Service
name: web-service
namespace: test
version: v1
- kind: Secret
name: app-secrets
namespace: test
version: v1
selectedResources:
- kind: ConfigMap
name: test-config
version: v1
envelope:
name: example-envelope
namespace: test
type: ResourceEnvelope
- kind: Deployment
name: web-app
group: apps
version: v1
- kind: Service
name: web-service
version: v1
- kind: Secret
name: app-secrets
version: v1
Jeder Ressourceneintrag umfasst:
- group: API-Gruppe (leer für Kernressourcen)
-
Version: API-Version (z. B
v1. ,v1beta1) - Art: Ressourcentyp
- name: Ressourcenname
- namespace: Namespace (für Ressourcen mit Namespace)
- Envelope: Wenn eine Ressource in einen Umschlag eingeschlossen ist, werden auch die Umschlagmetadaten bereitgestellt, die Folgendes umfassen:
- Name: Name des Umschlags
- Namespace: Namespace des Umschlags
-
Typ: Typ des Umschlags (z. B
ResourceEnvelope. )
Platzierungsbedingungen
Das conditions Array stellt übergeordnete Statusinformationen über die gesamte Platzierung bereit. Jede Bedingung folgt der allgemeinen Kubernetes-Definition, die die folgenden Standardfelder enthält:
- type: Der Bedingungstyp (in den folgenden Abschnitten beschrieben).
-
status:
True, ,False, oderUnknown. - Grund: Kurzer Grundcode für die Bedingung.
- Nachricht: Für Menschen lesbare Beschreibung.
- lastTransitionTime: Wann die Bedingung zuletzt geändert wurde.
- observedGeneration: Generation der Platzierung zum Zeitpunkt der Festlegung der Bedingung.
ClusterResourcePlacement-Bedingungstypen
Die folgenden Bedingungstypen sind für ClusterResourcePlacement verfügbar:
Geplante Cluster-Ressourcenplatzierung
ResourcePlacement-Bedingungstypen
Die folgenden Bedingungstypen sind für ResourcePlacement verfügbar:
Ressourcenzuordnung geplant
Zeigt an, ob die Platzierung erfolgreich auf den Zielclustern geplant wurde.
- True: Alle erforderlichen Cluster werden gemäß der Platzierungsrichtlinie ausgewählt.
- False: Fehler bei der Planung (z. B. unzureichende Cluster verfügbar).
- Unbekannt: Die Planungsentscheidung steht aus.
conditions:
- type: ClusterResourcePlacementScheduled
status: "True"
reason: SchedulingPolicyFulfilled
message: "found all the clusters needed as specified by the scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementScheduled
status: "True"
reason: SchedulingPolicyFulfilled
message: "found all the clusters needed as specified by the scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
ClusterressourcenplatzierungseinführungGestartet
Ressourcenplatzierungs-Rollout gestartet
Gibt an, ob das Rollout über die ausgewählten Cluster hinweg gestartet wird.
- True: Die Bereitstellung der Ressourcen für geplante Cluster hat begonnen.
- False: Das Rollout wurde noch nicht gestartet.
- Unbekannt: Die Rolloutentscheidung steht aus.
conditions:
- type: ClusterResourcePlacementRolloutStarted
status: "True"
reason: RolloutStarted
message: "All 3 cluster(s) start rolling out the latest resource"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementRolloutStarted
status: "True"
reason: RolloutStarted
message: "All 3 cluster(s) start rolling out the latest resource"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
ClusterResourcePlacementOverridden
ResourcePlacementOverridden
Gibt an, ob Ressourcenüberschreibungen erfolgreich angewendet werden.
- True: Alle anwendbaren Überschreibungen wurden verarbeitet.
- False: Einige Überschreibungen konnten nicht angewendet werden.
- Unbekannt: Die Überschreibungsverarbeitung steht noch aus.
conditions:
- type: ClusterResourcePlacementOverridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementOverridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
ClusterResourcePlacementWorkSynchronized
ResourcePlacementWorkSynchronized
Gibt an, ob der Prozess Arbeitsobjekte in den clusterbezogenen Namespaces des Hub-Clusters erstellt.
- True: Alle Arbeitsobjekte werden synchronisiert.
- False: Die Arbeitssynchronisierung schlägt fehl oder ist unvollständig.
- Unbekannt: Die Arbeitssynchronisierung steht aus.
conditions:
- type: ClusterResourcePlacementWorkSynchronized
status: "True"
reason: SynchronizeSucceeded
message: "All 2 cluster(s) are synchronized to the latest resources on the hub cluster"
lastTransitionTime: "2023-11-10T08:23:43Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementWorkSynchronized
status: "True"
reason: SynchronizeSucceeded
message: "All 2 cluster(s) are synchronized to the latest resources on the hub cluster"
lastTransitionTime: "2023-11-10T08:23:43Z"
observedGeneration: 5
ClusterResourcePlacementApplied
RessourcenplatzierungAngewendet
Gibt an, ob alle Ressourcen erfolgreich auf Member-Cluster angewendet werden.
- True: Alle Ressourcen wurden erfolgreich auf alle Zielcluster angewendet.
-
False: Einige Ressourcen konnten nicht angewendet werden (prüfen Sie
failedPlacements). - Unbekannt: Der Vorgang "Anwenden" steht aus.
conditions:
- type: ClusterResourcePlacementApplied
status: "True"
reason: ApplySucceeded
message: "The selected resources are successfully applied to 3 clusters"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementApplied
status: "True"
reason: ApplySucceeded
message: "The selected resources are successfully applied to 3 clusters"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
ClusterRessourcenPlatzierungVerfügbar
Verfügbare Ressourcenplatzierung
Gibt an, ob die platzierten Ressourcen alle verfügbar und für Mitglieder-Cluster bereit sind.
- True: Alle Ressourcen sind für alle Zielcluster verfügbar.
- False: Einige Ressourcen sind noch nicht verfügbar.
- Unbekannt: Die Verfügbarkeitsprüfung steht aus.
conditions:
- type: ClusterResourcePlacementAvailable
status: "True"
reason: ResourceAvailable
message: "The selected resources in 3 clusters are available now"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementAvailable
status: "True"
reason: ResourceAvailable
message: "The selected resources in 3 clusters are available now"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
ClusterResourcePlacementDiffReported
Ressourcenplatzierungsdifferenz Berichtet
Gibt an, ob Konfigurationsunterschiede gemeldet werden (bei Verwendung der ReportDiff-Strategie).
- True: Der vollständige Diff-Bericht ist verfügbar.
- False: Die Erstellung des Diff-Berichts ist fehlgeschlagen oder unvollständig.
- Unbekannt: Die Diff-Berichterstellung steht aus.
conditions:
- type: ClusterResourcePlacementDiffReported
status: "True"
reason: DiffReportComplete
message: "Configuration differences are reported for all target clusters"
lastTransitionTime: "2023-11-10T08:16:45Z"
observedGeneration: 5
conditions:
- type: ResourcePlacementDiffReported
status: "True"
reason: DiffReportComplete
message: "Configuration differences are reported for all target clusters"
lastTransitionTime: "2023-11-10T08:16:45Z"
observedGeneration: 5
Ressourcenmomentaufnahmen
Das observedResourceIndex Feld gibt an, welcher Snapshot von Ressourcen derzeit bereitgestellt wird.
observedResourceIndex: "1"
Fleet Manager erstellt je nach Rolloutstrategie Ressourcenabbilder auf unterschiedliche Weise.
Für die Strategie RollingUpdate (Standard): Fleet Manager erstellt automatisch Ressourcen-Snapshots, wenn:
- Die Ressourcenfilter ändern sich
- Sie ändern die ausgewählten Ressourcen
Für die Strategie External: Fleet Manager erstellt nicht automatisch Ressourcen-Snapshots. Stattdessen wird sie erstellt, wenn Sie eine mehrstufige Aktualisierung ausführen und das resourceSnapshotIndex Feld weglassen. Das bedeutet, dass beim erstmaligen Erstellen einer Platzierung mit einer External-Rollout-Strategie keine Ressourcen-Snapshots vorhanden sind, bis Sie den ersten gestaffelten Aktualisierungslauf ausführen.
Hinweis
Wenn für eine Platzierung zuvor die Strategie RollingUpdate verwendet wurde und Sie sie in External ändern, bleiben die vorhandenen Ressourcen-Snapshots verfügbar. Sie können beim Erstellen von mehrstufigen Aktualisierungen auf diese vorhandenen Momentaufnahmen verweisen.
Jede Momentaufnahme weist einen eindeutigen Index auf. Sie können Momentaufnahmen anzeigen, indem Sie Folgendes verwenden:
kubectl get clusterresourcesnapshot --selector=kubernetes-fleet.io/resource-index=1
kubectl get resourcesnapshot -n <namespace-name> --selector=kubernetes-fleet.io/resource-index=1
Platzierungsstatus pro Cluster
Das placementStatuses Array enthält detaillierten Status für jeden Cluster, in dem Ressourcen platziert oder versucht werden, platziert zu werden:
placementStatuses:
- clusterName: aks-member-1
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-member-1"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected the new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
failedPlacements: []
driftedPlacements: []
diffedPlacements: []
- clusterName: aks-member-2
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-member-2"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: Applied
status: "False"
reason: AppliedManifestFailedReason
message: "Failed to apply some manifests"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
failedPlacements:
- kind: Deployment
name: web-app
namespace: test
version: apps/v1
condition:
type: Applied
status: "False"
reason: AppliedManifestFailedReason
message: "Failed to apply manifest: insufficient resources"
lastTransitionTime: "2023-11-10T08:16:15Z"
Bedingungstypen pro Cluster
Der Status jedes Clusters umfasst Bedingungen, die den Bereitstellungslebenszyklus nachverfolgen:
RessourceEingeplant
Gibt an, ob der Cluster für die Platzierung erfolgreich ausgewählt wurde.
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-member-1 (affinity score: 0, topology spread score: 0): picked by scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
RolloutGestartet
Gibt an, ob das Rollout für diesen bestimmten Cluster gestartet wurde.
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
Außer Kraft gesetzt
Gibt an, ob Ressourcenüberschreibungen für diesen Cluster angewendet werden.
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
WorkSynchronized
Gibt an, ob Arbeitsobjekte für diesen Cluster erstellt werden.
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
Angewendet
Gibt an, ob alle Ressourcen erfolgreich auf diesen Cluster angewendet werden.
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
Verfügbar
Gibt an, ob alle Ressourcen für diesen Cluster verfügbar und bereit sind.
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
DiffReported
Gibt an, ob Konfigurationsunterschiede für diesen Cluster gemeldet werden.
- type: DiffReported
status: "True"
reason: DiffReportComplete
message: "Configuration differences are reported for this cluster"
lastTransitionTime: "2023-11-10T08:16:45Z"
observedGeneration: 5
Fehlgeschlagene Platzierungen
Wenn Ressourcen nicht auf einen Cluster angewendet werden, zeichnet das System die Details im failedPlacements Array auf:
failedPlacements:
- kind: Deployment
name: my-app
namespace: default
version: apps/v1
condition:
type: Applied
status: "False"
reason: AppliedManifestFailedReason
message: "Failed to apply manifest: namespaces 'app' not found"
lastTransitionTime: "2023-12-06T00:09:53Z"
envelope:
name: example
namespace: app
type: ResourceEnvelope
- kind: Service
name: my-service
namespace: default
version: v1
condition:
type: Applied
status: "False"
reason: AppliedManifestFailedReason
message: "Failed to apply manifest: Service 'my-service' is forbidden: User 'system:serviceaccount:fleet-system:fleet-agent' cannot create resource 'services' in API group '' in the namespace 'default'"
lastTransitionTime: "2023-12-06T00:10:15Z"
- kind: ConfigMap
name: app-config
namespace: production
version: v1
condition:
type: Applied
status: "False"
reason: AppliedManifestFailedReason
message: "Failed to apply manifest: configmaps 'app-config' already exists"
lastTransitionTime: "2023-12-06T00:10:30Z"
Jede fehlgeschlagene Platzierung umfasst:
- Ressourcenidentifikation: Gruppe, Version, Art, Name, Namespace
- bedingung: Die spezifische Fehlerbedingung
- Umschlag: Umschlaginformationen, falls zutreffend
Verschobene Platzierungen
Flottenmanager meldet immer Ressourcen, die vom gewünschten Zustand entfernt werden:
driftedPlacements:
- kind: Namespace
name: web
version: v1
observationTime: "2025-03-19T06:50:25Z"
firstDriftedObservedTime: "2025-03-19T06:49:54Z"
targetClusterObservedGeneration: 12
observedDrifts:
- path: "/metadata/labels/owner"
valueInHub: "simon"
valueInMember: "chen"
- path: "/metadata/annotations/purpose"
valueInHub: "production"
valueInMember: "testing"
- kind: Deployment
name: web-app
namespace: web
group: apps
version: v1
observationTime: "2025-03-19T06:50:25Z"
firstDriftedObservedTime: "2025-03-19T06:49:54Z"
targetClusterObservedGeneration: 8
observedDrifts:
- path: "/spec/replicas"
valueInHub: "3"
valueInMember: "5"
- path: "/spec/template/spec/containers/0/image"
valueInHub: "nginx:1.20"
valueInMember: "nginx:1.21"
- kind: ConfigMap
name: app-config
namespace: web
version: v1
observationTime: "2025-03-19T06:50:25Z"
firstDriftedObservedTime: "2025-03-19T06:49:54Z"
targetClusterObservedGeneration: 5
observedDrifts:
- path: "/data/environment"
valueInHub: "production"
valueInMember: "staging"
Jede abweichende Platzierung umfasst:
- Ressourcenidentifikation: Gruppe, Version, Art, Name, Namespace
- observationTime: Wann die Abweichung zuletzt beobachtet wurde
- firstDriftedObservedTime: Wann die Abweichung zum ersten Mal erkannt wurde
- targetClusterObservedGeneration: Beobachtete Generation der Ressource im Mitgliedscluster
- observedDrifts: Detaillierte Liste der Konfigurationsunterschiede
Unterschiede bei Platzierungen
Wenn Sie die ReportDiff-Anwendungsstrategie verwenden, meldet Fleet Manager Konfigurationsunterschiede.
diffedPlacements:
- kind: Service
name: my-service
namespace: default
version: v1
observationTime: "2025-03-19T06:50:25Z"
firstDiffedObservedTime: "2025-03-19T06:49:54Z"
targetClusterObservedGeneration: 8
observedDiffs:
- path: "/spec/ports/0/nodePort"
valueInHub: ""
valueInMember: "30080"
- path: "/spec/clusterIP"
valueInHub: ""
valueInMember: "10.96.100.200"
- kind: Deployment
name: web-app
namespace: default
group: apps
version: v1
observationTime: "2025-03-19T06:50:25Z"
firstDiffedObservedTime: "2025-03-19T06:49:54Z"
targetClusterObservedGeneration: 12
observedDiffs:
- path: "/status/replicas"
valueInHub: ""
valueInMember: "3"
- path: "/status/readyReplicas"
valueInHub: ""
valueInMember: "3"
- path: "/metadata/generation"
valueInHub: "1"
valueInMember: "2"
Diffed placements haben eine ähnliche Struktur wie drifted placements, werden jedoch für verschiedene Szenarien verwendet:
- Abgewichene Platzierungen: Verwenden Sie diese Option, wenn Sie Ressourcen zuweisen, diese anschließend jedoch ändern.
- Abweichende Platzierungen: Verwenden Sie diese Option mit der „ReportDiff“-Strategie oder wenn die Übernahmebedingungen nicht erfüllt sind.
Überwachen des Platzierungsfortschritts
Um den Platzierungsfortschritt effektiv zu überwachen, überprüfen Sie die folgenden wichtigen Indikatoren:
-
Ressource platziert: Prüfen, ob
ClusterResourcePlacementWorkSynchronizedwahr ist -
Gesamtzustand: Sehen Sie sich den
ClusterResourcePlacementAppliedZustand an - Status pro Cluster: Überprüfen der Bedingungen für jeden Zielcluster
-
Fehlgeschlagene Platzierungen: Prüfen Sie, ob Einträge in
failedPlacements-Arrays vorhanden sind
-
Ressource platziert: Überprüfen Sie, dass
ResourcePlacementWorkSynchronizedauf „True“ gesetzt ist -
Gesamtzustand: Sehen Sie sich den
ResourcePlacementAppliedZustand an - Status pro Cluster: Überprüfen der Bedingungen für jeden Zielcluster
-
Fehlgeschlagene Platzierungen: Prüfen Sie, ob in
failedPlacements-Arrays Einträge vorhanden sind
Vollständiges Statusbeispiel
Hier ist ein umfassendes Beispiel, das den vollständigen Status eines ClusterResourcePlacement zeigt:
apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
name: web-app-placement
generation: 5
spec:
resourceSelectors:
- group: ""
kind: Namespace
name: web-app
version: v1
- group: apps
kind: Deployment
name: web-server
namespace: web-app
version: v1
- group: ""
kind: Service
name: web-service
namespace: web-app
version: v1
policy:
placementType: PickN
numberOfClusters: 2
affinity:
clusterAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
clusterSelectorTerms:
- matchLabels:
region: us-west
status:
conditions:
- type: ClusterResourcePlacementScheduled
status: "True"
reason: SchedulingPolicyFulfilled
message: "found all the clusters needed as specified by the scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: ClusterResourcePlacementRolloutStarted
status: "True"
reason: RolloutStarted
message: "All 2 cluster(s) start rolling out the latest resource"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: ClusterResourcePlacementOverridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: ClusterResourcePlacementWorkSynchronized
status: "True"
reason: SynchronizeSucceeded
message: "All 2 cluster(s) are synchronized to the latest resources on the hub cluster"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: ClusterResourcePlacementApplied
status: "True"
reason: ApplySucceeded
message: "The selected resources are successfully applied to 2 clusters"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: ClusterResourcePlacementAvailable
status: "True"
reason: ResourceAvailable
message: "The selected resources in 2 cluster are available now"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
observedResourceIndex: "1"
selectedResources:
- group: ""
kind: Namespace
name: web-app
version: v1
- group: apps
kind: Deployment
name: web-server
namespace: web-app
version: v1
- group: ""
kind: Service
name: web-service
namespace: web-app
version: v1
placementStatuses:
- clusterName: aks-west-1
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-west-1 (affinity score: 0, topology spread score: 0): picked by scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected the new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
failedPlacements: []
driftedPlacements: []
diffedPlacements: []
- clusterName: aks-west-2
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-west-2 (affinity score: 0, topology spread score: 0): picked by scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
failedPlacements: []
driftedPlacements: []
diffedPlacements: []
Hier ist ein umfassendes Beispiel, das den vollständigen Status eines ResourcePlacement zeigt:
apiVersion: placement.kubernetes-fleet.io/v1beta1
kind: ResourcePlacement
metadata:
name: web-app-placement
namespace: web-app
generation: 5
spec:
resourceSelectors:
- group: apps
kind: Deployment
name: web-server
version: v1
- group: ""
kind: Service
name: web-service
version: v1
policy:
placementType: PickN
numberOfClusters: 2
affinity:
clusterAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
clusterSelectorTerms:
- matchLabels:
region: us-west
status:
conditions:
- type: ResourcePlacementScheduled
status: "True"
reason: SchedulingPolicyFulfilled
message: "found all the clusters needed as specified by the scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: ResourcePlacementRolloutStarted
status: "True"
reason: RolloutStarted
message: "All 2 cluster(s) start rolling out the latest resource"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: ResourcePlacementOverridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: ResourcePlacementWorkSynchronized
status: "True"
reason: SynchronizeSucceeded
message: "All 2 cluster(s) are synchronized to the latest resources on the hub cluster"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: ResourcePlacementApplied
status: "True"
reason: ApplySucceeded
message: "The selected resources are successfully applied to 2 clusters"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: ResourcePlacementAvailable
status: "True"
reason: ResourceAvailable
message: "The selected resources in 2 cluster are available now"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
observedResourceIndex: "1"
selectedResources:
- group: apps
kind: Deployment
name: web-server
version: v1
- group: ""
kind: Service
name: web-service
version: v1
placementStatuses:
- clusterName: aks-west-1
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-west-1 (affinity score: 0, topology spread score: 0): picked by scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected the new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
failedPlacements: []
driftedPlacements: []
diffedPlacements: []
- clusterName: aks-west-2
observedResourceIndex: "1"
conditions:
- type: ResourceScheduled
status: "True"
reason: ScheduleSucceeded
message: "Successfully scheduled resources for placement in aks-west-2 (affinity score: 0, topology spread score: 0): picked by scheduling policy"
lastTransitionTime: "2023-11-10T08:14:52Z"
observedGeneration: 5
- type: RolloutStarted
status: "True"
reason: RolloutStarted
message: "Detected new changes on the resources and started the rollout process"
lastTransitionTime: "2023-11-10T08:15:30Z"
observedGeneration: 5
- type: Overridden
status: "True"
reason: NoOverrideSpecified
message: "No override rules are configured for the selected resources"
lastTransitionTime: "2023-11-10T08:15:45Z"
observedGeneration: 5
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
failedPlacements: []
driftedPlacements: []
diffedPlacements: []
Dieses Beispiel zeigt:
- Erfolgreiche Terminplanung: Bei der Platzierung wurden zwei Cluster gefunden, die der Platzierungsrichtlinie entsprechen.
- Erfolgreiches Rollout: Alle Ressourcen werden in beiden Zielclustern bereitgestellt.
- Keine Überschreibungen: Es sind keine Überschreibungen für Ressourcen konfiguriert oder erforderlich.
- Synchronisierte Arbeit: Arbeitsobjekte werden erstellt und synchronisiert.
- Angewendete Ressourcen: Alle Ressourcen werden erfolgreich angewendet.
- Verfügbare Ressourcen: Alle Ressourcen laufen und sind verfügbar.
- Sauberer Status: Keine fehlgeschlagenen, abweichenden oder mit Abweichungen versehenen Platzierungen.
Verwandte Inhalte
Weitere Informationen zur Ressourcenplatzierung finden Sie in den folgenden Artikeln: