Подключение кластера Azure Kubernetes Service (AKS) к ИИ-агентам с помощью сервера протокола контекста модели (MCP)

Сервер контекста модели AKS (MCP) позволяет помощникам ИИ взаимодействовать с кластерами Службы Azure Kubernetes (AKS) с ясностью, безопасностью и контролем. Он служит мостом между инструментами искусственного интеллекта (например, GitHub Copilot, Claude и другими помощниками по ИИ, совместимым с MCP) и AKS, переводя запросы естественного языка в операции AKS и возвращая результаты в формате, который может понять средства ИИ.

Сервер AKS MCP подключается к Azure с помощью пакета SDK Azure и предоставляет набор средств, которые помощники ИИ могут использовать для взаимодействия с ресурсами AKS. Эти средства позволяют агентам ИИ выполнять такие задачи, как:

  • Устранение неполадок и диагностика
  • Анализ работоспособности кластера
  • Управление ресурсами AKS (CRUD)
  • Получение сведений, связанных с кластерами AKS (виртуальные сети, подсети, группы безопасности сети (NSG), таблицы маршрутов и т. д.)
  • Включение лучших практик и рекомендуемых функций
  • Управление операциями Azure Fleet для сценариев с несколькими кластерами

Сервер AKS MCP — это проект с полностью открытым исходным кодом. Исходный код и выпуски см. в репозитории GITHUB AKS MCP.

Когда следует использовать сервер AKS MCP

Сервер AKS MCP можно использовать с любым совместимым помощником по искусственному интеллекту, включая агентический интерфейс командной строки для AKS и Microsoft Copilot. Распространенные варианты использования:

  • Задавать вопросы помощникам с искусственным интеллектом, например:
    • Почему поды находятся в ожидании в этом кластере?
    • "Что такое конфигурация сети кластера AKS?"
    • Создайте размещение для развертывания нагрузок nginx на кластеры с меткой app=frontend.
  • Предоставление возможности средствам ИИ:
    • Чтение состояния кластера и его конфигурации
    • Проверка метрик, событий и журналов
    • Корреляция сигналов между ресурсами Kubernetes и Azure
    • Применение изменений и включение новых функций непосредственно в кластере

Все действия, выполняемые через сервер AKS MCP, ограничены kubernetes Role-Based контроль доступа (RBAC) и Azure RBAC. Сервер AKS MCP наследует ваши разрешения при доступе к кластеру и ресурсам Azure.

Доступные средства

Сервер AKS MCP предоставляет полный набор средств для взаимодействия с кластерами AKS и связанными ресурсами. По умолчанию сервер использует унифицированные средства (call_az для операций Azure и call_kubectl для операций Kubernetes), которые предоставляют более гибкий интерфейс для взаимодействия с ресурсами Kubernetes и Azure.

Существует три набора разрешений, которые можно включить для сервера AKS MCP: только для чтения (по умолчанию), чтение и запись, и администратора. Для некоторых инструментов требуются разрешения на чтение и запись или административные для выполнения таких действий, как развертывание отладочных pod-модулей или операции CRUD в кластере. Чтобы включить разрешения на чтение-запись или администрирование для сервера AKS-MCP, добавьте параметр уровня доступа в файл конфигурации MCP.

  1. Перейдите к файлуmcp.json или перейдите в MCP: List Servers —> AKS-MCP —> показать сведения о конфигурации в палитре команд (для VS Code; Ctrl+Shift+P в Windows/Linux или Cmd+Shift+P macOS).
  2. В разделе "args" AKS-MCP добавьте следующие параметры: "--access-level", "readwrite" или "admin"

Рассмотрим пример.

"args": [
  "--access-level",
  "readwrite"
]

Эти средства предназначены для обеспечения комплексной функциональности с помощью унифицированных интерфейсов:

Операции инструмента Azure CLI (унифицированное средство)

Инструмент:call_az

Единое средство для выполнения команд Azure CLI напрямую. Это средство предоставляет гибкий интерфейс для выполнения любой команды Azure CLI.

Параметры:

  • cli_command: полная команда для выполнения в Azure CLI. Например, az aks list --resource-group myRG или az vm list --subscription <sub-id>.
  • timeout: необязательное время ожидания в секундах (по умолчанию: 120)

Пример использования:

{
  "cli_command": "az aks list --resource-group myResourceGroup --output json"
}

контроль доступа:

  • readonly: разрешены только операции чтения
  • readwrite/admin: разрешены операции чтения и записи

Это важно

Команды должны быть простыми вызовами Azure CLI без таких функций оболочки, как каналы (|), перенаправления (>, <), подстановка команд или точка с запятой (;).

Операции Kubernetes (унифицированный инструмент)

Унифицированное средство kubectl

Инструмент:call_kubectl

Единое средство для выполнения команд kubectl напрямую. Это средство предоставляет гибкий интерфейс для выполнения любой команды с полной kubectl поддержкой аргументов.

Параметры:

  • args: аргументы команды kubectl. Например, get pods, describe node mynode или apply -f deployment.yaml.

Пример использования:

{
  "args": "get pods -n kube-system -o wide"
}

Управление доступом: Операции ограничены на основе настроенного уровня доступа:

  • readonly: разрешены только операции чтения (получение, описание, логи и т. д.)
  • readwrite/admin: все операции, включая изменение команд (создание, удаление, применение и т. д.)

Штурвал

Инструмент:call_helm

Диспетчер пакетов Helm для Kubernetes.

Cilium

Инструмент:call_cilium

Cilium CLI для сети и безопасности на основе eBPF.

Хаббл

Инструмент:call_hubble

Наблюдаемость сети Hubble для Cilium.

Управление сетевыми ресурсами

Инструмент:aks_network_resources

Унифицированное средство для получения сведений о сетевом ресурсе Azure, используемых кластерами AKS.

Доступные типы ресурсов:

  • all: получение сведений обо всех сетевых ресурсах
  • vnet: сведения о виртуальной сети
  • subnet: сведения о подсети
  • nsg: сведения о группе безопасности сети
  • route_table: информация о таблице маршрутизации
  • load_balancer: сведения о Балансировщике нагрузки
  • private_endpoint: сведения о частной конечной точке
Мониторинг и диагностика

Инструмент:aks_monitoring

Единое средство для операций мониторинга и диагностики Azure для кластеров AKS.

Доступные операции:

  • metrics: список значений метрик ресурсов
  • resource_health: получение событий работоспособности ресурсов для кластеров AKS
  • app_insights: выполнение запросов KQL к данным телеметрии Application Insights
  • diagnostics: Проверьте, настроены ли параметры диагностики для кластера AKS.
  • control_plane_logs: запрос журналов плоскости управления AKS с ограничениями безопасности и проверкой диапазона времени
Вычислительные ресурсы

Инструмент:get_aks_vmss_info

  • Получение подробной конфигурации масштабируемых наборов виртуальных машин (пулов узлов) в кластере AKS
Управление флотом

Инструмент:az_fleet

Комплексное управление флотом Azure для сценариев с несколькими кластерами.

Доступные операции:

  • Операции с флотом: список, отображение, создание, обновление, удаление, получение учетных данных
  • Операции-члены: список, отображение, создание, обновление, удаление
  • Обновление операций выполнения: список, отображение, создание, запуск, остановка, удаление
  • Операции с стратегией обновления: список, отображение, создание, удаление
  • ClusterResourcePlacement Operations: список, показать, получить, создать, удалить

Поддерживает операции управления флотом Azure и Кластера Kubernetes ClusterResourcePlacement CRD.

Детекторы диагностики

Инструмент:aks_detector

Унифицированное средство для выполнения операций детектора диагностики AKS.

Доступные операции:

  • list: список всех доступных детекторов кластеров AKS
  • run: запуск определенного детектора диагностики AKS
  • run_by_category: запуск всех детекторов в определенной категории

Параметры:

  • operation (обязательно): операция выполнения (list, runили run_by_category)
  • aks_resource_id (обязательно): идентификатор ресурса кластера AKS
  • detector_name (требуется для run операции): имя детектора для запуска
  • category (требуется для run_by_category операции): категория детектора
  • start_time (требуется для выполнения операций run и run_by_category): время начала в формате UTC ISO (в течение последних 30 дней)
  • end_time (требуется для выполнения операций run и run_by_category): время окончания в формате UTC ISO (в пределах последних 30 дней, не более чем за 24 часа с момента начала)

Доступные категории:

  • Лучшие практики
  • Доступность и производительность кластера и плоскости управления.
  • Проблемы с подключением
  • Создание, обновление, удаление и масштабирование
  • Устаревание
  • Идентификация и безопасность
  • Состояние узлов
  • Storage

Пример использования:

Инструмент:run_detectors_by_category

{
  "operation": "list",
  "aks_resource_id": "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.ContainerService/managedClusters/xxx"
}
{
  "operation": "run",
  "aks_resource_id": "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.ContainerService/managedClusters/xxx",
  "detector_name": "node-health-detector",
  "start_time": "2025-01-15T10:00:00Z",
  "end_time": "2025-01-15T12:00:00Z"
}
Помощник по Azure

Инструмент:aks_advisor_recommendation

Получение рекомендаций помощника по Azure и управление ими для кластеров AKS.

Доступные операции:

  • list: вывод списка рекомендаций с параметрами фильтрации
  • report: создание рекомендательных отчетов
  • Параметры фильтра: resource_group, cluster_names, категория (затраты, высокая доступность, производительность, безопасность), серьезность (высокий, средний, низкий)
Наблюдаемость в режиме реального времени

Инструмент:inspektor_gadget_observability

Средство отслеживания в режиме реального времени для кластеров Службы Azure Kubernetes (AKS) с помощью eBPF.

Доступные действия:

  • deploy: Разверните Inspektor Gadget в кластере
  • undeploy: удаление гаджета Inspektor из кластера
  • is_deployed: проверка состояния развертывания
  • run: запуск однократных гаджетов
  • start: непрерывный запуск устройств
  • stop: остановка запуска гаджетов
  • get_results: получение результатов гаджета
  • list_gadgets: список доступных гаджетов

Доступные гаджеты:

  • observe_dns: мониторинг dns-запросов и ответов
  • observe_tcp: мониторинг TCP-подключений
  • observe_file_open: мониторинг операций файловой системы
  • observe_process_execution: мониторинг выполнения процесса
  • observe_signal: мониторинг доставки сигналов
  • observe_system_calls: мониторинг системных вызовов
  • top_file: наиболее активные файлы по операциям ввода-вывода
  • top_tcp: основные TCP-подключения по трафику
  • tcpdump: захват сетевых пакетов

Начало работы с сервером AKS MCP

Сервер MCP работает на локальном компьютере и подключается к AKS с помощью существующих разрешений. Вы можете быстро настроить локальный агент ИИ с экспертизой и инструментарием AKS. Сервер использует текущий контекст кластера и применяет ваши разрешения Kubernetes и Azure RBAC.

Замечание

Начиная с версии 0.0.20 удаленные развертывания с Helm или контейнерами не поддерживаются. Используйте локальный двоичный файл.

Предпосылки

Перед установкой сервера AKS MCP настройте Azure CLI и выполните проверку подлинности:

az login

Самый простой способ начать работу с AKS-MCP — это расширение службы Azure Kubernetes для VS Code. Расширение AKS обрабатывает двоичные загрузки, обновления и конфигурацию автоматически, обеспечивая наличие последней версии с оптимальными параметрами.

Шаг 1. Установка расширения AKS

  1. Откройте VS Code и перейдите к расширениям (Ctrl+Shift+X в Windows/Linux или Cmd+Shift+X в macOS).
  2. Найдите службу Azure Kubernetes.
  3. Установите официальное расширение Microsoft AKS.

Шаг 2. Запуск сервера AKS-MCP

  1. Откройте палитру команд (Ctrl+Shift+P в Windows или Linux или Cmd+Shift+P в macOS).
  2. Поиск и запуск: AKS: Настройка СЕРВЕРА AKS MCP.

После успешной установки сервер отображается в MCP: список серверов (с помощью палитры команд). С этого момента можно запустить сервер MCP или просмотреть его состояние.

Шаг 3. Начало работы с AKS-MCP

После запуска сервер MCP появится в раскрывающемся списке "Чат Copilot: Настройка инструментов " в разделе MCP Server: AKS MCP, готовый к улучшению контекстных запросов в зависимости от среды AKS. По умолчанию все AKS-MCP серверные средства включены. Список доступных средств можно просмотреть и отключить любые, которые не требуются для вашего сценария.

Попробуйте выполнить запрос , например "Вывод списка всех кластеров AKS", чтобы начать использовать средства с сервера AKS-MCP.

Подсказка

Конфигурация WSL: если вы используете VS Code в Windows с WSL, используйте "command": "wsl" для вызова двоичного файла WSL. Если VS Code выполняется внутри WSL (Remote-WSL), вызовите двоичный файл напрямую или используйте оболочку bash.

Удаление сервера AKS MCP

VS Code с расширением AKS

  1. Откройте палитру команд (Ctrl+Shift+P в Windows или Linux или Cmd+Shift+P в macOS).
  2. Запустите MCP: список серверов.
  3. Выберите AKS MCP из списка.
  4. Выберите "Остановить сервер ", чтобы остановить запущенный сервер.
  5. Чтобы удалить конфигурацию, выберите "Удалить конфигурацию сервера".

Кроме того, вручную удалите конфигурацию сервера:

  1. Откройте .vscode/mcp.json файл или пользовательские настройки VS Code.
  2. aks-mcp-server Удалите запись из servers объекта или github.copilot.chat.mcp.servers объекта.
  3. Удалите двоичный файл AKS-MCP из системы (расположение зависит от метода установки).

Другие клиенты MCP

aks или aks-mcp удалите этот элемент из файла конфигурации клиента MCP (например, для Claude Desktop claude_desktop_config.json).

Распространенные проблемы и устранение неполадок

В этом разделе описаны распространенные проблемы установки и среды выполнения, их симптомы и способы их устранения.

Сервер AKS MCP не может получить доступ к кластеру

Симптомы

  • Инструменты возвращают ошибки авторизации
  • Ресурсы не отображаются

Вероятные причины:

  • У пользователя нет достаточных разрешений
  • Контекст kubeconfig неправильно настроен

Резолюция:

  • Убедитесь, что у вас есть достаточные разрешения для доступа к кластеру. Убедитесь, что вы находитесь в правильном кластере и контексте подписки.

Дальнейшие шаги

Дополнительные сведения об интеллектуальных функциях, созданных в собственном коде для AKS:

  • Сведения об агентическом интерфейсе командной строки для AKS
  • Установка и использование агентского CLI для AKS