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 ResourcePlacement rozhraní API, které umožňuje jemnou kontrolu nad prostředky Kubernetes omezené oborem názvů napříč členskými clustery s využitím Azure Kubernetes Fleet Manager.
Důležité
Funkce Azure Kubernetes Fleet Manageru ve verzi Preview jsou dostupné na samoobslužné bázi s výslovným souhlasem. Ukázky jsou poskytovány "jak jsou" a "podle aktuální dostupnosti" a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Verze Preview Azure Kubernetes Fleet Manageru jsou částečně pokryty zákaznickou podporou s vynaložením maximálního úsilí. Proto tyto funkce nejsou určené pro produkční použití.
Přehled
ResourcePlacement je rozhraní API s oborem názvů, které umožňuje dynamický výběr a šíření prostředků s oborem názvů s více clustery. Poskytuje precizní kontrolu nad tím, jak jsou specifické prostředky v rámci prostoru názvů distribuovány napříč členskými clustery ve flotile.
Důležité
ResourcePlacement používá rozhraní API verze placement.kubernetes-fleet.io/v1beta1 a je momentálně v testovací verzi. Některé funkce uvedené v tomto článku, například selectionScope v ClusterResourcePlacement, jsou také součástí rozhraní API v1beta1 a nejsou k dispozici v rozhraní API v1.
Klíčové charakteristiky:
-
Obor názvů:
ResourcePlacementObjekt i prostředky, které spravuje, existují ve stejném oboru názvů. - Selektivní: Může cílit na konkrétní prostředky podle typu, názvu nebo popisků místo celých oborů názvů.
-
Deklarativní: Používá stejné vzory umístění jako
ClusterResourcePlacementpro konzistentní chování.
A ResourcePlacement se skládá ze tří základních komponent:
- Selektory prostředků: Definujte, které prostředky s oborem názvů se mají zahrnout.
-
Zásady umístění: Určení cílových clusterů pomocí
PickAll,PickFixedneboPickNstrategií. - Strategie zavedení: Řídí, jak se změny šíří napříč vybranými clustery.
Kdy použít ResourcePlacement
ResourcePlacement je ideální pro scénáře vyžadující podrobnou kontrolu nad prostředky vymezeným oborem názvů:
- Selektivní distribuce prostředků: Nasaďte konkrétní objekty ConfigMap, tajné kódy nebo služby, aniž by to ovlivnilo celý obor názvů.
- Multitenantní prostředí: Umožňují různým týmům spravovat své prostředky nezávisle ve sdílených oborech názvů.
- Správa konfigurace: Distribuce konfigurací specifických pro prostředí napříč různými prostředími clusteru
- Dodržování předpisů a zásady správného řízení: Použijte různé zásady pro různé typy prostředků v rámci stejného oboru názvů.
- Postupné zavádění: Bezpečně nasaďte aktualizace prostředků napříč clustery se strategiemi zajišťujícími nulový výpadek.
V prostředích s více clustery se úlohy často skládají z prostředků s oborem clusteru i prostředků s oborem názvů, které je potřeba distribuovat napříč různými clustery. I když ClusterResourcePlacement (CRP) efektivně zpracovává prostředky v rozsahu clusteru, celé obory názvů a jejich obsah, existují scénáře, ve kterých potřebujete podrobnější kontrolu nad prostředky vymezeným oborem názvů v rámci existujících oborů názvů.
ResourcePlacement (RP) byla navržena tak, aby tuto mezeru vyřešila tím, že poskytuje:
- Správa prostředků v oboru názvů: Cílí na konkrétní prostředky v rámci oboru názvů, aniž by to mělo vliv na celý obor názvů.
- Provozní flexibilita: Umožňuje týmům nezávisle spravovat různé prostředky ve stejném prostoru názvů.
- Doplňková funkce: Spolupracuje s CRP, aby poskytla kompletní řešení pro správu zdrojů s více clusterů.
Poznámka:
ResourcePlacement lze použít společně s ClusterResourcePlacement v režimu pouze pro obor názvů. CRP můžete například použít k nasazení oboru názvů, zatímco RP pro detailní správu konkrétních prostředků, jako jsou ConfigMapy specifické pro prostředí nebo Secrets v rámci tohoto oboru názvů.
Vzory použití jmenných prostorů z reality
I když CRP předpokládá, že obory názvů představují hranice aplikací, vzory použití v reálném světě jsou často složitější. Organizace často používají obory názvů jako hranice týmů místo hranic aplikací, což vede k několika problémům, které ResourcePlacement přímo řeší:
Obory názvů s více aplikacemi: V mnoha organizacích obsahuje jeden obor názvů více nezávislých aplikací vlastněných stejným týmem. Tyto aplikace můžou mít:
- Různé požadavky na životní cyklus (jedna aplikace může potřebovat časté aktualizace, zatímco jiná zůstává stabilní).
- Různé potřeby umístění clusteru (vývoj vs. produkční aplikace).
- Nezávislé požadavky na škálování a prostředky
- Oddělte požadavky na dodržování předpisů nebo zásady správného řízení.
Jednotlivá rozhodnutí o plánování: Mnoho úloh, zejména úloh AI/ML, vyžaduje individuální rozhodnutí o plánování:
- Úlohy AI: Úlohy strojového učení se často skládají z krátkodobých úloh náročných na prostředky, které je potřeba naplánovat na základě dostupnosti prostředků clusteru, dostupnosti GPU nebo umístění dat.
- Dávkové úlohy: Různé dávkové úlohy v rámci stejného oboru názvů můžou cílit na různé typy clusteru na základě výpočetních požadavků.
Kompletní řízení aplikačního týmu: ResourcePlacement poskytuje týmům aplikací přímou kontrolu nad umístěním prostředků bez nutnosti zásahu týmu platformy:
- Samoobslužné operace: Týmy můžou spravovat vlastní strategie distribuce prostředků.
- Nezávislé cykly nasazení: Různé aplikace v rámci oboru názvů můžou mít nezávislé plány zavedení.
- Podrobné funkce přepsání: Týmy můžou přizpůsobit konfigurace prostředků na každém clusteru, aniž by to mělo vliv na jiné aplikace v rámci názvů.
Tento podrobný přístup zajišťuje, že ResourcePlacement se může přizpůsobit různým organizačním strukturám a vzorům úloh a současně zachovat jednoduchost a výkon architektury plánování flotily.
Hlavní rozdíly mezi ResourcePlacementem a ClusterResourcePlacement
Následující tabulka uvádí klíčové rozdíly mezi ResourcePlacement a ClusterResourcePlacement:
| Aspekt | ResourcePlacement (RP) | ClusterResourcePlacement (CRP) |
|---|---|---|
| Scope | Pouze prostředky s oborem názvů | Prostředky v rámci clusteru (zejména pojmenované prostory a jejich obsah) |
| zdroj | Objekt rozhraní API s oborem názvů | Objekt rozhraní API s clusterovým oborem |
| Hranice výběru | Omezeno na prostředky ve stejném oboru názvů jako rp | Může vybrat libovolný prostředek v rozsahu clusteru. |
| Typické případy použití | Úlohy AI/ML, individuální pracovní zátěže, specifické objekty ConfigMap/Tajné objekty, vyžadující nezávislé rozhodnutí o umístění | Sady aplikací, celé obory názvů, zásady pro celý cluster |
| Vlastnictví týmu | Můžou je spravovat vlastníci a vývojáři oboru názvů. | Obvykle je spravováno operátory platformy. |
Obě ResourcePlacement a ClusterResourcePlacement sdílejí stejné základní funkce pro všechny ostatní aspekty, které nejsou uvedené v tabulce rozdílů.
Práce s ClusterResourcePlacement
ResourcePlacement je navržen tak, aby spolupracoval s ClusterResourcePlacement (CRP) a poskytoval kompletní řešení pro správu více clusterů. Pochopení tohoto vztahu je zásadní pro efektivní správu vozového parku.
Požadavky na jmenný prostor
Důležité
ResourcePlacement prostředky s oborem názvů lze umístit pouze do clusterů, které již mají cílový obor názvů. Doporučujeme použít ClusterResourcePlacement pro vytvoření oboru názvů.
Typický pracovní postup:
-
Správce platformy: Používá
ClusterResourcePlacementk nasazení jmenných prostorů v celé flotile. -
Týmy aplikací: Slouží
ResourcePlacementke správě konkrétních prostředků v rámci těchto zavedených názvových prostorů.
Následující příklady ukazují, jak koordinovat CRP a RP:
Poznámka:
Následující příklady používají placement.kubernetes-fleet.io/v1beta1 verzi rozhraní API. Toto selectionScope: NamespaceOnly pole je náhledová funkce dostupná ve v1beta1 a není dostupná v rozhraní API verze 1.
Správce platformy: Nejprve vytvořte obor názvů pomocí ClusterResourcePlacement:
apiVersion: placement.kubernetes-fleet.io/v1beta1
kind: ClusterResourcePlacement
metadata:
name: app-namespace-crp
spec:
resourceSelectors:
- group: ""
kind: Namespace
name: my-app
version: v1
selectionScope: NamespaceOnly # only namespace itself is placed, no resources within the namespace
policy:
placementType: PickAll # If placement type is not PickAll, the application teams needs to know what are the clusters they can place their applications.
Aplikační tým: Pak spravujte konkrétní prostředky v rámci jmenného prostoru pomocí ResourcePlacement:
apiVersion: placement.kubernetes-fleet.io/v1beta1
kind: ResourcePlacement
metadata:
name: app-configs-rp
namespace: my-app
spec:
resourceSelectors:
- group: ""
kind: ConfigMap
version: v1
labelSelector:
matchLabels:
app: my-application
policy:
placementType: PickFixed
clusterNames:
- cluster1
- cluster2
Osvědčené postupy
Při použití ResourcePlacement se službou ClusterResourcePlacement postupujte podle těchto osvědčených postupů:
-
Nejprve vytvořte obory názvů: Před vytvořením
ResourcePlacementobjektů vždy zajistěte, aby se obory názvů nasazovaly prostřednictvím CRP. - Monitorování závislostí: Pomocí monitorování fleetu před nasazením závislých bodů obnovení na úrovni oboru názvů ověřte, že jsou V pořádku.
- Koordinace zásad: Zarovnejte zásady umístění CRP a RP, aby nedocházelo ke konfliktům (například pokud CRP umístí obor názvů do clusterů A, B, C, RP může cílit na libovolnou podmnožinu těchto clusterů).
- Hranice týmu: Použijte CRP pro prostředky spravované platformou (obory názvů, RBAC) a rp pro prostředky spravované aplikací (konfigurace aplikací, tajné kódy).
Tento koordinovaný přístup zajišťuje, aby ResourcePlacement zajistilo flexibilitu, kterou týmy potřebují, a zároveň zachovává základní infrastrukturu spravovanou operátory platformy.
Výběr, umístění a zavedení prostředků
ResourcePlacement používá stejné vzory umístění jako ClusterResourcePlacement:
-
Typy umístění:
PickAll,PickFixedaPickNstrategie fungují stejně pro obě rozhraní API. - Strategie zavedení: Řídí, jak se aktualizace šíří napříč clustery se stejnými mechanismy kumulativních aktualizací.
-
Stav a pozorovatelnost: Monitorování průběhu nasazení pomocí
kubectl describe resourceplacement <name> -n <namespace>. - Pokročilé funkce: Používejte tolerance, přetížení prostředků, omezení rozložení topologie a pravidla afinity.
Hlavní rozdíl je v rozsahu výběru prostředků . Zatímco ClusterResourcePlacement obvykle vybírá celé obory názvů a jejich obsah, ResourcePlacement poskytuje jemně odstupňovanou kontrolu nad jednotlivými prostředky v oboru názvů.
Úplné podrobnosti o těchto možnostech najdete v dokumentaci ClusterResourcePlacement.
Další kroky
- Použití ResourcePlacementu k nasazení prostředků s oborem názvů napříč několika clustery
- Použití ClusterResourcePlacement k nasazení prostředků na úrovni clusteru
- Umístění prostředků v rámci více clusterů pomocí umístění prostředků v clusteru
- Použijte přepsání k přizpůsobení prostředků s oborem názvů
- Definování strategie nasazení pro umístění prostředků
- Nejčastější dotazy k umístění prostředků clusteru
Azure Kubernetes Service