API ВЕГА

Краткое описание

Планирование и настройка 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 Toolsmcp_azure_mcp_aks
CLIaz aks create, az aks show, kubectl get, kubectl describe
Связанные skillsazure-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 workloadsazure-aks-rightsizing.md
Настройка VPAvertical pod autoscaler, VPA recommendations, VPA enableazure-aks-vpa.md
Cluster Autoscaleridle nodes, CAS off, enable autoscaler, scale-down profile, node utilizationazure-aks-autoscaler.md
Пулы нод на SpotSpot VMs, Spot nodes, batch workloads, cheaper nodesazure-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