Propagare le risorse da un cluster hub di Azure Kubernetes Fleet Manager ai cluster membri
Questo articolo descrive come propagare le risorse da un cluster hub di Azure Kubernetes Fleet Manager (Kubernetes Fleet) ai cluster membri.
Prerequisiti
- Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
- Leggere la panoramica concettuale della propagazione delle risorse per comprendere i concetti e la terminologia usati in questo articolo.
- È necessaria una risorsa Kubernetes Fleet con un cluster hub e cluster membri. Se non è disponibile, vedere Creare una risorsa di Azure Kubernetes Fleet Manager e aggiungere cluster membri usando l'interfaccia della riga di comando di Azure.
- I cluster membri devono essere etichettati in modo appropriato nel cluster hub in modo che corrispondano ai criteri di selezione desiderati. Le etichette di esempio includono area, ambiente, team, zone di disponibilità, disponibilità dei nodi o qualsiasi altro elemento desiderato.
- È necessario accedere all'API Kubernetes del cluster hub. Se non si ha accesso, vedere Accedere all'API Kubernetes per un cluster hub di Azure Kubernetes Fleet Manager.
Usare l'API ClusterResourcePlacement per propagare le risorse ai cluster membri
L'oggetto API ClusterResourcePlacement
viene creato nel cluster hub e usato per propagare le risorse ai cluster membri. Specifica le risorse da propagare e i criteri di posizionamento da usare quando si selezionano cluster membri. Questo esempio illustra come propagare uno spazio dei nomi ai cluster membri usando l'oggetto ClusterResourcePlacement
API con un PickAll
criterio di posizionamento.
Per altre informazioni, vedere Posizionamento delle risorse Kubernetes dal cluster hub ai cluster membri e la documentazione di Kubernetes Fleet open source.
Creare uno spazio dei nomi da inserire nei cluster membri usando il
kubectl create namespace
comando . L'esempio seguente crea uno spazio dei nomi denominatomy-namespace
:kubectl create namespace my-namespace
Creare un
ClusterResourcePlacement
oggetto API nel cluster hub per propagare lo spazio dei nomi ai cluster membri e distribuirlo usando ilkubectl apply -f
comando . Nell'esempio seguente vieneClusterResourcePlacement
creato un oggetto denominatocrp
e viene usato lomy-namespace
spazio dei nomi con unPickAll
criterio di posizionamento per propagare lo spazio dei nomi a tutti i cluster membri:kubectl apply -f - <<EOF apiVersion: placement.kubernetes-fleet.io/v1 kind: ClusterResourcePlacement metadata: name: crp spec: resourceSelectors: - group: "" kind: Namespace version: v1 name: my-namespace policy: placementType: PickAll EOF
Controllare lo stato di avanzamento della propagazione delle risorse usando il
kubectl get clusterresourceplacement
comando . Nell'esempio seguente viene controllato lo stato dell'oggettoClusterResourcePlacement
denominatocrp
:kubectl get clusterresourceplacement crp
L'output dovrebbe essere simile all'esempio seguente:
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE crp 2 True 2 True 2 10s
Visualizzare i dettagli dell'oggetto
crp
usando ilkubectl describe crp
comando . Nell'esempio seguente viene descritto l'oggettoClusterResourcePlacement
denominatocrp
:kubectl describe clusterresourceplacement crp
L'output dovrebbe essere simile all'esempio seguente:
Name: crp Namespace: Labels: <none> Annotations: <none> API Version: placement.kubernetes-fleet.io/v1 Kind: ClusterResourcePlacement Metadata: Creation Timestamp: 2024-04-01T18:55:31Z Finalizers: kubernetes-fleet.io/crp-cleanup kubernetes-fleet.io/scheduler-cleanup Generation: 2 Resource Version: 6949 UID: 815b1d81-61ae-4fb1-a2b1-06794be3f986 Spec: Policy: Placement Type: PickAll Resource Selectors: Group: Kind: Namespace Name: my-namespace Version: v1 Revision History Limit: 10 Strategy: Type: RollingUpdate Status: Conditions: Last Transition Time: 2024-04-01T18:55:31Z Message: found all the clusters needed as specified by the scheduling policy Observed Generation: 2 Reason: SchedulingPolicyFulfilled Status: True Type: ClusterResourcePlacementScheduled Last Transition Time: 2024-04-01T18:55:36Z Message: All 3 cluster(s) are synchronized to the latest resources on the hub cluster Observed Generation: 2 Reason: SynchronizeSucceeded Status: True Type: ClusterResourcePlacementSynchronized Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully applied resources to 3 member clusters Observed Generation: 2 Reason: ApplySucceeded Status: True Type: ClusterResourcePlacementApplied Observed Resource Index: 0 Placement Statuses: Cluster Name: membercluster1 Conditions: Last Transition Time: 2024-04-01T18:55:31Z Message: Successfully scheduled resources for placement in membercluster1 (affinity score: 0, topology spread score: 0): picked by scheduling policy Observed Generation: 2 Reason: ScheduleSucceeded Status: True Type: ResourceScheduled Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully Synchronized work(s) for placement Observed Generation: 2 Reason: WorkSynchronizeSucceeded Status: True Type: WorkSynchronized Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully applied resources Observed Generation: 2 Reason: ApplySucceeded Status: True Type: ResourceApplied Cluster Name: membercluster2 Conditions: Last Transition Time: 2024-04-01T18:55:31Z Message: Successfully scheduled resources for placement in membercluster2 (affinity score: 0, topology spread score: 0): picked by scheduling policy Observed Generation: 2 Reason: ScheduleSucceeded Status: True Type: ResourceScheduled Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully Synchronized work(s) for placement Observed Generation: 2 Reason: WorkSynchronizeSucceeded Status: True Type: WorkSynchronized Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully applied resources Observed Generation: 2 Reason: ApplySucceeded Status: True Type: ResourceApplied Cluster Name: membercluster3 Conditions: Last Transition Time: 2024-04-01T18:55:31Z Message: Successfully scheduled resources for placement in membercluster3 (affinity score: 0, topology spread score: 0): picked by scheduling policy Observed Generation: 2 Reason: ScheduleSucceeded Status: True Type: ResourceScheduled Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully Synchronized work(s) for placement Observed Generation: 2 Reason: WorkSynchronizeSucceeded Status: True Type: WorkSynchronized Last Transition Time: 2024-04-01T18:55:36Z Message: Successfully applied resources Observed Generation: 2 Reason: ApplySucceeded Status: True Type: ResourceApplied Selected Resources: Kind: Namespace Name: my-namespace Version: v1 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal PlacementScheduleSuccess 108s cluster-resource-placement-controller Successfully scheduled the placement Normal PlacementSyncSuccess 103s cluster-resource-placement-controller Successfully synchronized the placement Normal PlacementRolloutCompleted 103s cluster-resource-placement-controller Resources have been applied to the selected clusters
Pulire le risorse
Se non si vuole più usare l'oggetto ClusterResourcePlacement
, è possibile eliminarlo usando il kubectl delete
comando . Nell'esempio seguente viene eliminato l'oggetto ClusterResourcePlacement
denominato crp
:
kubectl delete clusterresourceplacement crp
Contenuto correlato
Per altre informazioni sulla propagazione delle risorse, vedere le risorse seguenti:
Azure Kubernetes Service