Snabbstart: Sprida resurser från ett Azure Kubernetes Fleet Manager-hubbkluster (Fleet) till medlemskluster
I den här snabbstarten lär du dig att sprida resurser från ett Azure Kubernetes Fleet Manager-hubbkluster (Fleet) till medlemskluster.
Förutsättningar
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
- Läs den konceptuella översikten över resursspridning för att förstå begreppen och terminologin som används i den här snabbstarten.
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Du behöver en fleet-resurs med ett hubbkluster och medlemskluster. Om du inte har en kan du läsa Skapa en Azure Kubernetes Fleet Manager-resurs och ansluta till medlemskluster med Hjälp av Azure CLI.
- Medlemskluster måste märkas korrekt i hubbklustret för att matcha önskade urvalsvillkor. Exempeletiketter är region, miljö, team, tillgänglighetszoner, nodtillgänglighet eller något annat som önskas.
- Du behöver åtkomst till Kubernetes API för hubbklustret. Om du inte har åtkomst läser du Åtkomst till Kubernetes API för fleet-resursen med Azure Kubernetes Fleet Manager.
Använda API:et ClusterResourcePlacement
för att sprida resurser till medlemskluster
ClusterResourcePlacement
API-objektet används för att sprida resurser från ett hubbkluster till medlemskluster. ClusterResourcePlacement
API-objektet anger de resurser som ska spridas och den placeringsprincip som ska användas när medlemskluster väljs. ClusterResourcePlacement
API-objektet skapas i hubbklustret och används för att sprida resurser till medlemskluster. Det här exemplet visar hur du sprider ett namnområde till medlemskluster med hjälp av ClusterResourcePlacement
API-objektet med en PickAll
placeringsprincip.
Mer information finns i Kubernetes-resursspridning från hubbkluster till medlemskluster (förhandsversion) och den överordnade fleetdokumentationen.
Skapa ett namnområde som ska placeras i medlemskluster med hjälp av
kubectl create namespace
kommandot . I följande exempel skapas ett namnområde med namnetmy-namespace
:kubectl create namespace my-namespace
Skapa ett
ClusterResourcePlacement
API-objekt i hubbklustret för att sprida namnområdet till medlemskluster och distribuera det med hjälp avkubectl apply -f
kommandot . I följande exempelClusterResourcePlacement
skapas ett objekt med namnetcrp
och namnområdet medmy-namespace
enPickAll
placeringsprincip används för att sprida namnområdet till alla medlemskluster:kubectl apply -f - <<EOF apiVersion: placement.kubernetes-fleet.io/v1beta1 kind: ClusterResourcePlacement metadata: name: crp spec: resourceSelectors: - group: "" kind: Namespace version: v1 name: my-namespace policy: placementType: PickAll EOF
Kontrollera förloppet för resursspridningen
kubectl get clusterresourceplacement
med hjälp av kommandot . I följande exempel kontrolleras statusen förClusterResourcePlacement
objektet med namnetcrp
:kubectl get clusterresourceplacement crp
Dina utdata bör se ut ungefär som följande exempelutdata:
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE crp 2 True 2 True 2 10s
Visa information om objektet
crp
med kommandotkubectl describe crp
. I följande exempel beskrivs objektetClusterResourcePlacement
med namnetcrp
:kubectl describe clusterresourceplacement crp
Dina utdata bör se ut ungefär som följande exempelutdata:
Name: crp Namespace: Labels: <none> Annotations: <none> API Version: placement.kubernetes-fleet.io/v1beta1 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
Rensa resurser
Om du inte längre vill använda ClusterResourcePlacement
objektet kan du ta bort det med kommandot kubectl delete
. I följande exempel tas ClusterResourcePlacement
objektet med namnet crp
:
kubectl delete clusterresourceplacement crp
Nästa steg
Mer information om resursspridning finns i följande resurser:
Azure Kubernetes Service