Šíření prostředků z clusteru centra Fleet Manageru (Fleet) Azure Kubernetes do členských clusterů
Tento článek obsahuje přehled o tom, jak rozšířit prostředky z clusteru centra Fleet Manageru (Fleet) Azure Kubernetes na členské clustery.
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 rychlém startu.
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Potřebujete prostředek Fleet s clusterem rozbočovače 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.
- Potřebujete přístup k rozhraní Kubernetes API clusteru centra. Pokud nemáte přístup, přečtěte si téma o rozhraní Kubernetes API clusteru centra Access Fleet Hub.
ClusterResourcePlacement
Rozšíření prostředků do členských clusterů pomocí rozhraní API
Objekt ClusterResourcePlacement
rozhraní API slouží k šíření prostředků z clusteru centra do členských clusterů. Objekt ClusterResourcePlacement
rozhraní API 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ů. Objekt ClusterResourcePlacement
rozhraní API se vytvoří v clusteru centra a slouží k šíření prostředků do č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 Šíření prostředků Kubernetes z clusteru centra do členských clusterů a opensourcové dokumentace k fleetu.
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. Následující příkladClusterResourcePlacement
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ředků. 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 výstupu:
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 výstupu:
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
pomocí příkazu odstranit. Následující příklad odstraní ClusterResourcePlacement
objekt s názvem crp
:
kubectl delete clusterresourceplacement crp
Další kroky
Další informace o šíření prostředků najdete v následujících zdrojích informací:
Azure Kubernetes Service