Šíření prostředků z clusteru centra Azure Kubernetes Fleet Manager do členských clusterů
Tento článek popisuje, jak rozšířit prostředky z clusteru centra Azure Kubernetes Fleet Manager (Kubernetes Fleet) do členských clusterů.
Požadavky
- Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
- Přečtěte si koncepční přehled šíření prostředků a seznamte se s koncepty a terminologií používanými v tomto článku.
- Potřebujete prostředek Kubernetes Fleet s clusterem centra a členskými clustery. Pokud ho nemáte, přečtěte si téma Vytvoření prostředku Azure Kubernetes Fleet Manageru a připojení k členským clusterům pomocí Azure CLI.
- Členské clustery musí být v clusteru rozbočovačů označené odpovídajícím způsobem, aby odpovídaly požadovaným kritériím výběru. Mezi příklady popisků patří oblast, prostředí, tým, zóny dostupnosti, dostupnost uzlu nebo cokoli jiného, co chcete.
- Potřebujete přístup k rozhraní Kubernetes API clusteru centra. Pokud nemáte přístup, přečtěte si téma Přístup k rozhraní API Kubernetes pro cluster centra Azure Kubernetes Fleet Manager.
Použití rozhraní API ClusterResourcePlacement k rozšíření prostředků do členských clusterů
Objekt ClusterResourcePlacement
rozhraní API se vytvoří v clusteru centra a slouží k šíření prostředků do členských clusterů. Určuje prostředky, které se mají rozšířit, a zásady umístění, které se mají použít při výběru členských clusterů. Tento příklad ukazuje, jak rozšířit obor názvů na členské clustery pomocí objektu ClusterResourcePlacement
rozhraní API se PickAll
zásadami umístění.
Další informace najdete v tématu Umístění prostředků Kubernetes z clusteru rozbočovače do členských clusterů a opensourcové dokumentace kubernetes Fleet.
Pomocí příkazu vytvořte obor názvů, který se umístí do členských clusterů
kubectl create namespace
. Následující příklad vytvoří obor názvů s názvemmy-namespace
:kubectl create namespace my-namespace
Vytvořte
ClusterResourcePlacement
objekt rozhraní API v clusteru centra, který rozšíří obor názvů do členských clusterů a nasadí hokubectl apply -f
pomocí příkazu. V následujícím příkladuClusterResourcePlacement
vytvoří objekt s názvemcrp
a použijemy-namespace
obor názvů se zásadouPickAll
umístění k rozšíření oboru názvů do všech členských clusterů: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
Pomocí příkazu zkontrolujte průběh šíření
kubectl get clusterresourceplacement
prostředku. Následující příklad zkontroluje stav objektuClusterResourcePlacement
s názvemcrp
:kubectl get clusterresourceplacement crp
Výstup by měl vypadat podobně jako v následujícím příkladu:
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE crp 2 True 2 True 2 10s
Pomocí příkazu zobrazte podrobnosti
crp
objektukubectl describe crp
. Následující příklad popisujeClusterResourcePlacement
objekt s názvemcrp
:kubectl describe clusterresourceplacement crp
Výstup by měl vypadat podobně jako v následujícím příkladu:
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
Vyčištění prostředků
Pokud už objekt nechcete používat ClusterResourcePlacement
, můžete ho kubectl delete
odstranit pomocí příkazu. Následující příklad odstraní ClusterResourcePlacement
objekt s názvem crp
:
kubectl delete clusterresourceplacement crp
Související obsah
Další informace o šíření prostředků najdete v následujících zdrojích informací:
Azure Kubernetes Service