Краткое описание
Планирование и настройка production-ready кластеров Azure Kubernetes Service с лучшими практиками Day-0 и Day-1.
-
Различает решения Day-0 (сетевая подсистема, доступ к API server, модель IP для pod'ов), которые трудно изменить позже, и возможности Day-1 (наблюдаемость, обновления, автоскейлинг), которые можно включить после создания
-
Охватывает выбор SKU AKS Automatic vs Standard, сетевую подсистему Azure CNI Overlay, безопасность (Microsoft Entra ID, Azure Policy, Secrets Store CSI) и наблюдаемость с Managed Prometheus и Container Insights
-
Содержит руководство по пулам нод, оптимизации вычислений (ephemeral OS disks, Azure Linux, SKUs последнего поколения), паттернам отказоустойчивости (3 Availability Zones, PodDisruptionBudgets) и контролю затрат (Spot-ноды, Reserved Instances)
-
Включает глубокие ссылки для rightsizing'а pod'ов, Vertical Pod Autoscaler, настройки cluster autoscaler и конфигурации пулов нод на Spot
Azure Kubernetes Service
ОБЯЗАТЕЛЬНОЕ РУКОВОДСТВО — СОБЛЮДЕНИЕ ОБЯЗАТЕЛЬНО Этот skill формирует рекомендуемую конфигурацию кластера AKS на основе требований пользователя, различая решения Day-0 (сетевая подсистема, API server — трудно изменить позже) и возможности Day-1 (можно включить после создания). См. CLI reference для команд.
Быстрая справка
| Свойство | Значение |
|---|---|
| Лучше всего подходит для | Планирование кластера AKS и решения Day-0 |
| MCP Tools | mcp_azure_mcp_aks |
| CLI | az aks create, az aks show, kubectl get, kubectl describe |
| Связанные skills | azure-kubernetes-app-deploy (развертывание приложения в существующем кластере), azure-diagnostics (diagnostics AKS), azure-validate (проверки готовности), azure-kubernetes-automatic-readiness (миграция существующего кластера в AKS Automatic) |
Когда использовать этот skill
Активируйте этот skill, когда пользователь хочет:
-
Создать новый кластер AKS
-
Спланировать конфигурацию кластера AKS для production-нагрузок
-
Спроектировать сеть AKS (доступ к API server, модель IP для pod'ов, egress)
-
Настроить идентификацию и управление секретами AKS
-
Настроить управление AKS (Azure Policy, Deployment Safeguards)
-
Включить наблюдаемость AKS (Container Insights, Managed Prometheus, Grafana)
-
Определить стратегию обновления и патчинга AKS
-
Понять различия AKS Automatic vs Standard SKU
-
Получить чеклист Day-0 для настройки и конфигурации кластера AKS
Развертываете приложение в существующем кластере? Этот skill выполняет провижининг и настройку кластера. Для контейнеризации приложения и его развертывания в уже существующем кластере (Dockerfile + манифесты + Deployment Safeguards) используйте суб-skill azure-kubernetes-app-deploy.
Правила
-
Начните с требований пользователя по провижинингу вычислений, сети, безопасности и других настроек.
-
Используйте MCP-сервер
azureи сначала выберитеmcp_azure_mcp_aks, чтобы обнаружить точные AKS-specific MCP tools, доступные через клиент. Выберите наименьший из обнаруженных AKS-инструментов, подходящий для задачи, и переходите к Azure CLI (az aks) только когда необходимая функциональность не предоставлена через AKS MCP interface. -
Определите, что более уместно: AKS Automatic или Standard SKU, исходя из потребности пользователя в контроле против удобства. По умолчанию используйте AKS Automatic, если не требуются конкретные кастомизации.
-
Документируйте решения и обоснования выбора конфигурации кластера, особенно для решений Day-0, которые трудно изменить позже (сетевая подсистема, доступ к API server).
Обязательные входные данные (спрашивайте только необходимое)
Если пользователь не уверен, используйте безопасные значения по умолчанию.
-
Тип среды AKS: dev/test или production
-
Регион(ы), availability zones, предпочтительные размеры VM для нод
-
Ожидаемый масштаб (количество нод/кластеров, размер нагрузки)
-
Сетевые требования (доступ к API server, модель IP для pod'ов, контроль ingress/egress)
-
Требования безопасности и идентификации, включая реестр образов
-
Предпочтения по обновлениям и наблюдаемаемости
-
Бюджетные ограничения
Рабочий процесс
1. Тип кластера
-
AKS Automatic (по умолчанию): Лучше всего подходит для большинства production-нагрузок, обеспечивает curated-опыт с предварительно настроенными лучшими практиками по безопасности, надёжности и производительности. Используйте, если у вас нет конкретных кастомных требований к сети, автоскейлингу или конфигурации пулов нод, не поддерживаемых Node Auto-Provisioning (NAP).
-
AKS Standard: Используйте, если вам нужен полный контроль над конфигурацией среды, что требует дополнительных усилий по настройке и управлению.
2. Сетевая подсистема (Pod IP, Egress, Ingress, Dataplane)
Модель IP для pod'ов (ключевое решение Day-0):
-
Azure CNI Overlay (рекомендуется): IP pod'ов из приватного overlay-диапазона, не маршрутизируется через VNet, масштабируется на большие среды и подходит для большинства нагрузок
-
Azure CNI (маршрутизация через VNet): IP pod'ов напрямую из VNet (подсеть pod'ов или подсеть нод), используйте, когда pod'ы должны быть напрямую доступны из VNet или on-prem
Документация: https://learn.microsoft.com/azure/aks/azure-cni-overlay
Dataplane и Network Policy:
- Azure CNI powered by Cilium (рекомендуется): eBPF-based для высокопроизводительной обработки пакетов, сетевых политик и наблюдаемаемости
Egress:
-
Static Egress Gateway для стабильных, предсказуемых исходящих IP-адресов
-
Для ограниченного egress: UDR + Azure Firewall или NVA
Ingress:
-
App Routing addon с Gateway API — рекомендуемый вариант по умолчанию для HTTP/HTTPS нагрузок
-
Istio service mesh с Gateway API — для продвинутого управления трафиком, mTLS, canary-релизов
-
Application Gateway for Containers — для L7 балансировки нагрузки с интеграцией WAF
DNS:
- Включите LocalDNS во всех пулах нод для надёжного и производительного разрешения DNS
3. Безопасность
-
Используйте Microsoft Entra ID повсюду (control plane, Workload Identity для pod'ов, доступ к нодам). Избегайте статических учетных данных.
-
Azure Key Vault через Secrets Store CSI Driver для секретов
-
Включите Azure Policy + Deployment Safeguards
-
Включите Encryption at rest для etcd/API server; in-transit для связи нода–нода
-
Разрешайте только подписанные, одобренные политикой образы (Azure Policy + Ratify), предпочитайте Azure Container Registry
-
Изоляция: Используйте namespaces, сетевые политики, ограничение области логирования
4. Наблюдаемость
-
Используйте Managed Prometheus и Container Insights с Grafana для наблюдаемаемости AKS (логи + метрики).
-
Включите Diagnostic Settings для сбора логов control plane и audit-логов в Log Analytics workspace для мониторинга безопасности и diagnostics.
-
Для других инструментов мониторинга и diagnostics используйте такие функции, как Agentic CLI for AKS, Application Insights, Resource Health Center, детекторы AppLens и Azure Advisors.
5. Обновления и патчинг
-
Настройте Maintenance Windows для контролируемого времени обновлений
-
Включите автоматические обновления для control plane и ОС нод, чтобы быть в актуальном состоянии с security-патчами и версиями Kubernetes
-
Рассмотрите LTS-версии для enterprise-стабильности (поддержка 2 года), обновив среду AKS до тарифа Premium
-
Fleet-обновления: Используйте AKS Fleet Manager для поэтапного развёртывания от тестовых к production-средам
6. Производительность
-
Используйте Ephemeral OS disks (
--node-osdisk-type Ephemeral) для более быстрого запуска нод -
Выберите Azure Linux в качестве ОС нод (меньший footprint, быстрый boot)
-
Включите KEDA для event-driven автоскейлинга сверх HPA
7. Пулы нод и вычисления
-
Выделенный system node pool: минимум 2 ноды, помеченные (tainted) только для системных нагрузок (
CriticalAddonsOnly) -
Включите Node Auto Provisioning (NAP) во всех пулах для экономии средств и отзывчивого масштабирования
-
Используйте SKUs последнего поколения (v5/v6) для оптимизаций на уровне хоста
-
Избегайте VM серии B — burstable SKUs вызывают проблемы с производительностью/надёжностью
-
Используйте SKUs с минимум 4 vCPU для production-нагрузок
-
Задайте topology spread constraints для распределения pod'ов по хостам/зонам в соответствии с SLO
8. Надёжность
-
Разверните кластер по 3 Availability Zones (
--zones 1 2 3) -
Используйте Standard tier для zone-redundant control plane + SLA 99,95% для доступности API server
-
Включите Microsoft Defender for Containers для runtime-защиты
-
Настройте PodDisruptionBudgets для всех production-нагрузок
-
Используйте topology spread constraints для обеспечения распределения pod'ов по доменам отказа
9. Контроль затрат
-
Используйте пулы нод на Spot для batch/прерываемых нагрузок (экономия до 90%)
-
Stop/Start dev/test-кластеров:
az aks stop/start -
Рассмотрите Reserved Instances или Savings Plans для стабильных нагрузок
Глубокие сценарии — загружайте только соответствующий reference-файл:
| Сценарий | Ключевые слова | Reference |
|---|---|---|
| Rightsizing pod'ов | over-provisioned pods, CPU requests, memory requests, rightsize workloads | azure-aks-rightsizing.md |
| Настройка VPA | vertical pod autoscaler, VPA recommendations, VPA enable | azure-aks-vpa.md |
| Cluster Autoscaler | idle nodes, CAS off, enable autoscaler, scale-down profile, node utilization | azure-aks-autoscaler.md |
| Пулы нод на Spot | Spot VMs, Spot nodes, batch workloads, cheaper nodes | azure-aks-spot.md |
Уточнение: если промпт совпадает с несколькими строками (например, "cheaper nodes" может указывать и на Spot, и на autoscaler), предпочитайте наиболее конкретное совпадение. Если неоднозначно, попросите пользователя уточнить намерение перед загрузкой reference-файла.
Guardrails / Безопасность
-
Не запрашивайте и не выводите секреты (токены, ключи).
-
Не просите пользователя вставлять subscription ID. Обнаруживайте scope подписки и ресурсов через MCP tools (например, list subscriptions, list resource groups) или
az account show/az account list, чтобы agent мог определить контекст без раскрытия идентификаторов. -
Если требования неоднозначны для критических решений Day-0, задайте пользователю уточняющие вопросы. Для возможностей Day-1 предложите 2–3 безопасных варианта с компромиссами и выберите консервативное значение по умолчанию.
-
Не обещайте нулевой простой; рекомендуйте protective-механизмы нагрузок (PDB, probes, реплики) и поэтапные обновления, а также лучшие практики по надёжности и производительности.
MCP Tools
| Инструмент | Назначение | Ключевые параметры |
|---|---|---|
| mcp_azure_mcp_aks | Точка входа AKS MCP, используемая для обнаружения точных AKS-specific tools, предоставляемых клиентом | Сначала обнаружите вызываемый AKS-инструмент, затем используйте его параметры |
Обработка ошибок
| Ошибка / Симптом | Вероятная причина | Решение |
|---|---|---|
| Вызов MCP tool завершается ошибкой или превышает таймаут | Неверные учетные данные, подписка или AKS-контекст | Проверьте az login, подтвердите активный контекст подписки через az account show и проверьте целевую группу ресурсов, не возвращая subscription ID пользователю |
| Превышена квота | Региональные лимиты vCPU или ресурсов | Запросите увеличение квоты или выберите другой регион/VM SKU |
| Сетевой конфликт (исчерпание IP) | Подсеть pod'ов слишком мала для overlay/CNI | Перепланируйте IP-диапазоны; может потребоваться пересоздание кластера (Day-0) |
| Workload Identity не работает | Отсутствует OIDC issuer или federated credential | Включите --enable-oidc-issuer --enable-workload-identity, настройте federated identity |
Установка
npx skills add https://github.com/microsoft/azure-skills --skill azure-kubernetes