Co to jest Azure Container Linux (ACL) dla Azure Kubernetes Service (AKS)?

W tym artykule przedstawiono omówienie Azure Container Linux (ACL), niezmiennego, zoptymalizowanego pod kątem kontenera systemu operacyjnego dla Azure Kubernetes Service (AKS). ACL wywodzi się z projektu Flatcar Container Linux i bazuje na sprawdzonej, niezmiennej architekturze stawiającej kontenery na pierwszym miejscu, wzbogaconej o pakiety Azure Linux, obsługę serwisową i integrację z platformą. Dzięki temu ACL może pozostawać w ścisłej zgodności z rozwojem projektu Flatcar, a jednocześnie spełniać wymagania Azure dotyczące środowiska produkcyjnego, bezpieczeństwa i zgodności. Aby dowiedzieć się więcej o systemie Flatcar Container Linux, zobacz dokumentację flatcar.

ACL jest ogólnie dostępne jako opcja systemu operacyjnego w AKS od wersji 1.34. Pule węzłów ACL można wdrożyć w nowym klastrze AKS lub dodać je do istniejących klastrów.

Note

ACL to ogólnodostępna wersja systemu Flatcar Container Linux dla AKS, która weszła do publicznej wersji zapoznawczej w listopadzie 2025 r. Funkcje systemu OS Guard (wersja zapoznawcza), takie jak integralność kodu z mechanizmem Integrity Policy Enforcement (IPE), zostaną włączone do ACL w przyszłej wersji, po czym system OS Guard (wersja zapoznawcza) zostanie wycofany. Jeśli już dziś potrzebujesz funkcji OS Guard, zalecamy dalsze korzystanie z rozwiązania OS Guard i przejście na ACL, gdy te funkcje będą dostępne.

Korzyści wynikające z używania listy ACL w usłudze AKS

Benefit Description
Wbudowana niezmienność w celu zapewnienia większego bezpieczeństwa Niezmienność katalogu /usr, wymuszana przez jądro, weryfikuje integralność obrazu systemu operacyjnego podczas rozruchu i w czasie wykonywania. Ten projekt pomaga zablokować nieautoryzowane zmiany, zanim będą mogły wpłynąć na klaster i zmniejszyć ryzyko naruszenia na poziomie systemu operacyjnego.
Minimalna powierzchnia ataku ACL zawiera tylko komponenty wymagane do uruchamiania kontenerów. Dzięki zmniejszeniu rozmiaru i złożoności systemu operacyjnego lista ACL minimalizuje liczbę pakietów, usług i potencjalnych punktów wejścia dostępnych dla osób atakujących i upraszcza zarządzanie zabezpieczeniami.
Automatyczne aktualizacje obrazu węzła ACL dostarcza cotygodniowe aktualizacje w postaci obrazów, które obejmują najnowsze poprawki zabezpieczeń i błędów. Takie podejście zapewnia spójność i aktualność wersji systemu operacyjnego węzła w klastrze oraz zmniejsza narażenie na znane luki w zabezpieczeniach.
Zaufanie łańcucha dostaw Opiera się na Azure podpisanych pakietach systemu Linux i procesach łańcucha dostaw, zapewniając jasne pochodzenie składników systemowych.
Integracja z funkcjami zabezpieczeń platformy Azure Natywna obsługa zaufanego uruchamiania i bezpiecznego rozruchu zapewnia mierzoną ochronę rozruchu i zaświadczania.
Przezroczystość typu open source Flatcar, a także wiele podstawowych technologii (dm-verity i SELinux) są nadrzędne lub open source, a Microsoft ma narzędzia i wkład w obsługę tych funkcji.

Główne funkcje ACL

Następujące kluczowe funkcje wyróżniają ACL jako wzmocniony system operacyjny zoptymalizowany pod kątem kontenerów dla AKS:

  • Niezmienność: katalog "/usr" jest instalowany jako wolumin tylko do odczytu chroniony przez dm-verity. W czasie wykonywania jądro sprawdza poprawność podpisanego skrótu głównego w celu wykrywania i blokowania manipulowania
  • Obowiązkowa kontrola dostępu za pomocą narzędzia SELinux: lista ACL zawiera seLinux w celu wymuszania obowiązkowych zasad kontroli dostępu, które ograniczają procesy, które mogą uzyskiwać dostęp do poufnych zasobów systemowych. SeLinux działa domyślnie w trybie wymuszania.
  • Zaufane uruchamianie i bezpieczny rozruch: lista ACL wymaga zaufanego uruchamiania z bezpiecznym rozruchem i modułem vTPM, aby zapewnić integralność łańcucha rozruchu przed załadowaniem systemu operacyjnego. Jest to osiągane przy użyciu ujednoliconego obrazu jądra (UKI), który łączy jądro, initramfs i wiersz polecenia jądra w jeden podpisany artefakt. Podczas rozruchu UKI jest mierzony i rejestrowany w vTPM, zapewniając integralność od najwcześniejszego etapu.
  • Obsługa węzłów GPU NVIDIA: ACL obsługuje pule węzłów wyposażone w układy GPU NVIDIA w architekturze AMD64, umożliwiając uruchamianie obciążeń HPC i AI/ML w usłudze AKS z wykorzystaniem wzmocnionego systemu operacyjnego zoptymalizowanego pod kątem kontenerów. ACL nie obsługuje architektur ARM64 dla pul węzłów z obsługą GPU.
  • Obsługa architektur AMD64 i ARM64: ACL jest dostępna w usłudze AKS zarówno dla architektury AMD64, jak i ARM64.
  • Suwerenne bezpieczeństwo łańcucha dostaw: ACL dziedziczy bezpieczne potoki kompilacji systemu Azure Linux oraz podpisane ujednolicone obrazy jądra (UKI).
  • Automatyczna aprowizacja węzłów: ACL obsługuje automatyczną aprowizację węzłów (NAP).

Nieobsługiwane funkcje

ACL obecnie nie obsługuje następujących funkcji:

Jeśli istniejący klaster korzysta z którejkolwiek z nieobsługiwanych funkcji, dodanie do niego puli węzłów ACL może nie być możliwe.

Plan rozwoju funkcji

Azure Linux publikuje plan rozwoju funkcji, który zawiera funkcje będące w trakcie opracowywania oraz dostępne w ramach ogólnej dostępności (GA) i publicznej wersji zapoznawczej.

Migracje i aktualizacje systemu operacyjnego z użyciem list ACL

Usługa AKS obsługuje migrację istniejących pul węzłów do ACL przy użyciu migracji SKU systemu operacyjnego w miejscu lub przez utworzenie nowych pul węzłów ACL. Aby uzyskać szczegółowe instrukcje dotyczące migracji, kwestie do rozważenia oraz instrukcje wycofania, zobacz Migrowanie istniejących węzłów do ACL.

ACL dla wersjonowania usługi AKS

ACL for AKS publikuje co tydzień obrazy węzłów AKS. Przechowywanie wersji jest zgodne z formatem opartym na dacie usługi AKS (na przykład: 202506.13.0). ACL obecnie obsługuje tylko aktualizacje pełnego obrazu węzła.

Możesz sprawdzić dostępne obrazy węzłów w informacjach o wydaniu i wyświetlić nodeImageVersion dla uruchomionego klastra za pomocą polecenia az aks nodepool list. Przykład:

az aks nodepool list --resource-group <resource-group-name> --cluster-name <aks-cluster-name> --query '[].{name: name, nodeImageVersion: nodeImageVersion}'

Przykładowy wynik:

[
{
    "name": "nodes",
    "nodeImageVersion": "AKSAzureContainerLinux-202606.01.0"
}
]

Aby rozpocząć korzystanie z ACL w usłudze AKS, zobacz następujące zasoby: