Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano, jak korzystać z funkcji umieszczania zasobów klastrów w usłudze Azure Kubernetes Fleet Manager, aby wdrażać obciążenia w klastrach we flocie.
Wymagania wstępne
- Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Zapoznaj się z koncepcyjnym omówieniem propagacji zasobów , aby zrozumieć pojęcia i terminologię używaną w tym artykule.
- Potrzebujesz Menadżera floty z klastrem centralnym i klastrami członkowskimi. Jeśli go nie masz, zobacz Create an Azure Kubernetes Fleet Manager resource and join member clusters by using the Azure CLI (Tworzenie zasobu usługi Azure Kubernetes Fleet Manager i dołączanie do klastrów członkowskich przy użyciu interfejsu wiersza polecenia platformy Azure).
- Klastry członkowskie muszą być odpowiednio oznaczone w klastrze koncentratora, aby spełniały żądane kryteria wyboru. Przykładowe etykiety obejmują region, środowisko, zespół, strefy dostępności, dostępność węzła lub dowolne inne elementy.
- Potrzebujesz dostępu do interfejsu API Kubernetes klastra hub. Jeśli nie masz dostępu, zobacz Uzyskiwanie dostępu do interfejsu API Kubernetes dla klastra centrum zarządzania flotą Azure Kubernetes.
Użyj ClusterResourcePlacement do umieszczania zasobów w klastrach członkowskich
Obiekt ClusterResourcePlacement jest tworzony w klastrze koncentratora i służy do propagowania zasobów do klastrów członkowskich. Określa zasoby, które mają być propagowane, oraz politykę rozmieszczania, która ma być stosowana podczas wybierania klastrów członkowskich. W tym przykładzie pokazano, jak propagować przestrzeń nazw do klastrów członkowskich, używając obiektu ClusterResourcePlacement z polityką rozmieszczania PickAll.
Aby uzyskać więcej informacji, zobacz umieszczanie zasobów przy użyciu funkcji umieszczania zasobów klastra usługi Azure Kubernetes Fleet Manager oraz dokumentację rozwiązania KubeFleet typu open source.
- Utwórz przestrzeń nazw, która ma zostać umieszczana w klastrach członkowskich:
kubectl create namespace my-namespace
- Utwórz obiekt
ClusterResourcePlacementi zastosuj go do klastra centrum zarządzania flotą. W poniższym przykładzieClusterResourcePlacemento nazwiedistribute-my-namespacejest używany do wdrażania przestrzeni nazwmy-namespacewe wszystkich klastrach członkowskich przy użyciu polityki umieszczaniaPickAll.
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
Zastosuj to do centrum klastra Fleet Manager, wydając kubectl apply -f distribute-my-namespace.yaml polecenie, używając nazwy utworzonego pliku zamiast distribute-my-namespace.yaml.
- Sprawdź postęp propagacji zasobu:
kubectl get clusterresourceplacement distribute-my-namespace
Dane wyjściowe powinny wyglądać mniej więcej tak jak w tym przykładzie:
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE
distribute-my-namespace 2 True 2 True 2 10s
- Wyświetl szczegóły obiektu umieszczania:
kubectl describe clusterresourceplacement distribute-my-namespace
Dane wyjściowe powinny wyglądać mniej więcej tak jak w tym przykładzie:
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
Uprzątnij zasoby
Jeśli nie chcesz już używać ClusterResourcePlacement obiektu, możesz go usunąć za pomocą kubectl delete polecenia . Poniższy przykład usuwa obiekt ClusterResourcePlacement o nazwie distribute-my-namespace.
kubectl delete clusterresourceplacement distribute-my-namespace
Treści powiązane
Aby dowiedzieć się więcej na temat propagacji zasobów, zobacz następujące zasoby:
- Informacje o danych wyjściowych stanu umieszczania zasobów.
- Inteligentne umieszczanie zasobów platformy Kubernetes między klastrami na podstawie właściwości klastrów członkowskich.
- Zarządzanie eksmisją i zakłóceniami rozmieszczenia zasobów w klastrze.
- Definiowanie strategii wdrażania dla przydziału zasobów klastra.
- Często zadawane pytania dotyczące umieszczania zasobów klastra.
- Dokumentacja rozwiązania KubeFleet typu open source.