Pojęcia dotyczące sieci kontenerów

Dotyczy: usługa AKS w usłudze Azure Stack HCI 22H2, AKS w systemie Windows Server

Składniki aplikacji muszą współpracować, aby przetwarzać swoje zadania w podejściu mikrousług opartych na kontenerach. Platforma Kubernetes udostępnia zasoby, które umożliwiają komunikację aplikacji i umożliwiają łączenie się z aplikacjami i udostępnianie aplikacji wewnętrznie lub zewnętrznie. Możesz równoważyć obciążenie aplikacji w celu tworzenia aplikacji o wysokiej dostępności.

Bardziej złożone aplikacje mogą wymagać konfiguracji ruchu przychodzącego na potrzeby kończenia połączenia SSL/TLS lub routingu wielu składników. Może być również konieczne ograniczenie przepływu ruchu sieciowego do zasobników i węzłów na potrzeby zabezpieczeń.

W tym artykule przedstawiono podstawowe pojęcia, które zapewniają sieć aplikacjom w usłudze AKS włączone przez usługę Arc:

  • Usługi Kubernetes
  • Kontroler ruchu przychodzącego
  • Zasady sieciowe

Usługi Kubernetes

Aby uprościć konfigurację sieci dla obciążeń aplikacji, platforma Kubernetes używa usług do logicznego grupowania zestawu zasobników i zapewnienia łączności sieciowej. Dostępne są następujące typy usług:

Adres IP klastra: tworzy wewnętrzny adres IP do użycia w klastrze Kubernetes. Użyj adresu IP klastra dla aplikacji tylko wewnętrznych, które obsługują inne obciążenia w klastrze.

Diagram przedstawiający przepływ ruchu ip klastra w klastrze usługi AKS

NodePort: tworzy mapowanie portów w węźle bazowym, który umożliwia aplikacji bezpośredni dostęp do adresu IP węzła i portu.

Diagram przedstawiający przepływ ruchu NodePort w klastrze usługi AKS

LoadBalancer: tworzy zasób modułu równoważenia obciążenia platformy Azure, konfiguruje zewnętrzny adres IP i łączy żądane zasobniki z pulą zaplecza modułu równoważenia obciążenia. Aby umożliwić klientom ruch do aplikacji, reguły równoważenia obciążenia są tworzone na żądanych portach.

Diagram przedstawiający przepływ ruchu Load Balancer w klastrze AKS-HCI

W przypadku innej kontroli i routingu ruchu przychodzącego można użyć kontrolera ruchu przychodzącego.

Uwaga

Podczas wdrażania klastra docelowego, który współudzieli sieć z innym klastrem docelowym, istnieje możliwość konfliktu adresów IP modułu równoważenia obciążenia. Może się to zdarzyć, jeśli wdrożysz dwa obciążenia korzystające z różnych portów w klastrach docelowych współużytkujących ten sam AksHciClusterNetwork obiekt. Ze względu na sposób przydzielania adresów IP i mapowań portów wewnątrz serwera proxy wysokiej dostępności może to prowadzić do zduplikowanego przypisania adresu IP. W takim przypadku jedno lub oba obciążenia mogą napotkać losowe problemy z łącznością sieciową do momentu ponownego wdrożenia obciążeń. Podczas ponownego wdrażania obciążeń można użyć tego samego portu, który powoduje, że każde obciążenie odbiera oddzielny adres IP usługi lub możesz ponownie wdrożyć obciążenia w klastrach docelowych, które używają różnych AksHciClusterNetwork obiektów.

ExternalName: tworzy określony wpis DNS, aby ułatwić dostęp do aplikacji. Adresy IP modułów równoważenia obciążenia i usług mogą być adresami wewnętrznymi lub zewnętrznymi w zależności od ogólnej konfiguracji sieci i mogą być przypisywane dynamicznie. Możesz też określić istniejący statyczny adres IP do użycia. Istniejący statyczny adres IP jest często powiązany z wpisem DNS. Wewnętrzne moduły równoważenia obciążenia są przypisane tylko do prywatnego adresu IP, więc nie można uzyskać do nich dostępu z Internetu.

Podstawy sieci platformy Kubernetes w usłudze Azure Stack HCI

Aby umożliwić dostęp do aplikacji lub składnikom aplikacji komunikowanie się ze sobą, platforma Kubernetes zapewnia warstwę abstrakcji sieci wirtualnej. Węzły kubernetes są połączone z siecią wirtualną i mogą zapewnić łączność przychodzącą i wychodzącą dla zasobników. Składnik kube-proxy uruchomiony w każdym węźle zapewnia te funkcje sieciowe.

W usłudze Kubernetes usługi logicznie grupuj zasobniki, aby umożliwić:

  • Bezpośredni dostęp za pośrednictwem pojedynczego adresu IP lub nazwy DNS i określonego portu.
  • Dystrybuowanie ruchu przy użyciu modułu równoważenia obciążenia między wieloma zasobnikami obsługującymi tę samą usługę lub aplikację.

Platforma Azure Stack HCI pomaga również uprościć sieć wirtualną dla usługi AKS w klastrach azure Stack HCI, zapewniając sieć "nakładki" w sposób wysoce dostępny. Podczas tworzenia klastra usługi AKS tworzymy również i konfigurujemy bazowy HAProxy zasób modułu równoważenia obciążenia. Podczas wdrażania aplikacji w klastrze Kubernetes adresy IP są konfigurowane dla zasobników i usług Kubernetes jako punktów końcowych w tym module równoważenia obciążenia.

Zasoby adresów IP

Aby uprościć konfigurację sieci dla obciążeń aplikacji, usługa AKS Arc przypisuje adresy IP do następujących obiektów we wdrożeniu:

  • Serwer interfejsu API klastra Kubernetes: serwer interfejsu API jest składnikiem płaszczyzny sterowania Kubernetes, która uwidacznia interfejs API Kubernetes. Serwer interfejsu API to fronton płaszczyzny sterowania Kubernetes. Statyczne adresy IP są zawsze przydzielane do serwerów interfejsów API niezależnie od bazowego modelu sieci.
  • Węzły Kubernetes (maszyny wirtualne): klaster Kubernetes składa się z zestawu maszyn roboczych, nazywanych węzłami, a węzły hostuje konteneryzowane aplikacje. Oprócz węzłów płaszczyzny sterowania każdy klaster ma co najmniej jeden węzeł roboczy. W przypadku klastra usługi AKS węzły Kubernetes są konfigurowane jako maszyny wirtualne. Te maszyny wirtualne są tworzone jako maszyny wirtualne o wysokiej dostępności w usłudze Azure Stack HCI, aby uzyskać więcej informacji, zobacz Pojęcia dotyczące sieci węzłów.
  • Usługi Kubernetes: w usłudze Kuberneteslogicznie grupuj adresy IP zasobników, aby umożliwić bezpośredni dostęp za pośrednictwem jednego adresu IP lub nazwy DNS na określonym porcie. Usługi mogą również dystrybuować ruch przy użyciu modułu równoważenia obciążenia. Statyczne adresy IP są zawsze przydzielane do usług Kubernetes niezależnie od bazowego modelu sieci.
  • Moduły równoważenia obciążenia HAProxy: HAProxy to moduł równoważenia obciążenia TCP/HTTP i serwer proxy, który rozprzestrzenia żądania przychodzące między wiele punktów końcowych. Każdy klaster obciążeń w usłudze AKS we wdrożeniu usługi Azure Stack HCI ma wdrożony i skonfigurowany jako wyspecjalizowana maszyna wirtualna.
  • Lokalna usługa w chmurze firmy Microsoft: jest to dostawca usług w chmurze Azure Stack HCI, który umożliwia tworzenie i zarządzanie zwirtualizowanym środowiskiem hostujących platformę Kubernetes w lokalnym klastrze usługi Azure Stack HCI lub klastrze systemu Windows Server. Model sieci, po którym następuje klaster usługi Azure Stack HCI lub Windows Server, określa metodę alokacji adresów IP używaną przez usługę Microsoft On-Premises Cloud Service. Aby dowiedzieć się więcej na temat pojęć związanych z siecią wdrożonych przez usługę Microsoft On-Premises Cloud Service, zobacz Pojęcia dotyczące sieci węzłów.

Sieci Kubernetes

W usłudze AKS w usłudze Azure Stack HCI można wdrożyć klaster, który używa jednego z następujących modeli sieciowych:

  • Sieć nakładki flannel — zasoby sieciowe są zwykle tworzone i konfigurowane podczas wdrażania klastra.
  • Sieć programu Project Calico — ten model oferuje dodatkowe funkcje sieciowe, takie jak zasady sieci i kontrola przepływu.

Obie implementacje sieci używają modelu konfiguracji sieci nakładki, który zapewnia przypisanie adresu IP, które jest odłączone od pozostałej części sieci centrum danych.

Aby dowiedzieć się więcej na temat sieci nakładek, zobacz Wprowadzenie: Sieć nakładki Kubernetes dla systemu Windows.

Aby uzyskać więcej informacji na temat wtyczki i zasad sieci Calico, zapoznaj się z wprowadzeniem do zasad sieci Calico.

Porównywanie modeli sieciowych

Flaneli

Flannel to warstwa sieci wirtualnej przeznaczona specjalnie dla kontenerów. Flannel tworzy sieć płaską, która nakłada sieć hosta. Wszystkie kontenery/zasobniki są przypisane do jednego adresu IP w tej sieci nakładki i komunikują się bezpośrednio, łącząc się ze sobą adresem IP.

Calico

Calico to rozwiązanie zabezpieczeń sieci typu open source i sieci dla kontenerów, maszyn wirtualnych i natywnych obciążeń opartych na hoście. Calico obsługuje wiele płaszczyzn danych, w tym: płaszczyznę danych eBPF systemu Linux, płaszczyznę danych sieci systemu Linux i płaszczyznę danych HNS systemu Windows.

Możliwości

Możliwość Flaneli Calico
Zasady sieciowe Nie Tak
Protokół IPv6 Nie Tak
Używane warstwy L2 (VxLAN) L2 (VxLAN)
Wdrażanie klastra w istniejącej lub nowej sieci wirtualnej Tak Tak
Obsługa systemu Windows Tak Tak
Pod-Pod połączenie Tak Tak
Połączenie zasobnika maszyny wirtualnej, maszyna wirtualna w tej samej sieci Nie Tak
Połączenie zasobnika maszyny wirtualnej, maszyna wirtualna w innej sieci Tak Tak
Usługi Kubernetes Tak Tak
Udostępnianie za pośrednictwem modułu równoważenia obciążenia Tak Tak
Sieci Wiele sieci w tym samym klastrze z demonem z wieloma demonami Wiele sieci w tym samym klastrze
Wdrożenie Linux: DaemonSet Linux: DaemonSet
Windows: Usługa Windows: Usługa
Wiersz polecenia brak calicoctl

Ważne

Obecnie domyślnym wyborem jest użycie Calico w trybie sieci nakładki. Aby włączyć usługę Flannel, użyj -primaryNetworkPlugin parametru New-AksHciCluster polecenia programu PowerShell i określ flannel jako wartość. Nie można zmienić tej wartości po wdrożeniu klastra i dotyczy zarówno węzłów klastra systemu Windows, jak i Linux.

Oto przykład:

New-AksHciCluster -name MyCluster -primaryNetworkPlugin 'flannel'

Następne kroki

W tym artykule opisano pojęcia dotyczące sieci kontenerów w węzłach usługi AKS w usłudze Azure Stack HCI. Aby uzyskać więcej informacji na temat usługi AKS w temacie Pojęcia dotyczące rozwiązania Azure Stack HCI, zobacz następujące artykuły: