Koncepty sítí kontejnerů

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

Komponenty aplikací musí spolupracovat na zpracování úloh v přístupu mikroslužeb založeném na kontejnerech. Kubernetes poskytuje prostředky, které umožňují komunikaci aplikací a umožňují se připojit k aplikacím a zpřístupnit je interně nebo externě. Můžete vyrovnávat zatížení aplikací a vytvářet aplikace s vysokou dostupností.

Složitější aplikace můžou vyžadovat konfiguraci příchozího přenosu dat pro ukončení protokolu SSL/TLS nebo směrování více komponent. Možná budete také muset omezit tok síťového provozu do podů a uzlů nebo mezi těmito pody a uzly kvůli zabezpečení.

Tento článek představuje základní koncepty, které poskytují sítě pro vaše aplikace v AKS s podporou Arc:

  • Služby Kubernetes
  • Kontroler příchozího přenosu dat
  • Zásady sítě

Služby Kubernetes

Pro zjednodušení konfigurace sítě pro aplikační úlohy používá Kubernetes služby k logickému seskupení sady podů a k zajištění síťového připojení. K dispozici jsou následující typy služeb:

IP adresa clusteru: Vytvoří interní IP adresu pro použití v rámci clusteru Kubernetes. Ip adresu clusteru použijte pro interní aplikace, které podporují jiné úlohy v rámci clusteru.

Diagram znázorňující tok provozu PROTOKOLU IP clusteru v clusteru AKS

NodePort: Vytvoří mapování portů na podkladovém uzlu, které aplikaci umožní přímý přístup s IP adresou a portem uzlu.

Diagram znázorňující tok provozu NodePort v clusteru AKS

LoadBalancer: Vytvoří prostředek nástroje pro vyrovnávání zatížení Azure, nakonfiguruje externí IP adresu a připojí požadované pody k back-endovému fondu nástroje pro vyrovnávání zatížení. Aby se provoz zákazníků dostal do aplikace, vytvoří se pravidla vyrovnávání zatížení na požadovaných portech.

Diagram znázorňující tok provozu nástroje pro vyrovnávání zatížení v clusteru AKS

Pro jiné řízení a směrování příchozího provozu můžete použít kontroler příchozího přenosu dat.

Poznámka:

Když nasadíte cílový cluster, který sdílí síť s jiným cílovým clusterem, dojde ke konfliktu IP adres nástroje pro vyrovnávání zatížení. K tomu může dojít v případě, že nasadíte dvě úlohy, které používají různé porty v cílových clusterech, které sdílejí stejný AksHciClusterNetwork objekt. Vzhledem ke způsobu přidělování IP adres a mapování portů uvnitř proxy serveru vysoké dostupnosti to může vést k duplicitnímu přiřazení IP adres. Pokud k tomu dojde, může jedna nebo obě úlohy narazit na náhodné problémy s připojením k síti, dokud úlohy znovu nenasadíte. Při opětovném nasazení úloh můžete použít buď stejný port, který způsobí, že každá úloha obdrží samostatnou IP adresu služby, nebo můžete úlohy znovu nasadit do cílových clusterů, které používají různé AksHciClusterNetwork objekty.

ExternalName: Vytvoří konkrétní položku DNS pro snadnější přístup k aplikacím. IP adresy pro nástroje pro vyrovnávání zatížení a služby můžou být interní nebo externí adresy v závislosti na celkovém nastavení sítě a dají se dynamicky přiřadit. Nebo můžete zadat existující statickou IP adresu, kterou chcete použít. Stávající statická IP adresa je často svázaná s položkou DNS. Interní nástroje pro vyrovnávání zatížení mají přiřazenou jenom privátní IP adresu, takže k nim není možné přistupovat z internetu.

Základy sítí Kubernetes v Azure Stack HCI

Pokud chcete povolit přístup k vašim aplikacím nebo komponentám aplikací komunikovat mezi sebou, poskytuje Kubernetes vrstvu abstrakce virtuálním sítím. Uzly Kubernetes jsou připojené k virtuální síti a můžou poskytovat příchozí a odchozí připojení podů. Komponenta kube-proxy spuštěná na každém uzlu poskytuje tyto síťové funkce.

V Kubernetes služby logicky seskupují pody tak, aby umožňovaly:

  • Přímý přístup přes jednu IP adresu nebo název DNS a konkrétní port.
  • Distribuujte provoz pomocí nástroje pro vyrovnávání zatížení mezi více podů hostujícími stejnou službu nebo aplikaci.

Platforma Azure Stack HCI také pomáhá zjednodušit virtuální sítě pro AKS v clusterech Azure Stack HCI tím, že poskytuje vysoce dostupnou síť. Při vytváření clusteru AKS také vytvoříme a nakonfigurujeme základní HAProxy prostředek nástroje pro vyrovnávání zatížení. Při nasazování aplikací v clusteru Kubernetes se IP adresy konfigurují pro vaše pody a služby Kubernetes jako koncové body v tomto nástroji pro vyrovnávání zatížení.

Prostředky IP adres

Aby se zjednodušila konfigurace sítě pro úlohy aplikací, AKS Arc přiřazuje IP adresy následujícím objektům v nasazení:

  • Server rozhraní API clusteru Kubernetes: Server rozhraní API je součástí řídicí roviny Kubernetes, která zveřejňuje rozhraní API Kubernetes. Server rozhraní API je front-end řídicí roviny Kubernetes. Statické IP adresy se vždy přidělují serverům rozhraní API bez ohledu na základní síťový model.
  • Uzly Kubernetes (virtuální počítače):: Cluster Kubernetes se skládá ze sady pracovních počítačů, označovaných jako uzly, a uzlů hostují kontejnerizované aplikace. Kromě uzlů řídicí roviny má každý cluster alespoň jeden pracovní uzel. V případě clusteru AKS jsou uzly Kubernetes nakonfigurované jako virtuální počítače. Tyto virtuální počítače se vytvářejí jako vysoce dostupné virtuální počítače v Azure Stack HCI. Další informace najdete v tématu Koncepty sítí node.
  • Služby Kubernetes: v Kubernetes , služby logicky seskupují IP adresy podů, aby umožňovaly přímý přístup přes jednu IP adresu nebo název DNS na konkrétním portu. Služby můžou také distribuovat provoz pomocí nástroje pro vyrovnávání zatížení. Statické IP adresy se vždy přidělují službám Kubernetes bez ohledu na základní síťový model.
  • Nástroje pro vyrovnávání zatížení HAProxy: HAProxy je nástroj pro vyrovnávání zatížení TCP/HTTP a proxy server, který rozděluje příchozí požadavky do více koncových bodů. Každý cluster úloh v nasazení AKS ve službě Azure Stack HCI má nasazený a nakonfigurovaný nástroj pro vyrovnávání zatížení HAProxy jako specializovaný virtuální počítač.
  • Místní cloudová služba Microsoftu: Toto je poskytovatel cloudu Azure Stack HCI, který umožňuje vytváření a správu virtualizovaného prostředí hostujícího Kubernetes v místním clusteru Azure Stack HCI nebo clusteru s Windows Serverem. Síťový model následovaný clusterem Azure Stack HCI nebo Windows Server určuje metodu přidělování IP adres používanou místní cloudovou službou Microsoftu. Další informace o konceptech sítí implementovaných místní cloudovou službou Microsoftu najdete v tématu Koncepty sítí uzlů.

Sítě Kubernetes

V AKS v Azure Stack HCI můžete nasadit cluster, který používá jeden z následujících síťových modelů:

  • Flannel Překryvné sítě – Síťové prostředky se obvykle vytvářejí a konfigurují při nasazení clusteru.
  • Sítě Project Calico – tento model nabízí další síťové funkce, jako jsou zásady sítě a řízení toku.

Obě implementace sítí používají model konfigurace překryvné sítě, který poskytuje přiřazení IP adres, které je odpojené od ostatních sítí datového centra.

Další informace o překryvných sítích najdete v tématu Úvod: Překryvné sítě Kubernetes pro Windows.

Další informace o modulu plug-in a zásadách sítě Calico najdete v tématu Začínáme se zásadami sítě Calico.

Porovnání síťových modelů

Flanel

Poznámka:

Flannel CNI byl vyřazen v prosinci 2023.

Flannel je vrstva virtuální sítě navržená speciálně pro kontejnery. Flannel vytvoří plochou síť, která překryjí síť hostitele. Všechny kontejnery/pody mají v této překryvné síti přiřazenou jednu IP adresu a komunikují přímo připojením k IP adrese druhé.

Kaliko

Calico je opensourcové řešení sítě a zabezpečení sítě pro kontejnery, virtuální počítače a nativní hostitelské úlohy. Calico podporuje více rovin dat, mezi které patří: rovina dat eBPF linuxu, rovina síťových dat Linuxu a rovina dat Windows HNS.

Možnosti

Schopnost Flanel Kaliko
Zásady sítě No Ano
IPv6 No Ano
Použité vrstvy L2 (VxLAN) L2 (VxLAN)
Nasazení clusteru v existující nebo nové virtuální síti Ano Yes
Podpora windows Ano Yes
Připojení pod-Pod Ano Yes
Připojení pod-VM, virtuální počítač ve stejné síti No Ano
Připojení pod-VM, virtuální počítač v jiné síti Ano Yes
Služby Kubernetes Ano Yes
Zveřejnění prostřednictvím nástroje pro vyrovnávání zatížení Ano Yes
Sítě Mnoho sítí ve stejném clusteru s více démony Mnoho sítí ve stejném clusteru
Nasazení Linux: DaemonSet Linux: DaemonSet
Windows: Služba Windows: Služba
Příkazový řádek Žádná calicoctl

Důležité

V současné době je výchozím výběrem použít Calico v překryvném síťovém režimu. Pokud chcete povolit Flannel, použijte -primaryNetworkPlugin parametr New-AksHciCluster příkazu PowerShellu a jako hodnotu zadejte flannel . Tuto hodnotu nelze po nasazení clusteru změnit a vztahuje se na uzly clusteru s Windows i Linuxem.

Příklad:

New-AksHciCluster -name MyCluster -primaryNetworkPlugin 'flannel'

Další kroky

Tento článek popisuje koncepty sítí pro kontejnery v uzlech AKS v Azure Stack HCI. Další informace o AKS v konceptech Azure Stack HCI najdete v následujících článcích: