Schnellstart: Verteilen von Ressourcen aus einem Azure Kubernetes Fleet Manager (Fleet)-Hubcluster an Membercluster
In dieser Schnellstartanleitung erfahren Sie, wie Sie Ressourcen aus einem Azure Kubernetes Fleet Manager (Fleet)-Hubcluster an Membercluster verteilen.
Voraussetzungen
Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.
- Lesen Sie die konzeptionelle Übersicht über die Ressourcenverteilung, um die in dieser Schnellstartanleitung verwendeten Konzepte und Terminologie zu verstehen.
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Sie müssen über eine Fleet-Ressource mit einem Hubcluster und Mitgliedsclustern verfügen. Wenn Sie keins haben, lesen Sie Erstellen einer Azure Kubernetes Fleet Manager-Ressource und Einbinden von Mitgliedsclustern mithilfe der Azure CLI.
- Member-Cluster müssen entsprechend im Hub-Cluster beschriftet werden, um den gewünschten Auswahlkriterien zu entsprechen. Beispielbezeichnungen umfassen Region, Umgebung, Team, Verfügbarkeitszonen, Knotenverfügbarkeit oder andere gewünschte Elemente.
- Sie benötigen Zugriff auf die Kubernetes-API des Hubclusters. Wenn Sie keinen Zugriff haben, lesen Sie Zugreifen auf die Kubernetes-API der Fleet-Ressource mit Azure Kubernetes Fleet Manager.
Verwenden der ClusterResourcePlacement
-API zum Verteilen von Ressourcen an Membercluster
Das ClusterResourcePlacement
-API-Objekt wird verwendet, um Ressourcen aus einem Hubcluster an Membercluster zu verteilen. Das ClusterResourcePlacement
-API-Objekt gibt die Ressourcen an, die weitergegeben werden sollen, und die Platzierungsrichtlinie, die beim Auswählen von Memberclustern verwendet werden soll. Das ClusterResourcePlacement
-API-Objekt wird im Hubcluster erstellt und wird verwendet, um Ressourcen an Membercluster zu verteilen. In diesem Beispiel wird veranschaulicht, wie ein Namespace mithilfe des ClusterResourcePlacement
-API-Objekts mit einer PickAll
-Platzierungsrichtlinie an Membercluster verteilt wird.
Weitere Informationen finden Sie in Kubernetes-Ressourcenverteilung von Hubclustern zu Mitgliedsclustern und der Open-Source-Fleet-Dokumentation.
Erstellen Sie einen Namespace, der mithilfe des
kubectl create namespace
-Befehls in den Memberclustern platziert werden soll. Im folgenden Beispiel wird ein Namespace mit dem Namenmy-namespace
erstellt:kubectl create namespace my-namespace
Erstellen Sie ein
ClusterResourcePlacement
-API-Objekt im Hubcluster, um den Namespace an die Membercluster zu verteilen und mithilfe deskubectl apply -f
-Befehls bereitzustellen. Das folgende BeispielClusterResourcePlacement
erstellt ein Objekt namenscrp
und verwendet denmy-namespace
-Namespace mit einerPickAll
-Platzierungsrichtlinie, um den Namespace an alle Membercluster zu verteilen: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
Überprüfen Sie den Fortschritt der Ressourcenverteilung mithilfe des
kubectl get clusterresourceplacement
-Befehls. Im folgenden Beispiel wird der Status desClusterResourcePlacement
-Objekts namenscrp
überprüft:kubectl get clusterresourceplacement crp
Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE crp 2 True 2 True 2 10s
Zeigen Sie die Details des
crp
-Objekts mithilfe deskubectl describe crp
-Befehls an. Im folgenden Beispiel wird dasClusterResourcePlacement
-Objekt namenscrp
beschrieben:kubectl describe clusterresourceplacement crp
Ihre Ausgabe sollte in etwa dem folgendem Beispiel entsprechen:
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
Bereinigen von Ressourcen
Wenn Sie das ClusterResourcePlacement
-Objekt nicht mehr verwenden möchten, können Sie es mit dem kubectl delete
-Befehl löschen. Im folgenden Beispiel wird das ClusterResourcePlacement
-Objekt namens crp
gelöscht:
kubectl delete clusterresourceplacement crp
Nächste Schritte
Weitere Informationen zur Ressourcenverteilung finden Sie in den folgenden Artikeln:
Azure Kubernetes Service