Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Microsoft Azure Kubernetes Fleet Manager'da nesne API'sini ClusterResourcePlacementApplied
kullanarak kaynakları yayma sorunlarını giderme ClusterResourcePlacement
adımları anlatılmaktadır.
Belirti -leri
Kaynakları yaymak için Azure Kubernetes Fleet Manager'da API nesnesini kullandığınızda ClusterResourcePlacement
dağıtım başarısız olur.
ClusterResourcePlacementApplied
durumu False
olarak gösterilir.
Nedeni
Bu sorun aşağıdaki nedenlerden biri nedeniyle oluşabilir:
- Kaynak kümede zaten var ve filo denetleyicisi tarafından yönetilmiyor. Bu sorunu çözmek için,
ClusterResourcePlacement
bildirim YAML dosyasını güncelleyerekApplyStrategy
içindeAllowCoOwnership
kullanılmasını sağlayın, böylece filo denetleyicisi kaynağı yönetebilir. - Başka bir
ClusterResourcePlacement
dağıtım, seçilen kümenin kaynağını farklı bir uygulama stratejisi kullanarak zaten yönetiyor. - Dağıtım, söz dizimi hataları veya geçersiz kaynak yapılandırmaları nedeniyle manifesti uygulamaz. Bu durum, bir kaynak bir zarf nesnesi aracılığıyla yayılırsa da oluşabilir.
Sorun giderme adımları
-
ClusterResourcePlacement
durumunu görüntüleyin veplacementStatuses
bölümünü bulun.placementStatuses
değerini denetleyerek hangi kümelerin koşulununResourceApplied
olarak ayarlandığını belirleyin ve onlarınclusterName
değerini not edin. -
Work
Hub kümesindeki nesneyi bulun. Üye kümeyle ilişkili nesneyi bulmakWork
için tanımlananclusterName
öğesini kullanın. Daha fazla bilgi için bkz. ileClusterResourcePlacement
ilişkilendirilmiş doğru Çalışma kaynağını bulma. - Başarılı kaynak uygulamasını engelleyen belirli sorunları anlamak için nesnenin durumunu
Work
denetleyin.
Örnek olay incelemesi
Aşağıdaki örnekte, ClusterResourcePlacement
dağıtım içeren bir ad alanını iki üye kümeye yaymaya çalışıyor. Ancak ad alanı, özellikle bir üye küme olan kind-cluster-1
üzerinde zaten var.
ClusterResourcePlacement özellikleri
apiVersion: placement.kubernetes-fleet.io/v1beta1
kind: ClusterResourcePlacement
metadata:
name: crp
spec:
policy:
clusterNames:
- kind-cluster-1
- kind-cluster-2
placementType: PickFixed
resourceSelectors:
- group: ""
kind: Namespace
name: test-ns
version: v1
revisionHistoryLimit: 10
strategy:
type: RollingUpdate
ClusterResourcePlacement durumu
status:
conditions:
- lastTransitionTime: "2024-05-07T23:32:40Z"
message:couldn't find all the clusters needed as specified by the scheduling
policy
observedGeneration: 1
reason: SchedulingPolicyUnfulfilled
status: "False"
type: ClusterResourcePlacementScheduled
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: All 2 cluster(s) start rolling out the latest resource
observedGeneration: 1
reason: RolloutStarted
status: "True"
type: ClusterResourcePlacementRolloutStarted
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: No override rules are configured for the selected resources
observedGeneration: 1
reason: NoOverrideSpecified
status: "True"
type: ClusterResourcePlacementOverridden
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: Works(s) are succcesfully created or updated in the 2 target clusters'
namespaces
observedGeneration: 1
reason: WorkSynchronized
status: "True"
type: ClusterResourcePlacementWorkSynchronized
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: Failed to apply resources to 1 clusters, please check the `failedPlacements`
status
observedGeneration: 1
reason: ApplyFailed
status: "False"
type: ClusterResourcePlacementApplied
observedResourceIndex: "0"
placementStatuses:
- clusterName: kind-cluster-2
conditions:
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: 'Successfully scheduled resources for placement in kind-cluster-2 (affinity
score: 0, topology spread score: 0): picked by scheduling policy'
observedGeneration: 1
reason: Scheduled
status: "True"
type: Scheduled
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: Detected the new changes on the resources and started the rollout process
observedGeneration: 1
reason: RolloutStarted
status: "True"
type: RolloutStarted
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: No override rules are configured for the selected resources
observedGeneration: 1
reason: NoOverrideSpecified
status: "True"
type: Overridden
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: All of the works are synchronized to the latest
observedGeneration: 1
reason: AllWorkSynced
status: "True"
type: WorkSynchronized
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: All corresponding work objects are applied
observedGeneration: 1
reason: AllWorkHaveBeenApplied
status: "True"
type: Applied
- lastTransitionTime: "2024-05-07T23:32:49Z"
message: The availability of work object crp-4-work isn't trackable
observedGeneration: 1
reason: WorkNotTrackable
status: "True"
type: Available
- clusterName: kind-cluster-1
conditions:
- lastTransitionTime: "2024-05-07T23:32:40Z"
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-07T23:32:40Z"
message: Detected the new changes on the resources and started the rollout process
observedGeneration: 1
reason: RolloutStarted
status: "True"
type: RolloutStarted
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: No override rules are configured for the selected resources
observedGeneration: 1
reason: NoOverrideSpecified
status: "True"
type: Overridden
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: All of the works are synchronized to the latest
observedGeneration: 1
reason: AllWorkSynced
status: "True"
type: WorkSynchronized
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: Work object crp-4-work isn't applied
observedGeneration: 1
reason: NotAllWorkHaveBeenApplied
status: "False"
type: Applied
failedPlacements:
- condition:
lastTransitionTime: "2024-05-07T23:32:40Z"
message: 'Failed to apply manifest: failed to process the request due to a
client error: resource exists and isn't managed by the fleet controller
and co-ownernship is disallowed'
reason: ManifestsAlreadyOwnedByOthers
status: "False"
type: Applied
kind: Namespace
name: test-ns
version: v1
selectedResources:
- kind: Namespace
name: test-ns
version: v1
- group: apps
kind: Deployment
name: test-nginx
namespace: test-ns
version: v1
failedPlacements
bölümünde kind-cluster-1
, message
alanlar kaynağın üye kümeye neden uygulanmadığını açıklar. Önceki conditions
bölümde, Applied
koşulu false
olarak kind-cluster-1
işaretlenir ve NotAllWorkHaveBeenApplied
nedeni gösterilir. Bu, üyelik kümesi kind-cluster-1
için hedeflenen Work
nesnenin uygulanmadığını gösterir. Daha fazla bilgi için bkz. ile ClusterResourcePlacement
ilişkilendirilmiş doğru Çalışma kaynağını bulma.
kind-cluster-1'in çalışma durumu
status:
conditions:
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: 'Apply manifest {Ordinal:0 Group: Version:v1 Kind:Namespace Resource:namespaces
Namespace: Name:test-ns} failed'
observedGeneration: 1
reason: WorkAppliedFailed
status: "False"
type: Applied
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: ""
observedGeneration: 1
reason: WorkAppliedFailed
status: Unknown
type: Available
manifestConditions:
- conditions:
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: 'Failed to apply manifest: failed to process the request due to a client
error: resource exists and isn't managed by the fleet controller and co-ownernship
is disallowed'
reason: ManifestsAlreadyOwnedByOthers
status: "False"
type: Applied
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: Manifest isn't applied yet
reason: ManifestApplyFailed
status: Unknown
type: Available
identifier:
kind: Namespace
name: test-ns
ordinal: 0
resource: namespaces
version: v1
- conditions:
- lastTransitionTime: "2024-05-07T23:32:40Z"
message: Manifest is already up to date
observedGeneration: 1
reason: ManifestAlreadyUpToDate
status: "True"
type: Applied
- lastTransitionTime: "2024-05-07T23:32:51Z"
message: Manifest is trackable and available now
observedGeneration: 1
reason: ManifestAvailable
status: "True"
type: Available
identifier:
group: apps
kind: Deployment
name: test-nginx
namespace: test-ns
ordinal: 1
resource: deployments
version: v1
Work
Durumu, özellikle de manifestConditions
bölümü denetleyin. Ad alanının uygulanalamadığını ancak ad alanı içindeki dağıtımın hub'dan üye kümeye yayıldığını görebilirsiniz.
Çözüm
Bu durumda, olası bir çözüm, AllowCoOwnership
öğesini ApplyStrategy politikasında true
olarak ayarlamaktır. Ancak, kaynaklar paylaşılmayabileceği için bu kararın kullanıcı tarafından verilmesi gerektiğini fark etmek önemlidir.
Ayrıca, kaynakların neden kullanılamadığı hakkında daha fazla içgörü için İş Denetleyicisi Uygula günlüklerini gözden geçirebilirsiniz.
Yardım için bize ulaşın
Sorularınız varsa veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteğine sorun. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.