Azure Kubernetes Service
Azure Kubernetes Service (AKS) — это облачная платформа для оркестрации контейнеров, предоставляемая корпорацией Microsoft в составе своего публичного облака Microsoft Azure. AKS упрощает развёртывание, масштабирование и управление кластерами Kubernetes, беря на себя задачи по настройке, обновлению и мониторингу инфраструктуры. Сервис относится к классу управляемых решений (Managed Kubernetes), что позволяет командам разработчиков сосредоточиться на приложениях, а не на администрировании базовых узлов.
История и развитие
AKS был анонсирован на конференции Microsoft Build в 2017 году как Azure Container Service (ACS) с поддержкой Kubernetes. В июне 2018 года Microsoft выделила управление кластерами Kubernetes в отдельный сервис — Azure Kubernetes Service, который заменил ACS. Первоначально AKS поддерживал только Linux-контейнеры, но в 2019 году была добавлена поддержка Windows-контейнеров. В 2020 году сервис получил интеграцию с Azure Arc для гибридных сценариев, а в 2021 году — поддержку виртуальных машин на базе Arm.
Ключевые этапы развития:
- 2018: запуск AKS в коммерческую эксплуатацию; поддержка Kubernetes 1.9.
- 2019: появление поддержки Windows Server 2019, запуск Azure Policy для Kubernetes.
- 2020: интеграция с Azure Monitor, внедрение кластеров с несколькими зонами доступности.
- 2022: поддержка Kubernetes 1.25, запуск AKS Edge Essentials для локальных развёртываний.
- 2024: внедрение автоматического масштабирования узлов (Cluster Autoscaler) на основе искусственного интеллекта.
Архитектура и компоненты
AKS состоит из двух основных слоёв: плоскости управления (control plane) и узлов (nodes).
Плоскость управления
Плоскость управления полностью управляется Microsoft Azure и не требует настройки со стороны пользователя. Она включает:
- API-сервер Kubernetes — точка входа для всех команд kubectl.
- etcd — распределённое хранилище конфигурации кластера.
- Scheduler — планировщик задач.
- Controller Manager — набор контроллеров, управляющих состоянием кластера.
Microsoft отвечает за обновление, мониторинг и обеспечение высокой доступности плоскости управления. Пользователь не имеет прямого доступа к узлам плоскости управления.
Узлы (Node Pools)
Узлы — это виртуальные машины Azure, на которых запускаются контейнеры. AKS поддерживает:
- Системные пулы узлов — для критических компонентов кластера (например, CoreDNS).
- Пользовательские пулы узлов — для приложений.
- Пулы узлов с поддержкой GPU — для задач машинного обучения.
Каждый узел работает под управлением операционной системы Ubuntu (для Linux) или Windows Server 2019/2022. В 2023 году Microsoft добавила поддержку Azure Linux — собственного дистрибутива Linux для AKS.
Сетевые компоненты
AKS поддерживает несколько сетевых моделей:
- kubenet — базовая сеть с использованием виртуальных сетей Azure.
- Azure CNI — расширенная сеть, где каждый pod получает IP-адрес из виртуальной сети Azure.
- Cilium — сетевой плагин с поддержкой eBPF (с 2023 года).
Основные возможности
Управление кластером
AKS автоматизирует рутинные операции:
- Автоматическое обновление версий Kubernetes — плановые обновления без простоев.
- Автомасштабирование — Cluster Autoscaler добавляет или удаляет узлы в зависимости от нагрузки.
- Самоисцеление — автоматическое восстановление неработающих узлов.
Безопасность
- Azure AD Integration — аутентификация через Azure Active Directory.
- Pod Managed Identity — управление доступом pod к ресурсам Azure.
- Azure Policy — принудительное применение политик безопасности (например, запрет на запуск контейнеров от root).
- Container Insights — мониторинг уязвимостей образов.
Интеграция с экосистемой Azure
AKS тесно связан с другими сервисами Azure:
- Azure DevOps — CI/CD для развёртывания приложений.
- Azure Monitor — логи и метрики кластера.
- Azure Key Vault — хранение секретов.
- Azure Service Mesh — управление трафиком между микросервисами.
Варианты развёртывания
AKS предлагает несколько конфигураций для разных сценариев:
| Тип | Описание | Пример использования |
|---|---|---|
| Стандартный кластер | Полноценный кластер с управляемой плоскостью | Продакшн-среда |
| Кластер с несколькими зонами | Узлы в разных зонах доступности Azure | Высокая доступность |
| AKS Edge Essentials | Локальный кластер на устройствах Windows | Промышленный IoT |
| AKS на Azure Stack HCI | Гибридное развёртывание на локальной инфраструктуре | Регулируемые отрасли |
Стоимость
Microsoft не взимает плату за плоскость управления AKS. Пользователи оплачивают:
- Виртуальные машины узлов (по тарифам Azure).
- Сетевой трафик.
- Дополнительные сервисы (Azure Monitor, Azure Policy).
Для снижения затрат доступны:
- Spot-узлы — дешёвые, но могут быть прерваны.
- Reserved Instances — скидка при долгосрочной аренде.
Сравнение с альтернативами
AKS конкурирует с другими управляемыми Kubernetes-сервисами:
- Amazon Elastic Kubernetes Service (EKS) — от Amazon Web Services. Отличается более широкой интеграцией с сервисами AWS.
- Google Kubernetes Engine (GKE) — от Google Cloud. Предлагает более гибкую сетевую модель и автоматическое масштабирование.
- Yandex Managed Service for Kubernetes — от Yandex Cloud. Адаптирован для российского рынка, соответствует требованиям 152-ФЗ.
Преимущества AKS:
- Глубокая интеграция с Microsoft-экосистемой (Visual Studio, GitHub, Azure DevOps).
- Поддержка Windows-контейнеров на уровне ядра.
- Собственный дистрибутив Linux (Azure Linux).
Недостатки:
- Меньшая гибкость в настройке плоскости управления.
- Зависимость от региона Azure (доступность сервиса ограничена).
Примеры использования
AKS применяется в различных отраслях:
- Финансы: развёртывание микросервисов для онлайн-банкинга (например, Сбербанк использует AKS для своих платформ).
- Ритейл: управление пиковыми нагрузками в чёрную пятницу.
- Промышленность: AKS Edge Essentials для управления производственными линиями.
- Гейминг: оркестрация игровых серверов (например, Xbox Cloud Gaming).
Критика
Основные замечания к AKS:
- Сложность миграции — перенос существующих кластеров из других облаков требует значительных усилий.
- Ограничения бесплатного уровня — плоскость управления бесплатна, но минимальная конфигурация узлов обходится в 30–50 долларов в месяц.
- Зависимость от Azure — привязка к проприетарным сервисам Microsoft.
В 2022 году были зафиксированы инциденты с утечкой данных через неправильно настроенные Azure AD-интеграции, что привело к ужесточению политик безопасности.
Источники
- Microsoft Learn: "Azure Kubernetes Service (AKS) documentation".
- Документация Azure: "What is Azure Kubernetes Service?".
- Kubernetes.io: "Managed Kubernetes comparison".
- Отчёты Gartner: "Magic Quadrant for Cloud Infrastructure and Platform Services".
- Статьи на Habr: "Обзор Azure Kubernetes Service".
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →