Propagacja zasobów z klastra koncentratora Usługi Azure Kubernetes Fleet Manager (Fleet) do klastrów członkowskich
Ten artykuł zawiera omówienie propagacji zasobów z klastra koncentratora Usługi Azure Kubernetes Fleet Manager (Fleet) do klastrów członkowskich.
Wymagania wstępne
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
- Zapoznaj się z omówieniem koncepcyjnym propagacji zasobów, aby zrozumieć pojęcia i terminologię używaną w tym przewodniku Szybki start.
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Potrzebny jest zasób Fleet z klastrem centrum i klastrami członkowskimi. Jeśli go nie masz, zobacz Create an Azure Kubernetes Fleet Manager resource and join member clusters using 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 inne wymagane elementy.
- Potrzebujesz dostępu do interfejsu API kubernetes klastra koncentratora. Jeśli nie masz dostępu, zobacz Access Fleet Hub cluster Kubernetes API (Interfejs API kubernetes klastra usługi Access Fleet Hub).
Propagacja zasobów do klastrów członkowskich przy użyciu interfejsu ClusterResourcePlacement
API
Obiekt interfejsu ClusterResourcePlacement
API służy do propagowania zasobów z klastra koncentratora do klastrów członkowskich. Obiekt ClusterResourcePlacement
interfejsu API określa zasoby do propagowania i zasad umieszczania do użycia podczas wybierania klastrów członkowskich. Obiekt ClusterResourcePlacement
interfejsu API jest tworzony w klastrze centrum i służy do propagowania zasobów do klastrów członkowskich. W tym przykładzie pokazano, jak propagować przestrzeń nazw do klastrów członkowskich przy użyciu obiektu interfejsu ClusterResourcePlacement
API z zasadami umieszczania PickAll
.
Aby uzyskać więcej informacji, zobacz Propagacja zasobów Kubernetes z klastra koncentratora do klastrów członkowskich i dokumentacja floty typu open source.
Utwórz przestrzeń nazw do umieszczania w klastrach członkowskich przy użyciu
kubectl create namespace
polecenia . Poniższy przykład tworzy przestrzeń nazw o nazwiemy-namespace
:kubectl create namespace my-namespace
ClusterResourcePlacement
Utwórz obiekt interfejsu API w klastrze centrum, aby propagować przestrzeń nazw do klastrów członkowskich i wdrożyć go przy użyciukubectl apply -f
polecenia . Poniższy przykładClusterResourcePlacement
tworzy obiekt o nazwiecrp
i używamy-namespace
przestrzeni nazw z zasadamiPickAll
umieszczania do propagowania przestrzeni nazw do wszystkich klastrów członkowskich: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
Sprawdź postęp propagacji zasobów przy użyciu
kubectl get clusterresourceplacement
polecenia . Poniższy przykład sprawdza stanClusterResourcePlacement
obiektu o nazwiecrp
:kubectl get clusterresourceplacement crp
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE crp 2 True 2 True 2 10s
Wyświetl szczegóły
crp
obiektu przy użyciukubectl describe crp
polecenia . W poniższym przykładzieClusterResourcePlacement
opisano obiekt o nazwiecrp
:kubectl describe clusterresourceplacement crp
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
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
Czyszczenie zasobów
Jeśli nie chcesz już używać ClusterResourcePlacement
obiektu, możesz go usunąć za pomocą kubectl delete
polecenia . Poniższy przykład usuwa ClusterResourcePlacement
obiekt o nazwie crp
:
kubectl delete clusterresourceplacement crp
Następne kroki
Aby dowiedzieć się więcej na temat propagacji zasobów, zobacz następujące zasoby:
Azure Kubernetes Service