Sdílet prostřednictvím


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

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

Azure Kubernetes Service (AKS) v Azure Local a Windows Server je podniková kontejnerová platforma Kubernetes založená na Azure Local. Zahrnuje jádro Kubernetes podporované Microsoftem, účelově sestaveného hostitele kontejnerů Windows a hostitele kontejnerů s podporou Microsoftu s Linuxem 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ů. Zavádějí se také prostředky úloh, jako jsou pody, nasazení a sady, spolu s tím, jak seskupit prostředky do oborů názvů.

Architektura clusteru Kubernetes

Kubernetes je základní komponenta AKS povolená službou Azure Arc. AKS používá sadu předdefinovaných konfigurací k efektivnímu nasazení clusterů Kubernetes a s ohledem na škálovatelnost.

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

Poznámka:

Pokud ve svém clusteru spouštíte více sdílených svazků clusteru (CSV), aby se zlepšila spolehlivost systému, automaticky se data virtuálního počítače rozdělují mezi všechny dostupné sdílené svazky clusteru v clusteru. 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í mechanismus orchestrace a rozhraní pro nasazení a správu jednoho nebo více clusterů úloh.
  • Clustery úloh (označované také jako cílové clustery) jsou místem , kde se nasazují kontejnerizované aplikace.

Obrázek znázorňující technickou architekturu služby Azure Kubernetes Service na místním Azure 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í intuitivní uživatelské rozhraní pro operátora Kubernetes pro správu životního cyklu clusterů.
  • Modul PowerShellu usnadňuje stahování, konfiguraci a nasazování AKS. Modul PowerShellu také podporuje nasazení a konfiguraci jiných clusterů úloh a překonfigurování existujících clusterů úloh.

Cluster pro správu

Při vytváření clusteru Kubernetes se automaticky 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 běží úlohy. Cluster pro správu obsahuje následující základní komponenty Kubernetes:

  • Server rozhraní API: Server rozhraní API je způsob zveřejnění základních 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 pomocí 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 se systémem Windows Server Core se používají k vytváření pracovních uzlů Windows. Jeden nebo více clusterů úloh můžete spravovat jedním clusterem pro správu.

Součásti clusteru úloh

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

Řídicí rovina

  • Server rozhraní API: Server api umožňuje interakci s rozhraním Kubernetes API. 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á ke správě životního cyklu clusteru. Ukládá stav řídicí roviny.

Load Balancer

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í. Jakákoli služba Kubernetes typu LoadBalancer vytvořeného v clusteru úloh nakonec na virtuálním počítači vytvoří pravidlo vyrovnávání zatížení.

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 hostují pody a služby, které tvoří úlohu aplikace.

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

Pody

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 s kontejnerem, i když existují pokročilé scénáře, ve kterých pod může obsahovat více kontejnerů. Tyto pody s více kontejnery 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 o životním cyklu 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í, že pokud dojde k problémům podů nebo uzlů, naplánují se na uzly v pořádku 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žívání nasazení může stačit pro bezstavové aplikace, ale ne pro aplikace, které vyžadují trvalou konvenci pojmenování nebo úložiště. U aplikací, které vyžadují, aby na každém uzlu (nebo vybraných uzlech) v clusteru existovala replika, se kontroler nasazení nedívá na to, jak se repliky distribuují napříč uzly.

  • StatefulSets: StatefulSet se podobá nasazení v tom, že se vytvoří a spravuje jeden nebo více identických podů. Repliky ve stavové sadě se řídí elegantním, sekvenčním přístupem k nasazení, škálování, upgradům a ukončením. Se stavovou sadou (jako repliky se přeplánují) zásady vytváření názvů, názvy sítí a úložiště zachovají. Repliky ve stavové sadě jsou naplánované a běží na jakémkoli dostupném uzlu v clusteru Kubernetes. Pokud potřebujete zajistit, aby se na uzlu spustil alespoň jeden pod ve vaší sadě, můžete místo toho použít daemonSet. Další informace najdete v tématu Kubernetes StatefulSets.
  • DaemonSets: Pro konkrétní potřeby shromažďování nebo monitorování protokolů možná budete muset 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ů. Tyto 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.

Při vytváření clusteru Azure Kubernetes Service v AKS povoleném 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ů, aniž byste museli vytvářet další logické oddělení. Při interakci s rozhraním API Kubernetes, například s kubectl get pods, se použije výchozí obor názvů, pokud není zadán žádný.
  • kube-system: obor názvů, kde existují základní prostředky, jako jsou síťové funkce, jako jsou DNS a proxy server, nebo řídicí panel Kubernetes. V tomto oboru názvů se obvykle nenasazují vlastní aplikace.
  • kube-public: Obor názvů se obvykle nepoužívá, ale dá se použít k tomu, aby prostředky byly viditelné v celém clusteru a dají se zobrazit libovolným uživatelem.

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). Kubernetes ve výchozím nastavení ukládá tajné kódy jako nešifrované řetězce s kódováním base64 a dají se načíst jako prostý text kýmkoli, kdo má přístup k rozhraní API. Další informace najdete v tématu Tajné kódy Kubernetes.

Trvalé svazky

Trvalý svazek je prostředek úložiště v clusteru Kubernetes, který buď zřídil správce, nebo dynamicky zřízený pomocí tříd úložiště. Pokud chcete použít trvalé svazky, pody požadují přístup pomocí PersistentVolumeClaim. Další informace naleznete v tématu Trvalé svazky.

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

Pokud se daný cluster úloh skládá z linuxových i pracovních uzlů Windows, musí být naplánovaný na operační systém, který může podporovat zřizování úlohy. Kubernetes nabízí dva mechanismy, které zajišťují, aby úlohy přistály na uzlech s cílovým operačním systémem:

  • Selektor uzlu je jednoduché pole ve specifikaci podu, které omezuje pody pouze na uzly, které jsou v pořádku, které odpovídají operačnímu systému.
  • Taints a tolerace spolupracují, aby se zajistilo, že pody nejsou naplánované na uzly neúmyslně. Uzel může být "tainted" 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ů a tainty a tolerance.

Další kroky

V tomto článku jste se seznámili s architekturou clusteru AKS povolenou službou Azure Arc a komponentami clusteru úloh. Další informace o těchto konceptech najdete v následujících článcích: