Sdílet prostřednictvím


Nasazení prostředků s oborem názvů pomocí ResourcePlacementu (Preview)

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ů: ResourcePlacement Objekt 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 ClusterResourcePlacement pro 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, PickFixednebo PickN strategií.
  • 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:

  1. Správce platformy: Používá ClusterResourcePlacement k nasazení jmenných prostorů v celé flotile.
  2. Týmy aplikací: Slouží ResourcePlacement ke 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 ResourcePlacement objektů 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, PickFixeda PickN strategie 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