Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du använder Azure Kubernetes Fleet Manager-klusterresursplacering för att distribuera arbetsbelastningar mellan kluster i en flotta.
Förutsättningar
- Om du inte har något Azure-konto skapar du ett kostnadsfritt 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 Fleet Manager med ett navkluster 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ända ClusterResourcePlacement för att placera resurser i medlemskluster
Objektet ClusterResourcePlacement 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 medlemsklusterer med hjälp av ClusterResourcePlacement objektet och en PickAll placeringspolicy.
Mer information finns i resursplacering med hjälp av Azure Kubernetes Fleet Manager-klusterresursplacering och kubeFleet-dokumentation med öppen källkod.
- Skapa ett namnområde som ska placeras på medlemskluster:
kubectl create namespace my-namespace
- Skapa ett
ClusterResourcePlacementobjekt och tillämpa på Fleet Manager-hubbklustret. I följande exempel används ettClusterResourcePlacementsom heterdistribute-my-namespaceför att distribuera ett namnområdemy-namespacetill alla klustermedlemmar med hjälp avPickAllplaceringsprincip.
apiVersion: placement.kubernetes-fleet.io/v1
kind: ClusterResourcePlacement
metadata:
name: distribute-my-namespace
spec:
resourceSelectors:
- group: ""
kind: Namespace
version: v1
name: my-namespace
policy:
placementType: PickAll
Tillämpa detta på Fleet Manager-hubbklustret genom att utfärda kubectl apply -f distribute-my-namespace.yaml, med namnet på filen som du skapade i stället för distribute-my-namespace.yaml.
- Kontrollera förloppet för resursspridningen:
kubectl get clusterresourceplacement distribute-my-namespace
Din utdata bör likna det följande exemplet:
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE
distribute-my-namespace 2 True 2 True 2 10s
- Visa information om placeringsobjektet:
kubectl describe clusterresourceplacement distribute-my-namespace
Din utdata bör likna det följande exemplet:
Name: distribute-my-namespace
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 raderas objektet ClusterResourcePlacement som heter distribute-my-namespace.
kubectl delete clusterresourceplacement distribute-my-namespace
Relaterat innehåll
Mer information om resursspridning finns i följande resurser:
- Förstå utdata för resursplaceringsstatus.
- Intelligent kubernetes-resursplacering mellan kluster baserat på medlemsklusters egenskaper.
- Kontroll av utestängning och störningar vid placering av klusterresurser.
- Definiera en distributionsstrategi för en klusterresursplacering.
- Vanliga frågor och svar om placering av klusterresurser.
- KubeFleet-dokumentation med öppen källkod.
Azure Kubernetes Service