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.
NodePort: Vytvoří mapování portů na podkladovém uzlu, které aplikaci umožní přímý přístup s IP adresou a portem uzlu.
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.
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 Local
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.
Místní platforma Azure také pomáhá zjednodušit virtuální sítě pro AKS v místních clusterech Azure 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 Local. Další informace najdete v tématu Koncepty sítí uzlů.
- 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 místním nasazení AKS v Azure 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: Jedná se o místního poskytovatele cloudu Azure, který umožňuje vytváření a správu virtualizovaného prostředí hostujícího Kubernetes v místním místním clusteru Azure nebo clusteru Windows Serveru. Síťový model následovaný místním clusterem Azure nebo clusteru s Windows Serverem 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 Local 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 Local. Další informace o AKS v místních konceptech Azure najdete v následujících článcích: