Sprida resurser från ett Azure Kubernetes Fleet Manager-hubbkluster till medlemskluster
Den här artikeln beskriver hur du sprider resurser från ett Kubernetes Fleet Manager-kluster (Kubernetes 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 artikeln.
- Du behöver en Kubernetes 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 du vill ha.
- Du behöver åtkomst till Kubernetes API för hubbklustret. Om du inte har åtkomst läser du Åtkomst till Kubernetes API för ett Azure Kubernetes Fleet Manager-hubbkluster.
Använd CLUSTERResourcePlacement-API:et för att sprida resurser till medlemskluster
ClusterResourcePlacement
API-objektet skapas i hubbklustret och används för att sprida resurser till medlemskluster. Den anger de resurser som ska spridas och den placeringsprincip som ska användas när du väljer medlemskluster. Det här exemplet visar hur du sprider ett namnområde till medlemskluster med hjälp ClusterResourcePlacement
av API-objektet med en PickAll
placeringsprincip.
Mer information finns i Kubernetes-resursplacering från hubbkluster till medlemskluster och dokumentationen om Kubernetes Fleet med öppen källkod.
Skapa ett namnområde som ska placeras på medlemskluster med hjälp
kubectl create namespace
av 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älpkubectl apply -f
av kommandot . I följande exempelClusterResourcePlacement
skapar du ett objekt med namnetcrp
och användermy-namespace
namnområdet med enPickAll
placeringsprincip för att sprida namnområdet till alla medlemskluster: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
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
Resultatet bör se ut ungefär så här:
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE crp 2 True 2 True 2 10s
Visa information om objektet
crp
med hjälpkubectl describe crp
av kommandot . I följande exempel beskrivs objektetClusterResourcePlacement
med namnetcrp
:kubectl describe clusterresourceplacement crp
Resultatet bör se ut ungefär så här:
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
Rensa resurser
Om du inte längre vill använda ClusterResourcePlacement
objektet kan du ta bort det med hjälp kubectl delete
av kommandot . I följande exempel tas ClusterResourcePlacement
objektet med namnet crp
:
kubectl delete clusterresourceplacement crp
Relaterat innehåll
Mer information om resursspridning finns i följande resurser:
Azure Kubernetes Service