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.
Questo articolo descrive come risolvere i problemi ClusterResourcePlacementWorkSynchronized durante la propagazione delle risorse usando l'oggetto ClusterResourcePlacement API in Azure Kubernetes Fleet Manager.
Sintomi
Quando si usa l'oggetto ClusterResourcePlacement API in Azure Kubernetes Fleet Manager per propagare le risorse, se ClusterResourcePlacement viene aggiornato, gli oggetti di lavoro associati non vengono sincronizzati con le modifiche e lo stato della ClusterResourcePlacementWorkSynchronized condizione viene visualizzato come False.
Annotazioni
Per ottenere altre informazioni sul motivo per cui la sincronizzazione degli oggetti di lavoro ha esito negativo, è possibile controllare i log del controller del generatore di lavoro .
Motivo
Questo problema può verificarsi per uno dei motivi seguenti:
- Il controller rileva un errore durante il tentativo di generare l'oggetto di lavoro corrispondente.
- L'oggetto racchiuso non è formattato correttamente.
Caso di studio
Nell'esempio seguente l'oggetto ClusterResourcePlacement sta tentando di propagare una risorsa a un cluster selezionato, ma l'oggetto di lavoro non viene aggiornato in modo da riflettere le modifiche più recenti perché il cluster selezionato è stato terminato.
Specifica Posizionamento delle Risorse del Cluster
spec:
resourceSelectors:
- group: rbac.authorization.k8s.io
kind: ClusterRole
name: secret-reader
version: v1
policy:
placementType: PickN
numberOfClusters: 1
strategy:
type: RollingUpdate
Stato di ClusterResourcePlacement
spec:
policy:
numberOfClusters: 1
placementType: PickN
resourceSelectors:
- group: ""
kind: Namespace
name: test-ns
version: v1
revisionHistoryLimit: 10
strategy:
type: RollingUpdate
status:
conditions:
- lastTransitionTime: "2024-05-14T18:05:04Z"
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:05:05Z"
message: All 1 cluster(s) start rolling out the latest resource
observedGeneration: 1
reason: RolloutStarted
status: "True"
type: ClusterResourcePlacementRolloutStarted
- lastTransitionTime: "2024-05-14T18:05:05Z"
message: No override rules are configured for the selected resources
observedGeneration: 1
reason: NoOverrideSpecified
status: "True"
type: ClusterResourcePlacementOverridden
- lastTransitionTime: "2024-05-14T18:05:05Z"
message: There are 1 cluster(s) which have not finished creating or updating work(s)
yet
observedGeneration: 1
reason: WorkNotSynchronizedYet
status: "False"
type: ClusterResourcePlacementWorkSynchronized
observedResourceIndex: "0"
placementStatuses:
- clusterName: kind-cluster-1
conditions:
- lastTransitionTime: "2024-05-14T18:05:04Z"
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:05:05Z"
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:05:05Z"
message: No override rules are configured for the selected resources
observedGeneration: 1
reason: NoOverrideSpecified
status: "True"
type: Overridden
- lastTransitionTime: "2024-05-14T18:05:05Z"
message: 'Failed to synchronize the work to the latest: works.placement.kubernetes-fleet.io
"crp1-work" is forbidden: unable to create new content in namespace fleet-member-kind-cluster-1
because it is being terminated'
observedGeneration: 1
reason: SyncWorkFailed
status: "False"
type: WorkSynchronized
selectedResources:
- kind: Namespace
name: test-ns
version: v1
Nello stato ClusterResourcePlacement, la condizione ClusterResourcePlacementWorkSynchronized appare come False. Il messaggio indica che non è consentito all'oggetto di lavoro crp1-work generare nuovo contenuto all'interno dello spazio dei nomi fleet-member-kind-cluster-1 perché è attualmente in fase di terminazione.
Risoluzione
In questa situazione, ecco alcune possibili soluzioni:
- Modifica il
ClusterResourcePlacementcon un cluster appena selezionato. - Elimina
ClusterResourcePlacementper rimuovere il lavoro attraverso la Garbage Collection. - Ricongiunire il cluster membro. Lo spazio dei nomi può essere rigenerato solo dopo la ricongiunzione del cluster.
In altre situazioni, è possibile scegliere di attendere il completamento della propagazione del lavoro.
Contattaci per ricevere assistenza
In caso di domande, è possibile porre domande al supporto della community di Azure. È anche possibile inviare commenti e suggerimenti sul prodotto alla community di commenti e suggerimenti di Azure.