Architektura clusteru Kubernetes a úlohy pro AKS povolené službou Azure Arc

Platí pro: AKS v Azure Stack HCI 22H2, AKS na Windows Serveru

Azure Kubernetes Service (AKS) v Azure Stack HCI a Windows Serveru je kontejnerová platforma Kubernetes na podnikové úrovni využívající Azure Stack HCI. Zahrnuje základní Kubernetes s podporou Microsoftu, účelového hostitele kontejnerů s Windows a hostitele kontejnerů Linux podporovaného Microsoftem s cílem mít jednoduché prostředí pro nasazení a správu životního cyklu.

Tento článek představuje základní komponenty infrastruktury Kubernetes, jako jsou řídicí rovina, uzly a fondy uzlů. Představí se také prostředky úloh, jako jsou pody, nasazení a sady, a také postup seskupení prostředků do oborů názvů.

Architektura clusteru Kubernetes

Kubernetes je základní komponentou AKS, kterou podporuje Azure Arc. AKS používá sadu předdefinovaných konfigurací k efektivnímu nasazení clusterů Kubernetes s ohledem na škálovatelnost.

Operace nasazení vytvoří několik virtuálních počítačů s Linuxem nebo Windows a spojí je, aby se vytvořily clustery Kubernetes.

Poznámka

Pokud v clusteru používáte více sdílených svazků clusteru,data virtuálních počítačů se ve výchozím nastavení automaticky rozdělí mezi všechny dostupné sdílené svazky clusteru v clusteru, aby se zlepšila spolehlivost systému. Tím se zajistí, že aplikace přežijí v případě výpadků sdíleného svazku clusteru. To platí jenom pro nové instalace (ne upgrady).

Nasazený systém je připravený přijímat standardní úlohy Kubernetes, škálovat tyto úlohy nebo dokonce škálovat počet virtuálních počítačů a počet clusterů podle potřeby nahoru a dolů.

Cluster Azure Kubernetes Service má následující komponenty:

  • Cluster pro správu (označovaný také jako hostitel AKS) poskytuje základní orchestrační mechanismus a rozhraní pro nasazení a správu jednoho nebo více clusterů úloh.
  • Clustery úloh (označované také jako cílové clustery) jsou místo, kde se nasazují kontejnerizované aplikace.

Obrázek znázorňující technickou architekturu Azure Kubernetes Service v Azure Stack HCI a Windows Serveru

Správa AKS povolené službou Arc

AKS můžete spravovat pomocí následujících možností správy:

  • Windows Admin Center nabízí pro operátora Kubernetes intuitivní uživatelské rozhraní pro správu životního cyklu clusterů.
  • Modul PowerShellu usnadňuje stahování, konfiguraci a nasazení AKS. Modul PowerShellu také podporuje nasazení a konfiguraci dalších clusterů úloh a překonfigurování existujících clusterů.

Cluster pro správu

Když vytvoříte cluster Kubernetes, automaticky se vytvoří a nakonfiguruje cluster pro správu. Tento cluster pro správu zodpovídá za zřizování a správu clusterů úloh, ve kterých úlohy běží. Cluster pro správu zahrnuje následující základní komponenty Kubernetes:

  • Server rozhraní API: Server rozhraní API je způsob, jakým se zveřejňují podkladová rozhraní API Kubernetes. Tato komponenta poskytuje interakci s nástroji pro správu, jako jsou Windows Admin Center, moduly PowerShellu nebo kubectl.
  • Nástroj pro vyrovnávání zatížení: Nástroj pro vyrovnávání zatížení je jeden vyhrazený virtuální počítač s Linuxem s pravidlem vyrovnávání zatížení pro server rozhraní API clusteru pro správu.

Cluster úloh

Cluster úloh je vysoce dostupné nasazení Kubernetes s využitím virtuálních počítačů s Linuxem pro spouštění komponent řídicí roviny Kubernetes a pracovních uzlů Linuxu. Virtuální počítače s Windows Serverem založené na jádru se používají k vytváření pracovních uzlů Windows. Jeden cluster pro správu může spravovat jeden nebo více clusterů úloh.

Komponenty clusteru úloh

Cluster úloh má mnoho komponent, které jsou popsány v následujících částech.

Řídicí rovina

  • Server rozhraní API: Server rozhraní API umožňuje interakci s rozhraním API Kubernetes. Tato komponenta poskytuje interakci s nástroji pro správu, jako jsou Windows Admin Center, moduly PowerShellu nebo kubectl.
  • Etcd: Etcd je distribuované úložiště klíč-hodnota, které ukládá data potřebná pro správu životního cyklu clusteru. Ukládá stav řídicí roviny.

Nástroj pro vyrovnávání zatížení

Nástroj pro vyrovnávání zatížení je virtuální počítač se systémem Linux a HAProxy + KeepAlive, který poskytuje služby s vyrovnáváním zatížení pro clustery úloh nasazené clusterem pro správu. Pro každý cluster úloh přidá AKS alespoň jeden virtuální počítač nástroje pro vyrovnávání zatížení. Každá služba Kubernetes typu LoadBalancer vytvořená v clusteru úloh nakonec vytvoří pravidlo vyrovnávání zatížení na virtuálním počítači.

Pracovní uzly

Ke spouštění aplikací a podpůrných služeb potřebujete uzel Kubernetes. Cluster úloh AKS má jeden nebo více pracovních uzlů. Pracovní uzly fungují jako virtuální počítače, na kterých běží komponenty uzlů Kubernetes a které hostují pody a služby, které tvoří úlohu aplikace.

Existují základní komponenty úloh Kubernetes, které je možné nasadit do clusterů úloh AKS, jako jsou pody a nasazení.

Lusky

Kubernetes používá pody ke spuštění instance vaší aplikace. Pod představuje jednu instanci vaší aplikace. Pody mají obvykle mapování 1:1 na kontejner, i když existují pokročilé scénáře, ve kterých může pod obsahovat více kontejnerů. Tyto vícekontejnerové pody jsou naplánované společně na stejném uzlu a umožňují kontejnerům sdílet související prostředky. Další informace najdete v tématu Životní cyklus podů Kubernetes a Kubernetes.

Nasazení

Nasazení představuje jeden nebo více identických podů spravovaných kontrolerem nasazení Kubernetes. Nasazení definuje počet replik (podů), které se mají vytvořit, a plánovač Kubernetes zajistí, aby se v případě problémů s pody nebo uzly na uzlech, které jsou v pořádku, naplánovali další pody. Další informace najdete v tématu Nasazení Kubernetes.

StatefulSets a DaemonSets

Kontroler nasazení používá plánovač Kubernetes ke spuštění daného počtu replik na libovolném dostupném uzlu s dostupnými prostředky. Tento přístup k použití nasazení může být dostatečný pro bezstavové aplikace, ale ne pro aplikace, které vyžadují trvalé zásady vytváření názvů nebo úložiště. U aplikací, které vyžadují, aby replika existovala na každém uzlu (nebo vybraných uzlech) v rámci clusteru, se řadič nasazení nedívá na to, jak se repliky mezi uzly distribuují.

  • StatefulSets: StatefulSet se podobá nasazení v tom, že se vytvoří a spravuje jeden nebo více identických podů. Repliky v StatefulSet se řídí elegantním a sekvenčním přístupem k nasazení, škálování, upgradům a ukončením. V případě statefulSet (jak se repliky přeplánovávají) se zásady vytváření názvů, názvy sítí a úložiště zachovají. Repliky v sadě StatefulSet jsou naplánované a běží na libovolném dostupném uzlu v clusteru Kubernetes. Pokud potřebujete zajistit, aby alespoň jeden pod v sadě běžel na uzlu, můžete místo toho použít daemonSet. Další informace najdete v tématu Stavové sady Kubernetes.
  • DaemonSets: Pro konkrétní potřeby shromažďování protokolů nebo monitorování může být nutné spustit daný pod na všech nebo vybraných uzlech. DaemonSet se znovu používá k nasazení jednoho nebo více identických podů, ale kontroler DaemonSet zajišťuje, že každý zadaný uzel spustí instanci podu. Další informace najdete v tématu DaemonSets Kubernetes.

Obory názvů

Prostředky Kubernetes, jako jsou pody a nasazení, se logicky seskupují do oboru názvů. Tato seskupení poskytují způsob, jak logicky rozdělit clustery úloh a omezit přístup k vytváření, zobrazení nebo správě prostředků. Můžete například vytvořit obory názvů pro oddělení obchodních skupin. Uživatelé můžou pracovat pouze s prostředky v jim přiřazených oborech názvů. Další informace najdete v tématu Obory názvů Kubernetes.

Když vytvoříte cluster Azure Kubernetes Service v AKS s povolenou službou Arc, jsou k dispozici následující obory názvů:

  • default: Obor názvů, ve kterém se ve výchozím nastavení vytvářejí pody a nasazení, pokud není k dispozici žádný. V menších prostředích můžete aplikace nasadit přímo do výchozího oboru názvů bez vytvoření dalších logických oddělení. Při interakci s rozhraním API Kubernetes, jako kubectl get podsje například , se použije výchozí obor názvů, pokud není zadaný žádný.
  • kube-system: obor názvů, ve kterém existují základní prostředky, jako jsou síťové funkce, jako jsou DNS a proxy, nebo řídicí panel Kubernetes. V tomto oboru názvů se obvykle nenasazují vlastní aplikace.
  • kube-public: Obor názvů se obvykle nepoužívá, ale můžete ho použít k tomu, aby byly prostředky viditelné v celém clusteru a mohl ho zobrazit libovolný uživatel.

Tajné kódy

Tajné kódy Kubernetes umožňují ukládat a spravovat citlivé informace, jako jsou hesla, tokeny OAuth a klíče SSH (Secure Shell). Ve výchozím nastavení Kubernetes ukládá tajné kódy jako nešifrované řetězce s kódováním Base64 a každý, kdo má přístup k rozhraní API, je může načíst jako prostý text. Další informace najdete v tématu Tajné kódy Kubernetes.

Trvalé svazky

Trvalý svazek je prostředek úložiště v clusteru Kubernetes, který byl zřízen správcem nebo dynamicky zřízen pomocí tříd úložiště. Pokud chcete použít trvalé svazky, pody požádají o přístup pomocí PersistentVolumeClaim. Další informace najdete v tématu Trvalé svazky.

Nasazení se smíšenými operačními systémem

Pokud se daný cluster úloh skládá z pracovních uzlů Linuxu i Windows, je potřeba ho naplánovat na operační systém, který podporuje zřizování úloh. Kubernetes nabízí dva mechanismy, které zajistí, aby úlohy přistály na uzlech s cílovým operačním systémem:

  • Selektor uzlů je jednoduché pole ve specifikaci podu, které omezuje, aby pody byly naplánovány pouze na uzly, které jsou v pořádku a odpovídají operačnímu systému.
  • Tainty a tolerance spolupracují, aby se zajistilo, že pody nejsou neúmyslně naplánovány na uzly. Uzel může být "obarvený" tak, že nepřijímá pody, které explicitně netolerují jeho taint prostřednictvím "tolerance" ve specifikaci podu.

Další informace najdete v tématu Selektory uzlů , tainty a tolerance.

Další kroky

V tomto článku jste se dozvěděli o architektuře clusteru AKS, kterou umožňuje Azure Arc, a o komponentách clusteru úloh. Další informace o těchto konceptech najdete v následujících článcích: