Что такое Azure Container Linux (ACL) для службы Azure Kubernetes Service (AKS)?

В этой статье представлен обзор Azure Container Linux (ACL), неизменяемой оптимизированной для контейнера операционной системы (ОС) для Azure Kubernetes Service (AKS). ACL создан на базе проекта Flatcar Container Linux и опирается на проверенную, ориентированную на контейнеры неизменяемую архитектуру Flatcar, дополняя её пакетами Azure Linux, обслуживанием и интеграцией с платформой. Это позволяет ACL оставаться тесно согласованной с разработкой Flatcar в upstream, одновременно отвечая эксплуатационным требованиям Azure, а также требованиям безопасности и нормативного соответствия. Дополнительные сведения о Flatcar Container Linux см. в документации по Flatcar.

ACL общедоступен (GA) в качестве параметра ОС в AKS, начиная с AKS версии 1.34. Пулы узлов ACL можно развернуть в новом кластере AKS, добавить пулы узлов ACL в существующие кластеры и перенести существующие пулы узлов Linux в ACL.

Note

ACL — это общедоступный релиз Flatcar Container Linux для AKS, предварительная версия которого стала доступна в ноябре 2025 года. Функции OS Guard (предварительная версия), такие как целостность кода с применением политики целостности (IPE), в настоящее время не поддерживаются. Если вам нужны функции OS Guard сегодня, мы рекомендуем продолжать использовать OS Guard и переносить в ACL после того, как эти функции становятся доступными.

Преимущества использования ACL в AKS

Использование ACL в качестве ОС для пулов узлов AKS обеспечивает несколько преимуществ, которые повышают безопасность, надежность и эффективность работы:

  • Встроенная неизменяемость для более надежной безопасности: неизменяемость /usr каталога, применяемая ядром, проверяет целостность образа ОС при загрузке и среде выполнения. Эта конструкция помогает блокировать несанкционированные изменения, прежде чем они могут повлиять на кластер и снизить риск изменения на уровне ОС.
  • Минимальная область атаки: ACL поставляет только компоненты, необходимые для запуска контейнеров. Уменьшая размер и сложность ОС, ACL сводит к минимуму количество пакетов, служб и потенциальных точек входа, доступных злоумышленникам, и упрощает управление безопасностью.
  • Автоматическое обновление образа узла: ACL предоставляет еженедельные обновления на основе образов, которые включают последние исправления системы безопасности и исправления ошибок. Этот подход обеспечивает согласованность и актуальность версий ОС узлов во всем кластере и помогает снизить подверженность известным уязвимостям.
  • Доверие к цепочке поставок: основано на подписанных пакетах Azure Linux и процессах цепочки поставок, обеспечивая прозрачное происхождение системных компонентов.
  • Интеграция с функциями безопасности Azure: встроенная поддержка доверенного запуска и безопасной загрузки обеспечивает измеряемую защиту загрузки и аттестацию.
  • Прозрачность открытого исходного кода: Flatcar, а также многие лежащие в его основе технологии (dm-verity и SELinux), разрабатываются в рамках upstream-проектов или имеют открытый исходный код, а Microsoft предоставляет инструменты и вносит вклад в поддержку этих функций.

Ключевые функции ACL

Следующие ключевые функции отличают ACL как защищенной, оптимизированной для контейнера ОС для AKS:

  • Неизменяемость: каталог "/usr" смонтирован как том только для чтения, защищённый dm-verity. Во время выполнения ядро проверяет подписанный корневой хэш для обнаружения и блокировки изменения
  • Обязательный контроль доступа с помощью SELinux: ACL включает SELinux для применения обязательных политик контроля доступа, ограничивающих процессы, которые могут получить доступ к конфиденциальным системным ресурсам. Обратите внимание, что SELinux работает в режиме принудительного применения по умолчанию. Политики SELinux могут развиваться со временем.
  • Trusted Launch and Secure Boot: ACL требует доверенного запуска с помощью безопасной загрузки и vTPM, чтобы обеспечить целостность цепочки загрузки перед загрузкой ОС. Это достигается с помощью единого образа ядра (UKI), который объединяет ядро, initramfs и командную строку ядра в один подписанный артефакт. Во время загрузки UKI измеряется и записывается в vTPM, обеспечивая целостность с самого раннего этапа.
  • Поддержка узлов GPU NVIDIA: ACL поддерживает пулы узлов с поддержкой GPU NVIDIA на архитектурах AMD64, что позволяет выполнять высокопроизводительные вычисления (HPC) и рабочие нагрузки AI/ML в AKS с защищенной, оптимизированной для контейнера ОС. ACL не поддерживает архитектуры ARM64 для пулов узлов с поддержкой GPU.
  • Поддержка архитектуры AMD64 и ARM64: ACL доступна для архитектур AMD64 и ARM64 в AKS.
  • Суверенная безопасность цепочки поставок: ACL наследует безопасные конвейеры сборки Azure Linux и подписанные унифицированные образы ядра (UKI).
  • Автоматическая подготовка узла: ACL поддерживает автоматическую подготовку узлов (NAP).

Important

Если вы используете Azure Container Linux (ACL) в AKS, ознакомьтесь со следующими рекомендациями и ограничениями:

Дорожная карта функций

Дополнительные сведения см. в статье План развития функций Azure Linux.

Миграция и обновление ОС с помощью ACL

AKS поддерживает перенос существующих пулов узлов на ACL с помощью миграции SKU ОС на месте или путем создания новых пулов узлов ACL. Подробные инструкции по миграции, рекомендации и инструкции по откату см. в разделе "Перенос существующих узлов в ACL".

ACL для управления версиями AKS

ACL для AKS еженедельно выпускает образы узлов AKS. Версионирование следует формату AKS, основанному на дате (например, 202506.13.0). В настоящее время ACL поддерживает только полные обновления образа узла. Дополнительные сведения см. в статье Образы узлов Azure Container Linux (ACL).

Вы можете посмотреть доступные образы узлов в примечаниях к выпуску и просмотреть nodeImageVersion для работающего кластера с помощью команды az aks nodepool list. Рассмотрим пример.

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

Пример выходных данных:

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

Чтобы приступить к работе с ACL для AKS, ознакомьтесь со следующими ресурсами: