Omówienie izolacji Podów w usłudze Azure Kubernetes Service (AKS)

W miarę jak klastry AKS są skalowane i obsługują obciążenia pochodzące od wielu zespołów lub dzierżawców, współdzielona infrastruktura może utrudniać izolację. Może być potrzebna silniejsza izolacja, aby zapobiec zakłócaniu przewidywalnych obciążeń przez obciążenia intensywnie korzystające z zasobów lub obciążenia o skokowym charakterze. Może być również konieczne odizolowanie poufnych obciążeń w celu spełnienia wymagań dotyczących zabezpieczeń.

Aby spełnić te wymagania, możesz odizolować obciążenia za pomocą strategii izolacji logicznej lub fizycznej. W przypadku izolacji logicznej użyj przestrzeni nazw platformy Kubernetes , aby oddzielić zasoby i wdrożenia. Przestrzenie nazw współdzielą bazową infrastrukturę klastra, więc nie zapewniają tego samego poziomu fizycznej izolacji co oddzielne klastry. Chociaż oddzielne klastry zapewniają granicę fizyczną, ta strategia może zwiększyć koszty, gdy klastry nie używają pełnej pojemności.

Izolacja zasobników w usłudze AKS umożliwia uruchamianie obciążeń roboczych w oddzielnych lekkich maszynach wirtualnych zasobników. Każda VM zasobnika zapewnia granicę izolacji zasobów obliczeniowych: obciążenie robocze działa z własnym jądrem gościa i jest odizolowane od jądra hosta oraz od obciążeń roboczych w innych VM zasobników.

Piaskownicowanie podów jest oparte na projekcie open source Kata Containers.

Ważne

Granica maszyny wirtualnej poda zapewnia wyłącznie izolację zasobów obliczeniowych. Nie izoluje ona płaszczyzny sterowania usługi AKS, magazynu ani ścieżek danych ani akcji wykonywanych przez użytkowników z dostępem administratora klastra. Sama piaskownica zasobnika nie zapewnia pełnej wielodostępności. W przypadku wdrożenia wielodzierżawnego zapoznaj się ze wskazówkami usługi AKS dotyczącymi rozwiązań wielodzierżawnych i zastosuj wymagane mechanizmy kontroli dotyczące tożsamości, sieci, magazynowania i nadzoru.

Architektura i składniki

Piaskownicowanie podów używa środowiska uruchomieniowego Kata Containers do utworzenia lekkiej maszyny wirtualnej dla podu dla każdego podu objętego piaskownicowaniem. Poniższy schemat pokazuje, jak komponenty po stronie hosta tworzą odizolowaną maszynę wirtualną poda i zarządzają nią oraz jak komponenty po stronie gościa uruchamiają obciążenie robocze.

  • W manifeście zasobnika wybierz runtimeClassName: kata-vm-isolation środowisko uruchomieniowe Kata Containers.
  • Containerd wywołuje shim Kata (containerd-shim-kata-v2) zamiast standardowego shima środowiska uruchomieniowego.
  • Shim Kata uruchamia monitor maszyny wirtualnej Cloud Hypervisor (VMM), który tworzy VM poda z oddzielnym jądrem gościa i agentem Kata.
  • Agent Kata tworzy kontenery i procesy obciążeń wewnątrz maszyny wirtualnej poda oraz zarządza nimi.
  • Po usunięciu maszyny wirtualnej poda shim Kata zamyka ją i zwraca jej zasoby hostowi kontenera.

Korzyści i przypadki użycia

Izolacja podów w piaskownicy oddziela każdy pod uruchomiony w piaskownicy w lekkiej maszynie wirtualnej podu z własnym jądrem gościa. Ta granica obliczeniowa oddziela obciążenie od jądra hosta i obciążeń na innych maszynach wirtualnych zasobników. Połącz izolację zasobnika z mechanizmami kontroli, takimi jak zasady sieciowe i Azure Policy, aby ograniczyć ryzyko sieciowe i związane z ładem, którego nie obejmuje granica izolacji maszyny wirtualnej zasobnika. Aby uzyskać wskazówki dotyczące wybierania kontrolek dla wdrożeń wielodostępnych, zobacz Wskazówki dotyczące usługi AKS dla rozwiązań wielodostępnych.

Typowe przypadki użycia

Izolacja poda może pomóc w:

  • Uruchamiaj obciążenia różnych dzierżawców w tym samym klastrze AKS, zapewniając jednocześnie oddzielną granicę izolacji zasobów obliczeniowych dla każdego podu działającego w piaskownicy.
  • Izoluj niezaufane obciążenia robocze od jądra systemu hosta i obciążeń roboczych w innych maszynach wirtualnych podów, nadal korzystając ze współdzielonej pojemności klastra.
  • Chroń poufne obciążenia lub obciążenia o wysokiej wartości przed obciążeniami uruchomionymi na innych maszynach wirtualnych podów.
  • Zmniejsz wpływ obciążeń intensywnie korzystających z zasobów lub obciążeń skokowych na inne izolowane zasobniki, ustawiając żądania i limity CPU oraz pamięci dla maszyny wirtualnej każdego zasobnika.
  • Ogranicz zakres skutków awarii obciążenia roboczego do maszyny wirtualnej jego podu.

Izolacja obciążeń

Zrzut ekranu przedstawiający diagram architektury ilustrujący izolację obciążeń roboczych w mechanizmie piaskownicy podów AKS.

Piaskownicowanie podów umożliwia uruchamianie obciążeń na współdzielonych węzłach klastra przy zachowaniu oddzielnego poziomu izolacji obliczeniowej dla każdego izolowanego poda.

Możesz zadeklarować żądania zasobów i limity dla obciążeń. Usługa AKS stosuje wartości domyślne podczas ich pomijania. VM zasobnika ogranicza zasobochłonne obciążenie robocze do zasobów procesora i pamięci przydzielonych tej maszynie wirtualnej. Jeśli obciążenie powoduje niepowodzenie maszyny wirtualnej zasobnika, granica izolacji obliczeniowej chroni obciążenia na innych maszynach wirtualnych zasobników przed tym niepowodzeniem.

Elastyczność

Możesz uruchamiać izolowane i standardowe pody w tym samym klastrze. Ta elastyczność pozwala stosować izolację maszyn wirtualnych dla podów tylko do tych obciążeń, które tego wymagają.

Składniki typu open source

Izolacja podów wykorzystuje komponenty open source, w tym monitor maszyn wirtualnych (VMM) Cloud Hypervisor oraz środowisko uruchomieniowe Kata Containers. Otwarty proces rozwoju zapewnia przejrzystość w zakresie komponentów izolacji i umożliwia społeczności ich weryfikację. Architektura oddziela również jądro gościa na każdej maszynie wirtualnej zasobnika od jądra hosta Azure Linux.

Migrowanie istniejących obciążeń

W przypadku podstawowego wdrożenia dodaj klasę środowiska uruchomieniowego Kata do istniejącej specyfikacji poda, aby uruchomić obciążenie robocze w maszynie wirtualnej poda. Ta zmiana manifestu nie gwarantuje zachowania identycznego jak w zasobniku korzystającym ze standardowego środowiska uruchomieniowego runc. Przed migracją zweryfikuj sposób działania obciążenia i jego zgodność z funkcjami Kubernetes oraz uwzględnij wymagania dotyczące zasobów i narzut maszyny wirtualnej poda. Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące izolacji Podów.

Dalsze kroki