Propagare le risorse da un cluster hub di Azure Kubernetes Fleet Manager (Fleet) ai cluster membri
Questo articolo offre una panoramica su come propagare le risorse da un cluster hub di Azure Kubernetes Fleet Manager (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 avvio rapido.
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- È necessaria una risorsa Fleet con un cluster hub e cluster membri. Se non è disponibile, vedere Creare una risorsa di Gestione flotta Kubernetes di Azure 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 l'API Kubernetes del cluster hub di Access Fleet.
Usare l'API ClusterResourcePlacement
per propagare le risorse ai cluster membri
L'oggetto API ClusterResourcePlacement
viene usato per propagare le risorse da un cluster hub ai cluster membri. L'oggetto API ClusterResourcePlacement
specifica le risorse da propagare e i criteri di posizionamento da usare quando si selezionano i cluster membri. L'oggetto API ClusterResourcePlacement
viene creato nel cluster hub e usato per propagare le risorse ai cluster membri. Questo esempio illustra come propagare uno spazio dei nomi ai cluster membri usando l'oggetto API ClusterResourcePlacement
con un criterio di posizionamento PickAll
.
Per altre informazioni, vedere Propagazione delle risorse Kubernetes dal cluster hub ai cluster membri e la documentazione di Fleet open source.
Creare uno spazio dei nomi da inserire nei cluster membri usando il comando
kubectl create namespace
. L'esempio seguente crea uno spazio dei nomi denominatomy-namespace
:kubectl create namespace my-namespace
Creare un oggetto API
ClusterResourcePlacement
nel cluster hub per propagare lo spazio dei nomi ai cluster membri e distribuirlo usando il comandokubectl apply -f
. L'esempio seguenteClusterResourcePlacement
crea un oggetto denominatocrp
e usa lo spazio dei nomimy-namespace
con un criterio di posizionamentoPickAll
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 comando
kubectl get clusterresourceplacement
. Nell'esempio seguente viene controllato lo stato dell'oggettoClusterResourcePlacement
denominatocrp
:kubectl get clusterresourceplacement crp
L'output dovrebbe essere simile all'esempio di output seguente:
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE crp 2 True 2 True 2 10s
Visualizzare i dettagli dell'oggetto
crp
con il comandokubectl describe crp
. Nell'esempio seguente viene descritto l'oggettoClusterResourcePlacement
denominatocrp
:kubectl describe clusterresourceplacement crp
L'output dovrebbe essere simile all'esempio di output 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 comando kubectl delete
. Nell'esempio seguente viene eliminato l'oggetto ClusterResourcePlacement
denominato crp
:
kubectl delete clusterresourceplacement crp
Passaggi successivi
Per altre informazioni sulla propagazione delle risorse, vedere le risorse seguenti:
Azure Kubernetes Service