Compartilhar via


Conectar seu cluster do AKS (Serviço de Kubernetes do Azure) a agentes de IA usando o servidor MCP (Model Context Protocol)

O servidor MCP (Protocolo de Contexto de Modelo do AKS) permite que os assistentes de IA interajam com clusters do AKS (Serviço de Kubernetes do Azure) com clareza, segurança e controle. Ele serve como uma ponte entre ferramentas de IA (como GitHub Copilot, Claude e outros assistentes de IA compatíveis com MCP) e AKS, traduzindo solicitações de linguagem natural em operações do AKS e retornando os resultados em um formato que as ferramentas de IA podem entender.

O servidor MCP do AKS se conecta ao Azure usando o SDK do Azure e fornece um conjunto de ferramentas que os assistentes de IA podem usar para interagir com os recursos do AKS. Essas ferramentas permitem que os agentes de IA executem tarefas como:

  • Solução de problemas e diagnóstico
  • Analisar a saúde do cluster
  • Operar (CRUD) recursos do AKS
  • Recuperar detalhes relacionados a clusters do AKS (VNets, Sub-redes, NSGs (Grupos de Segurança de Rede), Tabelas de Rotas etc.)
  • Habilitando práticas recomendadas e recursos recomendados
  • Gerenciar operações da Frota do Azure para cenários de vários clusters

O servidor MCP do AKS é um projeto de software livre completo, com modelos de exemplo e configurações do Helm disponíveis no repositório GitHub.

Quando usar o servidor MCP do AKS

O servidor MCP do AKS pode ser usado com qualquer assistente de IA compatível, incluindo a CLI agentic do AKS e o Microsoft Copilot. Os casos de uso comuns incluem:

  • Fazer perguntas aos assistentes de IA como:
    • Por que os pods estão pendentes neste cluster?
    • "Qual é a configuração de rede do meu cluster do AKS?"
    • Crie um posicionamento para implantar cargas de trabalho nginx em clusters com o rótulo app=front-end.
  • Permitindo que as ferramentas de IA:
    • Ler o estado e a configuração do cluster
    • Inspecionar métricas, eventos e logs
    • Correlacionar sinais entre recursos do Kubernetes e do Azure
    • Aplicar alterações e habilitar novos recursos diretamente em seu cluster

Todas as ações executadas por meio do servidor MCP do AKS são restritas pelo RBAC (Controle de Acesso Role-Based do Kubernetes) e pelo RBAC do Azure. Por padrão, o servidor MCP do AKS herda as permissões do usuário ao acessar o cluster e os recursos do Azure. Para personalizar as funções e as permissões do servidor AKS MCP, implante o modo de servidor MCP remoto do AKS com controle RBAC integrado.

Ferramentas disponíveis

O servidor MCP do AKS fornece um conjunto abrangente de ferramentas para interagir com clusters do AKS e recursos associados. Por padrão, o servidor usa ferramentas unificadas (call_az para operações do Azure e call_kubectl para operações do Kubernetes), que fornecem uma interface mais flexível para interagir com recursos do Kubernetes e do Azure.

Há três conjuntos de permissões que você pode habilitar para o servidor MCP do AKS: somente leitura (padrão), leitura e gravação, e administrador. Algumas ferramentas exigem permissões de leitura e gravação ou administrador para executar ações como a implantação de pods de depuração ou ações CRUD em seu cluster. Para habilitar permissões de leitura/gravação ou administrador para o servidor AKS-MCP, adicione o parâmetro de nível de acesso ao arquivo de configuração do MCP:

  1. Navegue até o arquivo mcp.json ou vá para MCP: Listar Servidores –> AKS-MCP –> Mostrar Detalhes de Configuração na Paleta de Comandos (para VS Code; Ctrl+Shift+P no Windows/Linux ou Cmd+Shift+P no macOS).
  2. Na seção "args" do AKS-MCP, adicione os seguintes parâmetros: "--access-level", "readwrite" ou "admin"

Por exemplo:

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

Essas ferramentas foram projetadas para fornecer funcionalidade abrangente por meio de interfaces unificadas:

Operações da CLI do Azure (Ferramenta Unificada)

Ferramenta:call_az

Ferramenta unificada para executar comandos da CLI do Azure diretamente. Essa ferramenta fornece uma interface flexível para executar qualquer comando da CLI do Azure.

Parâmetros:

  • cli_command: o comando completo da CLI do Azure para execução. Por exemplo, az aks list --resource-group myRG ou az vm list --subscription <sub-id>.
  • timeout: tempo limite opcional em segundos (padrão: 120)

Uso de exemplo:

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

Controle de Acesso:

  • readonly: somente operações de leitura são permitidas
  • readwrite/admin: as operações de leitura e gravação são permitidas

Importante

Os comandos devem ser invocações simples da CLI do Azure sem recursos de shell, como pipes (|), redirecionamentos (>, <), substituição de comando ou ponto-e-vírgula (;).

Operações do Kubernetes (Ferramenta Unificada)

Ferramenta unificada kubectl

Ferramenta:call_kubectl

Ferramenta unificada para executar comandos kubectl diretamente. Essa ferramenta fornece uma interface flexível para executar qualquer kubectl comando com suporte completo ao argumento.

Parâmetros:

  • args: os argumentos do comando kubectl. Por exemplo, get pods, describe node mynode ou apply -f deployment.yaml.

Uso de exemplo:

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

Controle de acesso: As operações são restritas com base no nível de acesso configurado:

  • readonly: somente operações de leitura (get, describe, logs etc.) são permitidas
  • readwrite/admin: todas as operações, incluindo comandos de mutação (criar, excluir, aplicar etc.)

Helm

Ferramenta:call_helm

Gerenciador de pacotes Helm para Kubernetes.

Cilium

Ferramenta:call_cilium

CLI do Cilium para rede e segurança baseadas em eBPF.

Hubble

Ferramenta:call_hubble

Observabilidade da rede Hubble para o Cilium.

Gerenciamento de Recursos de Rede

Ferramenta:aks_network_resources

Ferramenta unificada para obter informações de recursos de rede do Azure usadas por clusters do AKS.

Tipos de recursos disponíveis:

  • all: obter informações sobre todos os recursos de rede
  • vnet: informações de rede virtual
  • subnet: informações de sub-rede
  • nsg: informações do Grupo de Segurança de Rede
  • route_table: informações da tabela de rotas
  • load_balancer: informações do Load Balancer
  • private_endpoint: informações sobre o endpoint privado
Monitoramento e diagnóstico

Ferramenta:aks_monitoring

Ferramenta unificada para operações de diagnóstico e monitoramento do Azure para clusters do AKS.

Operações disponíveis:

  • metrics: listar valores de métricas para recursos
  • resource_health: obter eventos de integridade de recursos para clusters do AKS
  • app_insights: executar consultas KQL em dados de telemetria do Application Insights
  • diagnostics: verifique se o cluster do AKS tem configurações de diagnóstico configuradas
  • control_plane_logs: consultar os logs do plano de controle do AKS com limitações de segurança e validação do intervalo de tempo
Recursos de computação

Ferramenta:get_aks_vmss_info

  • Obter uma configuração detalhada dos conjuntos de dimensionamento de máquinas virtuais (pools de nós) no cluster do AKS
Gerenciamento de Frotas

Ferramenta:az_fleet

Gerenciamento abrangente da Frota do Azure para cenários de vários clusters.

Operações disponíveis:

  • Operações de Frota: listar, mostrar, criar, atualizar, excluir, obter credenciais
  • Operações de Membro: listar, mostrar, criar, atualizar, excluir
  • Atualizar Operações de Execução: listar, mostrar, criar, iniciar, parar, excluir
  • Atualizar Operações de Estratégia: listar, mostrar, criar, excluir
  • Operações clusterResourcePlacement: listar, mostrar, obter, criar, excluir

Dá suporte ao gerenciamento da Frota do Azure e às operações de CRD do ClusterResourcePlacement do Kubernetes.

Detectores de Diagnóstico

Ferramenta:aks_detector

Ferramenta unificada para executar operações do detector de diagnóstico do AKS.

Operações disponíveis:

  • list: listar todos os detectores de cluster do AKS disponíveis
  • run: executar um detector de diagnóstico específico do AKS
  • run_by_category: executar todos os detectores em uma categoria específica

Parâmetros:

  • operation (obrigatório): Operação a ser executada (list, runou run_by_category)
  • aks_resource_id (obrigatório): ID do recurso de cluster do AKS
  • detector_name (necessário para run operação): nome do detector a ser executado
  • category (necessário para o run_by_category funcionamento): Categoria do detector
  • start_time (necessário para operações run e run_by_category): Horário de início no formato UTC ISO (desde os últimos 30 dias)
  • end_time (necessário para run e run_by_category operações): Hora de término no formato UTC ISO (nos últimos 30 dias, no máximo 24 horas desde o início)

Categorias disponíveis:

  • Práticas recomendadas
  • Disponibilidade e desempenho do clúster e plano de controle
  • Problemas de conectividade
  • Criar, atualizar, excluir e dimensionar
  • Desativações
  • Identidade e segurança
  • Integridade do Nó
  • Armazenamento

Uso de exemplo:

Ferramenta: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"
}
Assistente do Azure

Ferramenta:aks_advisor_recommendation

Recupere e gerencie as recomendações do Assistente do Azure para clusters do AKS.

Operações disponíveis:

  • list: listar recomendações com opções de filtragem
  • report: gerar relatórios de recomendação
  • Opções de filtro: resource_group, cluster_names, categoria (Custo, HighAvailability, Desempenho, Segurança), gravidade (Alta, Média, Baixa)
Observabilidade em tempo real

Ferramenta:inspektor_gadget_observability

Ferramenta de observabilidade em tempo real para clusters do AKS (Serviço de Kubernetes do Azure) usando eBPF.

Ações Disponíveis:

  • deploy: implantar o Inspektor Gadget no cluster
  • undeploy: remover o Inspector Gadget do cluster
  • is_deployed: verificar o status da implantação
  • run: executar gadgets únicos
  • start: iniciar gadgets contínuos
  • stop: pare de executar gadgets
  • get_results: Recuperar resultados do dispositivo
  • list_gadgets: listar gadgets disponíveis

Gadgets disponíveis:

  • observe_dns: monitorar solicitações e respostas DNS
  • observe_tcp: monitorar conexões TCP
  • observe_file_open: monitorar operações do sistema de arquivos
  • observe_process_execution: monitorar a execução do processo
  • observe_signal: monitorar a entrega de sinal
  • observe_system_calls: monitorar chamadas do sistema
  • top_file: arquivos principais por operações de E/S
  • top_tcp: principais conexões TCP por tráfego
  • tcpdump: capturar pacotes de rede

Introdução ao servidor MCP do AKS

O servidor MCP do AKS tem dois modos: local e remoto. Nesta seção, abordaremos os casos de uso e os processos de instalação para ambos os modos.

Servidor MCP local

No modo local, o servidor MCP é executado no computador local de um desenvolvedor e se conecta ao AKS usando as permissões existentes do desenvolvedor. Esse modo é ideal para configurar rapidamente seu agente de IA local com a expertise e as ferramentas do AKS, sem a necessidade de componentes no lado do cluster. O modo local pode usar o contexto atual do cluster e impõe as permissões Kubernetes e Azure RBAC do desenvolvedor. Por padrão, o servidor MCP local do AKS dá suporte aos modos de transporte STDIO e SSE.

Pré-requisitos

Antes de instalar o servidor MCP do AKS, configure a CLI do Azure e autentique:

az login

A maneira mais fácil de começar a usar AKS-MCP é por meio da Extensão de Serviço de Kubernetes do Azure para VS Code. A extensão do AKS lida automaticamente com downloads binários, atualizações e configuração, garantindo que você sempre tenha a versão mais recente com configurações ideais.

Etapa 1: instalar a extensão do AKS

  1. Abra o VS Code e vá para Extensões (Ctrl+Shift+X no Windows/Linux ou Cmd+Shift+X no macOS).
  2. Pesquise pelo Serviço de Kubernetes do Azure.
  3. Instale a extensão oficial do Microsoft AKS.

Etapa 2: iniciar o servidor AKS-MCP

  1. Abra a Paleta de Comandos (Ctrl+Shift+P no Windows/Linux ou Cmd+Shift+P no macOS).
  2. Pesquisar e executar: AKS: Configurar o Servidor MCP do AKS.

Após a instalação bem-sucedida, o servidor aparece no MCP: Listar servidores (por meio da Paleta de Comandos). A partir daí, você pode iniciar o servidor MCP ou exibir seu status.

Etapa 3: Começar a usar o AKS-MCP

Uma vez iniciado, o servidor MCP aparece na lista suspensa Copilot Chat: Configurar Ferramentas em MCP Server: AKS MCP, pronto para aprimorar prompts contextuais com base no seu ambiente AKS. Por padrão, todas as ferramentas de servidor AKS-MCP estão habilitadas. Você pode examinar a lista de ferramentas disponíveis e desabilitar todas as que não são necessárias para seu cenário.

Tente um prompt como "Listar todos os meus clusters do AKS" para começar a usar ferramentas do servidor AKS-MCP.

Dica

Configuração do WSL: se você estiver usando o VS Code no Windows com WSL, use "command": "wsl" para invocar o binário WSL. Se o VS Code estiver sendo executado dentro do WSL (Remote-WSL), chame o binário diretamente ou use um Bash de wrapper.

Servidor MCP remoto

No modo remoto, o servidor MCP é executado como uma carga de trabalho dentro do cluster do AKS ou qualquer computação de sua escolha. Esse modo é melhor para ambientes de produção com ferramentas compartilhadas, permissões consistentes entre usuários e controle de acesso total usando o Kubernetes ServiceAccount e a Identidade de Carga de Trabalho. O servidor REMOTO DO AKS MCP usa o protocolo HTTP para facilitar as interações entre o assistente de IA e o cluster do AKS.

Pré-requisitos

  • Cluster do AKS com Kubernetes 1.19+
  • Helm 3.8+
  • CLI do Azure instalada e autenticada (az login)

Instale com o gráfico Helm

Clone o repositório e instale o gráfico Helm do AKS-MCP:

git clone https://github.com/Azure/aks-mcp.git
cd aks-mcp/chart

helm install aks-mcp . --namespace aks-mcp --create-namespace

Para obter a lista completa de parâmetros de configuração, consulte a documentação do gráfico do Helm.

Configurar autenticação

Escolha um método de autenticação com base em seus requisitos de ambiente e segurança:

A Identidade da Carga de Trabalho fornece autenticação sem senha vinculando um ServiceAccount do Kubernetes a uma Identidade Gerenciada do Azure.

1. Habilitar o OIDC no cluster do AKS

az aks update \
  --resource-group <your-resource-group> \
  --name <your-aks-cluster> \
  --enable-oidc-issuer \
  --enable-workload-identity

2. Criar uma Identidade Gerenciada e atribuir permissões RBAC

# Create identity
az identity create --resource-group <your-resource-group> --name aks-mcp-identity --location <your-location>

# Get IDs
IDENTITY_CLIENT_ID=$(az identity show --resource-group <your-resource-group> --name aks-mcp-identity --query "clientId" -o tsv)
IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group <your-resource-group> --name aks-mcp-identity --query "principalId" -o tsv)

# Assign Reader role (use Contributor for readwrite access)
az role assignment create --role "Reader" --assignee-object-id $IDENTITY_PRINCIPAL_ID --assignee-principal-type ServicePrincipal --scope "/subscriptions/<subscription-id>"

3. Criar uma credencial de identidade federada

AKS_OIDC_ISSUER=$(az aks show --resource-group <your-resource-group> --name <your-aks-cluster> --query "oidcIssuerProfile.issuerUrl" -o tsv)

az identity federated-credential create \
  --name "aks-mcp-federated-credential" \
  --identity-name aks-mcp-identity \
  --resource-group <your-resource-group> \
  --issuer $AKS_OIDC_ISSUER \
  --subject "system:serviceaccount:aks-mcp:aks-mcp" \
  --audience api://AzureADTokenExchange

Importante

Crie a credencial federada antes de instalar o Helm chart.

4. Instalar com a Identidade da carga de trabalho habilitada

helm install aks-mcp . \
  --namespace aks-mcp \
  --create-namespace \
  --set workloadIdentity.enabled=true \
  --set azure.clientId=$IDENTITY_CLIENT_ID \
  --set azure.subscriptionId=<your-subscription-id>

Habilitar o Ingress com o Roteamento de Aplicativos do Azure

Exponha o servidor MCP externamente usando o Roteamento de Aplicativos do Azure:

# Enable App Routing on your cluster
az aks approuting enable --resource-group <your-resource-group> --name <your-cluster-name>

# Install with Ingress enabled
helm install aks-mcp . \
  --namespace aks-mcp \
  --create-namespace \
  --set ingress.enabled=true \
  --set ingress.hosts[0].host=aks-mcp.example.com \
  --set ingress.hosts[0].paths[0].path=/ \
  --set ingress.hosts[0].paths[0].pathType=Prefix \
  --set azure.existingSecret=azure-credentials

Conectar seu cliente MCP

Após a implantação, conecte o assistente de IA ao servidor MCP remoto:

# Port forward for local testing
kubectl port-forward svc/aks-mcp 8000:8000 -n aks-mcp

Configure seu cliente MCP para se conectar:

{
  "mcpServers": {
    "aks-mcp": {
      "url": "http://localhost:8000",
      "transport": "streamable-http"
    }
  }
}

Para acesso no interior do cluster, use: http://aks-mcp.aks-mcp.svc.cluster.local:8000

Referência de configuração do Helm

Parâmetro DESCRIÇÃO Padrão
workloadIdentity.enabled Habilitar Identidade de Carga de Trabalho do Azure false
azure.clientId ID do cliente do Azure ""
azure.tenantId ID de Locatário do Azure ""
azure.clientSecret Segredo do Cliente do Azure ""
azure.subscriptionId ID de assinatura do Azure ""
azure.existingSecret Usar um segredo do Kubernetes existente ""
app.accessLevel Nível de acesso: readonly, , readwriteadmin readonly
app.transport Transporte: stdio, , ssestreamable-http streamable-http
oauth.enabled Habilitar a autenticação OAuth false
ingress.enabled Habilitar Ingress false

Desinstalar o servidor MCP do AKS

O processo de desinstalação do servidor DO AKS MCP depende do modo de implantação e do local em que ele está sendo executado no momento.

VS Code com extensão do AKS

  1. Abra a Paleta de Comandos (Ctrl+Shift+P no Windows/Linux ou Cmd+Shift+P no macOS).
  2. Executar MCP: Listar servidores.
  3. Selecione o AKS MCP na lista.
  4. Selecione Parar Servidor para interromper o servidor em execução.
  5. Para remover a configuração, selecione Excluir Configuração do Servidor.

Como alternativa, remova manualmente a configuração do servidor:

  1. Abra o .vscode/mcp.json arquivo ou as configurações do usuário do VS Code.
  2. Exclua a entrada aks-mcp-server do objeto servers ou github.copilot.chat.mcp.servers.
  3. Exclua o binário AKS-MCP do sistema (o local varia de acordo com o método de instalação).

Docker

Se estiver usando o Kit de Ferramentas do Docker MCP:

  1. Abra o Docker Desktop.
  2. Selecione MCP Toolkit na barra lateral esquerda.
  3. Localize o servidor AKS-MCP e desabilite-o.

Se estiver usando uma configuração em contêineres, pare e remova o contêiner:

docker stop <container-id>
docker rm <container-id>

Outros clientes MCP

Remova a entrada aks ou aks-mcp do seu arquivo de configuração do cliente MCP (por exemplo, Claude Desktop claude_desktop_config.json).

Problemas comuns e solução de problemas

Esta seção descreve problemas comuns de configuração e runtime, seus sintomas e como resolvê-los.

O servidor MCP do AKS não pode acessar o cluster

Sintomas:

  • Ferramentas retornam erros de autorização
  • Nenhum recurso está visível

Causas mais prováveis:

  • A identidade do usuário ou do MCP não tem permissões suficientes
  • Associação incorreta de ServiceAccount
  • Contexto kubeconfig configurado incorretamente (modo local)

Resolução:

  • Modo local: verifique se você tem permissões suficientes para acessar o cluster. Verifique se você está no cluster e no contexto de assinatura corretos.
  • Modo remoto: verificar as associações ClusterRole para o ServiceAccount usado pelo servidor MCP

Falha nas chamadas à API do Azure

Sintomas:

  • ferramentas call_az retornam erros de autenticação ou autorização

Causas mais prováveis:

  • Identidade da carga de trabalho não habilitada para o seu cluster
  • ServiceAccount não federado
  • Atribuições de RBAC do Azure ausentes

Resolução:

  • Verifique se a Identidade da Carga de Trabalho está habilitada em seu cluster
  • Verificar a configuração de identidade federada
  • Atribuir funções apropriadas do Azure à identidade gerenciada

Próximas etapas

Saiba mais sobre os recursos inteligentes criados nativamente para o AKS:

  • Sobre a CLI agêntica para AKS
  • Instalar e usar o agentic CLI para AKS