Architektura i obciążenia klastra Kubernetes dla usługi AKS włączone przez usługę Azure Arc

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

Azure Kubernetes Service (AKS) w usługach Azure Stack HCI i Windows Server to platforma kontenerów klasy korporacyjnej Kubernetes obsługiwana przez usługę Azure Stack HCI. Obejmuje on platformę Kubernetes obsługiwaną przez firmę Microsoft, specjalnie skompilowany host kontenera systemu Windows i host kontenera z systemem Linux obsługiwany przez firmę Microsoft, który ma na celu proste środowisko zarządzania wdrożeniem i cyklem życia.

W tym artykule przedstawiono podstawowe składniki infrastruktury Kubernetes, takie jak płaszczyzna sterowania, węzły i pule węzłów. Zasoby obciążeń, takie jak zasobniki, wdrożenia i zestawy, są również wprowadzane wraz z sposobem grupowania zasobów w przestrzenie nazw.

Architektura klastra Kubernetes

Platforma Kubernetes jest podstawowym składnikiem usługi AKS włączonym przez usługę Azure Arc. Usługa AKS używa zestawu wstępnie zdefiniowanych konfiguracji do efektywnego wdrażania klastrów Kubernetes i skalowalności.

Operacja wdrażania tworzy wiele maszyn wirtualnych z systemem Linux lub Windows i łączy je razem w celu utworzenia klastrów Kubernetes.

Uwaga

Aby zwiększyć niezawodność systemu, jeśli korzystasz z wielu udostępnionych woluminów klastra (CSV) w klastrze, domyślnie dane maszyny wirtualnej są automatycznie rozłożone na wszystkie dostępne woluminy CSV w klastrze. Gwarantuje to, że aplikacje przetrwają w przypadku awarii woluminów CSV. Dotyczy to tylko nowych instalacji (nie uaktualnień).

Wdrożony system jest gotowy do odbierania standardowych obciążeń Kubernetes, skalowania tych obciążeń, a nawet skalowania liczby maszyn wirtualnych oraz liczby klastrów w górę i w dół zgodnie z potrzebami.

Klaster Azure Kubernetes Service ma następujące składniki:

  • Klaster zarządzania (znany również jako host usługi AKS) udostępnia podstawowy mechanizm orkiestracji i interfejs do wdrażania i zarządzania jednym lub więcej klastrów obciążeń.
  • Klastry obciążeń (nazywane również klastrami docelowymi) to miejsca, w których wdrażane są konteneryzowane aplikacje.

Ilustracja przedstawiająca architekturę techniczną Azure Kubernetes Service w usługach Azure Stack HCI i Windows Server.

Zarządzanie usługą AKS włączoną przez usługę Arc

Usługę AKS można zarządzać przy użyciu następujących opcji zarządzania:

  • Windows Admin Center oferuje intuicyjny interfejs użytkownika dla operatora Kubernetes do zarządzania cyklem życia klastrów.
  • Moduł programu PowerShell ułatwia pobieranie, konfigurowanie i wdrażanie usługi AKS. Moduł programu PowerShell obsługuje również wdrażanie i konfigurowanie innych klastrów obciążeń oraz ponowne konfigurowanie istniejących.

Klaster zarządzania

Podczas tworzenia klastra Kubernetes klaster zarządzania jest tworzony i konfigurowany automatycznie. Ten klaster zarządzania jest odpowiedzialny za aprowizowanie klastrów obciążeń i zarządzanie nimi, w których działają obciążenia. Klaster zarządzania zawiera następujące podstawowe składniki platformy Kubernetes:

  • Serwer interfejsu API: serwer interfejsu API jest sposobem uwidocznienia podstawowych interfejsów API platformy Kubernetes. Ten składnik zapewnia interakcję z narzędziami do zarządzania, takimi jak Windows Admin Center, moduły programu PowerShell lub kubectl.
  • Moduł równoważenia obciążenia: moduł równoważenia obciążenia to pojedyncza dedykowana maszyna wirtualna z systemem Linux z regułą równoważenia obciążenia dla serwera interfejsu API klastra zarządzania.

Klaster obciążeń

Klaster obciążeń to wdrożenie platformy Kubernetes o wysokiej dostępności przy użyciu maszyn wirtualnych z systemem Linux na potrzeby uruchamiania składników płaszczyzny sterowania Kubernetes i węzłów roboczych systemu Linux. Maszyny wirtualne oparte na systemie Windows Server Core są używane do ustanawiania węzłów roboczych systemu Windows. Może istnieć co najmniej jeden klaster obciążenia zarządzany przez jeden klaster zarządzania.

Składniki klastra obciążenia

Klaster obciążeń ma wiele składników, które opisano w poniższych sekcjach.

Płaszczyzna sterowania

  • Serwer interfejsu API: serwer interfejsu API umożliwia interakcję z interfejsem API Kubernetes. Ten składnik zapewnia interakcję z narzędziami do zarządzania, takimi jak Windows Admin Center, moduły programu PowerShell lub kubectl.
  • Etcd: Etcd to rozproszony magazyn klucz-wartość, który przechowuje dane wymagane do zarządzania cyklem życia klastra. Przechowuje stan płaszczyzny sterowania.

Moduł równoważenia obciążenia

Moduł równoważenia obciążenia to maszyna wirtualna z systemem Linux i HAProxy + KeepAlive, która zapewnia usługi o zrównoważonym obciążeniu dla klastrów obciążeń wdrożonych przez klaster zarządzania. Dla każdego klastra obciążenia usługa AKS dodaje co najmniej jedną maszynę wirtualną modułu równoważenia obciążenia. Każda usługa Kubernetes typu LoadBalancer utworzona w klastrze obciążenia ostatecznie tworzy regułę równoważenia obciążenia na maszynie wirtualnej.

Węzły robocze

Do uruchamiania aplikacji i usług pomocniczych potrzebny jest węzeł Kubernetes. Klaster obciążenia usługi AKS ma co najmniej jeden węzeł roboczy. Węzły procesu roboczego działają jako maszyny wirtualne, które uruchamiają składniki węzła Kubernetes i hostuje zasobniki i usługi tworzące obciążenie aplikacji.

Istnieją podstawowe składniki obciążenia Platformy Kubernetes, które można wdrożyć w klastrach obciążeń usługi AKS, takich jak zasobniki i wdrożenia.

Strąków

Platforma Kubernetes używa zasobników do uruchamiania wystąpienia aplikacji. Zasobnik reprezentuje pojedyncze wystąpienie aplikacji. Zazwyczaj zasobniki mają mapowanie 1:1 z kontenerem, chociaż istnieją zaawansowane scenariusze, w których zasobnik może zawierać wiele kontenerów. Te zasobniki z wieloma kontenerami są zaplanowane razem w tym samym węźle i umożliwiają kontenerom udostępnianie powiązanych zasobów. Aby uzyskać więcej informacji, zobacz Cykl życia zasobników Kubernetes i zasobników Kubernetes.

Wdrożenia

Wdrożenie reprezentuje co najmniej jeden identyczny zasobnik zarządzany przez kontroler wdrażania platformy Kubernetes. Wdrożenie definiuje liczbę replik (zasobników) do utworzenia, a harmonogram Kubernetes gwarantuje, że jeśli zasobniki lub węzły napotkają problemy, dodatkowe zasobniki są zaplanowane na węzłach w dobrej kondycji. Aby uzyskać więcej informacji, zobacz Wdrożenia platformy Kubernetes.

StatefulSets i DaemonSets

Kontroler wdrażania używa harmonogramu Kubernetes do uruchamiania danej liczby replik w dowolnym dostępnym węźle z dostępnymi zasobami. Takie podejście do korzystania z wdrożeń może być wystarczające w przypadku aplikacji bezstanowych, ale nie w przypadku aplikacji wymagających trwałej konwencji nazewnictwa lub magazynu. W przypadku aplikacji, które wymagają, aby replika istniała w każdym węźle (lub wybranych węzłach) w klastrze, kontroler wdrażania nie sprawdza, w jaki sposób repliki są dystrybuowane między węzłami.

  • StatefulSets: statefulSet jest podobny do wdrożenia w tym co najmniej jednym identycznym zasobniku są tworzone i zarządzane. Repliki w elemencie StatefulSet są zgodne z bezproblemowym, sekwencyjnym podejściem do wdrażania, skalowania, uaktualniania i kończenia. W przypadku zestawu StatefulSet (gdy repliki są zmieniane) konwencja nazewnictwa, nazwy sieci i magazyn są utrwalane. Repliki w zestawie StatefulSet są zaplanowane i uruchamiane we wszystkich dostępnych węzłach w klastrze Kubernetes. Jeśli musisz upewnić się, że co najmniej jeden zasobnik w zestawie działa w węźle, możesz zamiast tego użyć demonaSet. Aby uzyskać więcej informacji, zobacz Kubernetes StatefulSets.
  • DemononSets: w przypadku określonych potrzeb dotyczących zbierania lub monitorowania dzienników może być konieczne uruchomienie danego zasobnika na wszystkich lub wybranych węzłach. Zestaw DaemonSet jest ponownie używany do wdrażania jednego lub większej liczby identycznych zasobników, ale kontroler DaemonSet gwarantuje, że każdy określony węzeł uruchamia wystąpienie zasobnika. Aby uzyskać więcej informacji, zobacz Kubernetes DaemonSets.

Przestrzenie nazw

Zasoby platformy Kubernetes, takie jak zasobniki i wdrożenia, są logicznie zgrupowane w przestrzeni nazw. Te grupowania umożliwiają logiczne dzielenie klastrów obciążeń i ograniczanie dostępu do tworzenia, wyświetlania lub zarządzania zasobami. Można na przykład utworzyć przestrzenie nazw, aby oddzielić grupy biznesowe. Użytkownicy mogą korzystać tylko z zasobów znajdujących się w przypisanych przestrzeniach nazw. Aby uzyskać więcej informacji, zobacz Kubernetes namespaces (Przestrzenie nazw platformy Kubernetes).

Podczas tworzenia klastra Azure Kubernetes Service w usłudze AKS włączonej przez usługę Arc dostępne są następujące przestrzenie nazw:

  • wartość domyślna: przestrzeń nazw, w której zasobniki i wdrożenia są tworzone domyślnie, gdy nie podano żadnego. W mniejszych środowiskach można wdrażać aplikacje bezpośrednio w domyślnej przestrzeni nazw bez tworzenia dodatkowych separacji logicznych. W przypadku interakcji z interfejsem API Kubernetes, na przykład z kubectl get podsprogramem , domyślna przestrzeń nazw jest używana, gdy nie określono żadnej z nich.
  • kube-system: przestrzeń nazw, w której istnieją podstawowe zasoby, takie jak funkcje sieciowe, takie jak DNS i proxy, lub pulpit nawigacyjny Kubernetes. W tej przestrzeni nazw zazwyczaj nie wdraża się własnych aplikacji.
  • kube-public: przestrzeń nazw zwykle nie jest używana, ale może być używana do wyświetlania zasobów w całym klastrze i może być wyświetlana przez dowolnego użytkownika.

Wpisy tajne

Wpisy tajne platformy Kubernetes umożliwiają przechowywanie poufnych informacji i zarządzanie nimi, takich jak hasła, tokeny OAuth i klucze protokołu Secure Shell (SSH). Domyślnie platforma Kubernetes przechowuje wpisy tajne jako niezaszyfrowane ciągi zakodowane w formacie base64 i mogą być pobierane jako zwykły tekst przez każdego, kto ma dostęp do interfejsu API. Aby uzyskać więcej informacji, zobacz Kubernetes Secrets (Wpisy tajne platformy Kubernetes).

Trwałe woluminy

Wolumin trwały to zasób magazynu w klastrze Kubernetes, który został aprowizowany przez administratora lub dynamicznie aprowizowany przy użyciu klas magazynu. Aby użyć woluminów trwałych, zasobniki żądają dostępu przy użyciu funkcji PersistentVolumeClaim. Aby uzyskać więcej informacji, zobacz Trwałe woluminy.

Wdrożenia mieszanego systemu operacyjnego

Jeśli dany klaster obciążenia składa się zarówno z węzłów roboczych z systemem Linux, jak i Windows, musi być zaplanowany na system operacyjny, który może obsługiwać aprowizację obciążenia. Platforma Kubernetes oferuje dwa mechanizmy zapewniające, że obciążenia lądują na węzłach z docelowym systemem operacyjnym:

  • Selektor węzłów to proste pole w specyfikacji zasobnika, które ogranicza zasobniki do zaplanowania tylko na węzły w dobrej kondycji zgodne z systemem operacyjnym.
  • Defekty i tolerancje współpracują ze sobą, aby upewnić się, że zasobniki nie są zaplanowane na węzły przypadkowo. Węzeł może być "skażony", tak aby nie akceptował zasobników, które nie są jawnie tolerowane przez "tolerancję" w specyfikacji zasobnika.

Aby uzyskać więcej informacji, zobacz selektory węzłów i defekty oraz tolerancje.

Następne kroki

W tym artykule przedstawiono architekturę klastra usługi AKS włączoną przez usługę Azure Arc oraz składniki klastra obciążenia. Aby uzyskać więcej informacji na temat tych pojęć, zobacz następujące artykuły: