Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak pomocí rozmístění prostředků clusteru v Azure Kubernetes Fleet Manager nasadit úlohy do clusterů ve flotile.
Požadavky
- Pokud nemáte účet Azure, vytvořte si bezplatný účet před tím, než začnete.
- Přečtěte si koncepční přehled propagace prostředků, a abyste porozuměli konceptům a terminologii používaným v tomto článku.
- Potřebujete Fleet Manager s hub clusterem 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í ClusterResourcePlacementu k umístění prostředků do členských clusterů
Objekt ClusterResourcePlacement se vytvoří v clusteru centra a slouží k šíření prostředků do členských clusterů. Určuje prostředky k propagaci 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 se zásadou umístění PickAll.
Další informace najdete v tématu umístění prostředků pomocí prostředku clusteru Azure Kubernetes Fleet Manager a v dokumentaci k open-source projektu KubeFleet.
- Vytvořte obor názvů, který umístíte na členské klastry:
kubectl create namespace my-namespace
- Vytvořte
ClusterResourcePlacementobjekt a použijte ho pro cluster centra Fleet Manageru. V následujícím příkladu jeClusterResourcePlacementpojmenovanýdistribute-my-namespacepoužit k nasazení oboru názvůmy-namespacedo všech členských clusterů pomocí zásad umístěníPickAll.
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
Aplikujte toto na cluster centra Fleet Manager tím, že vydáte příkaz kubectl apply -f distribute-my-namespace.yaml, přičemž použijete název souboru, který jste vytvořili, místo distribute-my-namespace.yaml.
- Zkontrolujte průběh distribuce zdrojů.
kubectl get clusterresourceplacement distribute-my-namespace
Výstup by měl vypadat podobně jako v následujícím příkladu:
NAME GEN SCHEDULED SCHEDULEDGEN APPLIED APPLIEDGEN AGE
distribute-my-namespace 2 True 2 True 2 10s
- Zobrazení podrobností o objektu umístění:
kubectl describe clusterresourceplacement distribute-my-namespace
Výstup by měl vypadat podobně jako v následujícím příkladu:
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
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 distribute-my-namespace:
kubectl delete clusterresourceplacement distribute-my-namespace
Související obsah
Další informace o propagaci zdrojů najdete v následujících zdrojích:
- Vysvětlení výstupu stavu umístění prostředků
- Inteligentní umístění prostředků Kubernetes napříč clustery na základě vlastností členských clusterů
- Řízení vytěsnění a narušení při umísťování prostředků v clusteru
- Definování strategie nasazení pro umístění prostředků clusteru
- Nejčastější dotazy k umístění prostředků clusteru
- Dokumentace k open-source KubeFleetu
Azure Kubernetes Service