Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: ✔️ Gestione flotta con un cluster hub
Quando si lavora con Azure Kubernetes Fleet Manager, la comprensione dello stato delle risorse è fondamentale per monitorare lo stato della ClusterResourcePlacement distribuzione e risolvere i problemi.
Quando si lavora con Azure Kubernetes Fleet Manager, la comprensione dello stato delle risorse è fondamentale per monitorare lo stato della ResourcePlacement distribuzione e risolvere i problemi.
Prerequisiti
- Hai un Fleet Manager con un cluster hub e uno o più cluster membri. Se non ne hai uno, vedere Creare una risorsa di Azure Kubernetes Fleet Manager e aggiungere cluster membri.
- È possibile accedere al cluster hub Fleet Manager. Per altre informazioni, vedere Access the Kubernetes API for an Azure Kubernetes Fleet Manager hub cluster.
- È stato implementato almeno un
ClusterResourcePlacementper distribuire le risorse. In caso contrario, consultare Usare il posizionamento delle risorse del cluster per distribuire i carichi di lavoro tra più cluster.
- Hai distribuito almeno un oggetto API ResourcePlacement per collocare le tue risorse all'interno della flotta. In caso contrario, consultare Usare il posizionamento delle risorse del cluster per distribuire i carichi di lavoro tra più cluster.
Panoramica della struttura dello stato di posizionamento
L'oggetto ClusterResourcePlacement contiene non solo la specifica descrittiva relativa alla posizione, ma anche lo stato dell'operazione di posizionamento.
L'oggetto ResourcePlacement contiene non solo la specifica descrittiva relativa alla posizione, ma anche lo stato dell'operazione di posizionamento.
La sezione relativa allo stato fornisce informazioni dettagliate su:
- Stato di posizionamento complessivo espresso tramite condizioni
- Risorse selezionate tramite allocazione
- Stato di posizionamento per cluster espresso tramite condizioni
- posizionamenti di
Failed,driftedediffedin ogni cluster
Per visualizzare lo stato di un posizionamento, usare il comando seguente:
kubectl describe clusterresourceplacement <placement-name>
kubectl describe resourceplacement <placement-name> -n <namespace-name>
Per ottenere l'output YAML non elaborato, usare il comando seguente:
kubectl get clusterresourceplacement <placement-name> -o yaml
kubectl get resourceplacement <placement-name> -n <namespace-name> -o yaml
Campi di stato di primo livello
La sezione relativa allo stato contiene i campi di primo livello seguenti:
- selectedResources: elenco di risorse selezionate dal posizionamento
- condizioni: matrice di condizioni di posizionamento complessive
- observedResourceIndex: indice dello snapshot della risorsa corrente
- placementStatuses: informazioni sullo stato di posizionamento per cluster
Le sezioni seguenti esaminano in dettaglio ogni campo.
Risorse selezionate
Nel selectedResources campo sono elencate tutte le risorse selezionate dal posizionamento. Usare questo campo per verificare se le risorse previste sono incluse nel posizionamento. Ecco un esempio:
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
Ogni voce di risorsa include:
- group: gruppo di API (vuoto per le risorse principali)
-
version: versione DELL'API (ad esempio,
v1,v1beta1) - kind: Tipo di risorsa
- name: Nome risorsa
- namespace: Spazio dei nomi (per le risorse con spazio dei nomi)
-
envelope: se una risorsa viene racchiusa in una busta, vengono forniti anche i metadati della busta, che includono:
- name: Nome della busta
- namespace: spazio dei nomi della busta
-
type: tipo della busta (ad esempio,
ResourceEnvelope)
Condizioni di posizionamento
L'array conditions fornisce informazioni generali sullo stato dell'intero posizionamento. Ogni condizione segue la definizione comune di Kubernetes, che include i campi standard seguenti:
- type: tipo di condizione (descritto nelle sezioni seguenti).
-
status:
True,FalseoUnknown. - reason: codice motivo breve per la condizione.
- message: Descrizione comprensibile all'uomo.
- lastTransitionTime: Quando la condizione è cambiata l'ultima volta.
- observedGeneration: generazione del posizionamento quando è stata impostata la condizione.
Tipi di condizione ClusterResourcePlacement
Per ClusterResourcePlacement sono disponibili i tipi di condizione seguenti:
ClusterResourcePlacementScheduled
Tipi di condizione di posizionamento delle risorse
Per ResourcePlacement sono disponibili i tipi di condizione seguenti:
ResourcePlacementScheduled
Indica se il posizionamento è pianificato correttamente per i cluster di destinazione.
- True: tutti i cluster obbligatori vengono selezionati in base ai criteri di posizionamento.
- False: la pianificazione non è riuscita (ad esempio, cluster insufficienti disponibili).
- Sconosciuto: la decisione di pianificazione è in sospeso.
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
Inizio roll-out assegnazione risorse cluster
Avvio del Rollout di Allocazione Risorse
Indica se l'implementazione viene avviata tra i cluster selezionati.
- True: Le risorse hanno iniziato a essere distribuite nei cluster programmati.
- False: l'implementazione non è ancora stata avviata.
- Sconosciuto: la decisione di implementazione è in sospeso.
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
Indica se le sostituzioni delle risorse vengono applicate correttamente.
- True: vengono applicate tutte le override applicabili.
- False: alcuni override non vengono applicati.
- Sconosciuto: l'elaborazione dell'override è in sospeso.
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
Indica se il processo crea oggetti di lavoro negli spazi dei nomi per cluster del cluster hub.
- True: tutti gli oggetti di lavoro vengono sincronizzati.
- False: la sincronizzazione del lavoro ha esito negativo o è incompleta.
- Sconosciuto: la sincronizzazione del lavoro è in sospeso.
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
ResourcePlacementApplied
Indica se tutte le risorse vengono applicate correttamente ai cluster membri.
- True: tutte le risorse applicate correttamente a tutti i cluster di destinazione.
-
False: alcune risorse non sono state applicate (controllare
failedPlacements). - Sconosciuto: l'operazione di applicazione è in sospeso.
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
ClusterResourcePlacementAvailable
ResourcePlacementAvailable
Indica se le risorse inserite sono tutte disponibili e pronte nei cluster membri.
- True: tutte le risorse sono disponibili in tutti i cluster di destinazione.
- False: alcune risorse non sono ancora disponibili.
- Sconosciuto: il controllo della disponibilità è in sospeso.
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
Differenza di Posizionamento delle Risorse del Cluster Segnalata
ResourcePlacementDiffReported
Indica se vengono segnalate differenze di configurazione (quando si usa la strategia ReportDiff).
- True: è disponibile un report completo delle differenze.
- False: segnalazione diff non riuscita o incompleta.
- Sconosciuto: la generazione del report diff è in sospeso.
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
Snapshot delle risorse
Il observedResourceIndex campo indica lo snapshot delle risorse attualmente in fase di distribuzione.
observedResourceIndex: "1"
Fleet Manager crea snapshot delle risorse in modo diverso a seconda della strategia di implementazione:
Per RollingUpdate strategia (impostazione predefinita): Fleet Manager crea automaticamente gli snapshot delle risorse quando:
- I selettori di risorse cambiano
- Le risorse selezionate vengono modificate
Per la strategia External: Fleet Manager non crea automaticamente snapshot delle risorse. Vengono invece creati quando si esegue un'esecuzione di aggiornamento a fasi e si omette il resourceSnapshotIndex campo . Questa condizione significa che, quando si crea per la prima volta un placement con una strategia di rollout External, non esistono snapshot delle risorse finché non si esegue la prima esecuzione dell'aggiornamento in fasi.
Annotazioni
Se in precedenza un posizionamento usava la RollingUpdate strategia e lo si modifica in External, gli snapshot delle risorse esistenti rimarranno disponibili. È possibile fare riferimento a questi snapshot esistenti durante la creazione di esecuzioni di aggiornamenti a fasi.
Ogni snapshot ha un indice univoco. È possibile visualizzare gli snapshot usando:
kubectl get clusterresourcesnapshot --selector=kubernetes-fleet.io/resource-index=1
kubectl get resourcesnapshot -n <namespace-name> --selector=kubernetes-fleet.io/resource-index=1
Stato di posizionamento per cluster
La placementStatuses matrice contiene lo stato dettagliato per ogni cluster in cui vengono inserite o tentate di posizionare le risorse:
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"
Tipologie di condizione per cluster
Lo stato di ogni cluster include condizioni che tengono traccia del ciclo di vita della distribuzione:
RisorsaPianificata
Indica se il cluster è selezionato con successo per il posizionamento.
- 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
Implementazione Iniziata
Indica se l'implementazione è stata avviata in questo cluster specifico.
- 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
Ignorato
Indica se gli override delle risorse sono applicati per questo cluster.
- 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
Indica se gli oggetti di lavoro vengono creati per questo cluster.
- type: WorkSynchronized
status: "True"
reason: AllWorkSynced
message: "All of the works are synchronized to the latest"
lastTransitionTime: "2023-11-10T08:16:00Z"
observedGeneration: 5
Applicato
Indica se tutte le risorse vengono applicate correttamente a questo cluster.
- type: Applied
status: "True"
reason: AllWorkHaveBeenApplied
message: "All corresponding work objects are applied"
lastTransitionTime: "2023-11-10T08:16:15Z"
observedGeneration: 5
Disponibile
Indica se tutte le risorse sono disponibili e pronte in questo cluster.
- type: Available
status: "True"
reason: ResourceAvailable
message: "All resources are available on the target cluster"
lastTransitionTime: "2023-11-10T08:16:30Z"
observedGeneration: 5
DiffReported
Indica se vengono segnalate differenze di configurazione per questo cluster.
- type: DiffReported
status: "True"
reason: DiffReportComplete
message: "Configuration differences are reported for this cluster"
lastTransitionTime: "2023-11-10T08:16:45Z"
observedGeneration: 5
Posizionamenti non riusciti
Quando le risorse non si applicano a un cluster, il sistema registra i dettagli nella failedPlacements matrice:
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"
Ogni posizionamento non riuscito include:
- Identificazione delle risorse: gruppo, versione, tipo, nome, spazio dei nomi
- condizione: La condizione specifica di guasto
- busta: informazioni sulla busta, se applicabile
Posizionamenti disallineati
Fleet Manager segnala sempre le risorse che si allontanano dal proprio stato desiderato:
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"
Ogni posizionamento deviato include:
- Identificazione delle risorse: gruppo, versione, tipo, nome, spazio dei nomi
- observationTime: Quando la deriva è stata osservata per l'ultima volta
- firstDriftedObservedTime: quando la deriva è stata rilevata per la prima volta
- targetClusterObservedGeneration: generazione della risorsa nel cluster membro
- observedDrifts: elenco dettagliato delle differenze di configurazione
Posizionamenti differenziati
Quando si usa la strategia di applicazione reportDiff, Fleet Manager segnala le differenze di configurazione.
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"
I posizionamenti con differenze hanno una struttura simile a quella dei posizionamenti deviati, ma vengono usati per scenari diversi:
- Posizionamento deviato: usare quando si applicano risorse che vengono successivamente modificate.
- Posizionamento con differenze: usare con la strategia ReportDiff o quando le condizioni di acquisizione non vengono soddisfatte.
Monitoraggio dello stato di posizionamento
Per monitorare efficacemente lo stato di avanzamento del posizionamento, controllare questi indicatori chiave:
-
Risorsa inserita: Verificare che
ClusterResourcePlacementWorkSynchronizedsia True -
Integrità complessiva: esaminare la
ClusterResourcePlacementAppliedcondizione - Stato per cluster: esaminare le condizioni per ogni cluster di destinazione
-
Posizionamenti non riusciti: verificare la presenza di voci nelle matrici
failedPlacements
-
Risorsa inserita: Verificare che
ResourcePlacementWorkSynchronizedsia True -
Integrità complessiva: esaminare la
ResourcePlacementAppliedcondizione - Stato per cluster: esaminare le condizioni per ogni cluster di destinazione
-
Posizionamenti non riusciti: verificare la presenza di voci nelle matrici
failedPlacements
Esempio di stato completo
Ecco un esempio completo che mostra lo stato completo di clusterResourcePlacement:
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: []
Ecco un esempio completo che mostra lo stato completo di un oggetto ResourcePlacement:
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: []
Questo esempio mostra:
- Pianificazione riuscita: il posizionamento ha individuato due cluster che corrispondono ai criteri di posizionamento.
- Implementazione riuscita: tutte le risorse vengono distribuite in entrambi i cluster di destinazione.
- Nessun override: non sono configurati override delle risorse o non sono necessari.
- Lavoro sincronizzato: gli oggetti di lavoro vengono creati e sincronizzati.
- Risorse applicate: tutte le risorse vengono applicate correttamente.
- Risorse disponibili: tutte le risorse sono in esecuzione e disponibili.
- Stato pulito: nessun posizionamento non riuscito, deviato o con differenze.
Contenuti correlati
Per altre informazioni sul posizionamento delle risorse, vedere gli articoli seguenti: