Niepowodzenie propagacji zasobów: KlasterResourcePlacementWorkSynchronized ma wartość false
W tym artykule opisano sposób rozwiązywania problemów ClusterResourcePlacementWorkSynchronized
podczas propagacji zasobów przy użyciu obiektu interfejsu ClusterResourcePlacement
API w usłudze Azure Kubernetes Fleet Manager.
Symptomy
W przypadku używania obiektu interfejsu ClusterResourcePlacement
API w usłudze Azure Kubernetes Fleet Manager do propagowania zasobów, jeśli ClusterResourcePlacement
obiekt jest aktualizowany, skojarzone obiekty robocze nie są synchronizowane ze zmianami, a ClusterResourcePlacementWorkSynchronized
stan warunku jest wyświetlany jako False
.
Uwaga 16.
Aby uzyskać więcej informacji o tym, dlaczego synchronizacja obiektów roboczych kończy się niepowodzeniem, możesz sprawdzić dzienniki kontrolera generatora pracy.
Przyczyna
Ten problem może wystąpić z jednego z następujących powodów:
- Kontroler napotka błąd podczas próby wygenerowania odpowiedniego obiektu roboczego.
- Obiekt z kopertą nie jest poprawnie sformatowany.
Analiza przypadku
W poniższym przykładzie ClusterResourcePlacement
program próbuje propagować zasób do wybranego klastra, ale obiekt roboczy nie jest aktualizowany w celu odzwierciedlenia najnowszych zmian, ponieważ wybrany klaster został zakończony.
Specyfikacja clusterResourcePlacement
spec:
resourceSelectors:
- group: rbac.authorization.k8s.io
kind: ClusterRole
name: secret-reader
version: v1
policy:
placementType: PickN
numberOfClusters: 1
strategy:
type: RollingUpdate
Stan 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
ClusterResourcePlacement
W stanie ClusterResourcePlacementWorkSynchronized
stan warunku jest wyświetlany jako False
. Komunikat oznacza, że obiekt crp1-work
roboczy nie może wygenerować nowej zawartości w przestrzeni nazw fleet-member-kind-cluster-1
, ponieważ obecnie kończy działanie.
Rozwiązanie
W takiej sytuacji poniżej przedstawiono kilka potencjalnych rozwiązań:
- Zmodyfikuj element za
ClusterResourcePlacement
pomocą nowo wybranego klastra. - Usuń element ,
ClusterResourcePlacement
aby usunąć pracę przez odzyskiwanie pamięci. - Dołącz ponownie do klastra członkowskiego. Przestrzeń nazw można wygenerować tylko po ponownym dołączeniu klastra.
W innych sytuacjach możesz zdecydować się poczekać na zakończenie propagacji pracy.
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.