Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il server MCP (Model Context Protocol) del servizio Azure Kubernetes consente agli assistenti di intelligenza artificiale di interagire con i cluster del servizio Azure Kubernetes con chiarezza, sicurezza e controllo. Funge da ponte tra gli strumenti di intelligenza artificiale (ad esempio GitHub Copilot, Claude e altri assistenti di intelligenza artificiale compatibili con MCP) e il servizio Azure Kubernetes, traducendo le richieste in linguaggio naturale nelle operazioni del servizio Azure Kubernetes e restituendo i risultati in un formato comprensibile degli strumenti di intelligenza artificiale.
Il server MCP del servizio Azure Kubernetes si connette ad Azure usando Azure SDK e fornisce un set di strumenti che gli assistenti di intelligenza artificiale possono usare per interagire con le risorse del servizio Azure Kubernetes. Questi strumenti consentono agli agenti di intelligenza artificiale di eseguire attività come:
- Risoluzione dei problemi e diagnostica
- Analizzare lo stato di salute del cluster
- Operare le risorse AKS (CRUD)
- Ottenere i dettagli correlati ai cluster AKS (reti virtuali, subnet, gruppi di sicurezza di rete (NSG), tabelle di routing, ecc.).
- Abilitazione delle procedure consigliate e delle funzionalità consigliate
- Gestire le operazioni della flotta di Azure per scenari multi-cluster
Il server MCP di AKS è un progetto completamente open source, con modelli di esempio e configurazioni Helm disponibili nel repository GitHub.
Quando usare il server MCP di AKS (Azure Kubernetes Service)
Il server MCP di AKS può essere utilizzato con qualsiasi assistente di intelligenza artificiale compatibile, inclusa la CLI agente per AKS e Microsoft Copilot. I casi d'uso comuni includono:
- Porre domande sugli assistenti di intelligenza artificiale, ad esempio:
- "Perché i pod sono in sospeso in questo cluster?"
- Qual è la configurazione di rete del mio cluster AKS?
- "Creare un posizionamento per distribuire carichi di lavoro nginx nei cluster con l'etichetta app=frontend".
- Consentire agli strumenti di intelligenza artificiale di:
- Leggere lo stato e la configurazione del cluster
- Esaminare metriche, eventi e log
- Correlare i segnali tra Kubernetes e le risorse di Azure
- Applicare le modifiche e abilitare nuove funzionalità direttamente nel cluster
Tutte le azioni eseguite tramite il server MCP di Azure Kubernetes sono vincolate dal controllo degli accessi basato sui ruoli di Kubernetes (RBAC) e di Azure (RBAC Azure). Per impostazione predefinita, il server MCP del servizio Azure Kubernetes eredita le autorizzazioni dell'utente durante l'accesso alle risorse del cluster e di Azure. Per personalizzare i ruoli e le autorizzazioni del server MCP del servizio Azure Kubernetes, distribuire la modalità server MCP del servizio Azure Kubernetes remota con il controllo RBAC predefinito.
Strumenti disponibili
Il server MCP del servizio Azure Kubernetes offre un set completo di strumenti per interagire con i cluster del servizio Azure Kubernetes e le risorse associate. Per impostazione predefinita, il server usa strumenti unificati (call_az per le operazioni di Azure e call_kubectl per le operazioni Kubernetes) che offrono un'interfaccia più flessibile per interagire con Kubernetes e le risorse di Azure.
Sono disponibili tre set di autorizzazioni che è possibile abilitare per il server MCP del servizio Azure Kubernetes: sola lettura (impostazione predefinita), lettura/scrittura e amministratore. Alcuni strumenti richiedono autorizzazioni di lettura/scrittura o amministratore per eseguire azioni come la distribuzione di pod di debug o azioni CRUD nel cluster. Per abilitare le autorizzazioni di lettura/scrittura o amministratore per il server AKS-MCP, aggiungere il parametro del livello di accesso al file di configurazione MCP:
- Passare al file mcp.json oppure passare a MCP: Elenca server -> AKS-MCP -> Mostra dettagli di configurazione nel riquadro comandi (per VS Code;
Ctrl+Shift+Pin Windows/Linux oCmd+Shift+Pin macOS). - Nella sezione "args" di AKS-MCP aggiungere i parametri seguenti: "--access-level", "readwrite" o "admin"
Per esempio:
"args": [
"--transport",
"stdio",
"--access-level",
"readwrite"
]
Questi strumenti sono progettati per offrire funzionalità complete tramite interfacce unificate:
Operazioni dell'interfaccia della riga di comando di Azure (strumento unificato)
Strumento:call_az
Strumento unificato per l'esecuzione diretta dei comandi dell'interfaccia della riga di comando di Azure. Questo strumento fornisce un'interfaccia flessibile per eseguire qualsiasi comando dell'interfaccia della riga di comando di Azure.
Parametri:
-
cli_command: comando completo della CLI di Azure da eseguire. Ad esempio,az aks list --resource-group myRGoaz vm list --subscription <sub-id>. -
timeout: timeout opzionale in secondi (valore predefinito: 120)
Esempio di utilizzo:
{
"cli_command": "az aks list --resource-group myResourceGroup --output json"
}
Controllo di accesso:
- readonly: sono consentite solo operazioni di lettura
- readwrite/admin: sono consentite operazioni di lettura e scrittura
Importante
I comandi devono essere semplici chiamate dell'interfaccia della riga di comando di Azure senza funzionalità della shell come pipe (|), reindirizzamenti (>, <), sostituzione dei comandi o punto e virgola (;).
Operazioni Kubernetes (strumento unificato)
Strumento kubectl unificato
Strumento:call_kubectl
Strumento unificato per l'esecuzione diretta di comandi kubectl. Questo strumento fornisce un'interfaccia flessibile per eseguire qualsiasi kubectl comando con supporto completo degli argomenti.
Parametri:
-
args: argomenti del comando kubectl. Ad esempio,get pods,describe node mynodeoapply -f deployment.yaml.
Esempio di utilizzo:
{
"args": "get pods -n kube-system -o wide"
}
Controllo di accesso: Le operazioni sono limitate in base al livello di accesso configurato:
- readonly: sono consentite solo operazioni di lettura (get, describe, logs e così via)
- readwrite/admin: tutte le operazioni, inclusi i comandi di modifica (creazione, eliminazione, applicazione e così via)
Helm
Strumento:call_helm
Gestione pacchetti Helm per Kubernetes.
Cilium
Strumento:call_cilium
Interfaccia della riga di comando di Cilium per la sicurezza e la rete basata su eBPF.
Hubble
Strumento:call_hubble
Osservabilità della rete hubble per Cilium.
Gestione risorse di rete
Strumento:aks_network_resources
Strumento unificato per ottenere informazioni sulle risorse di rete di Azure usate dai cluster di AKS.
Tipi di risorse disponibili:
-
all: ottenere informazioni su tutte le risorse di rete -
vnet: informazioni sulla rete virtuale -
subnet: informazioni sulla subrete -
nsg: informazioni sul gruppo di sicurezza di rete -
route_table: informazioni sulla tabella di routing -
load_balancer: informazioni sul servizio di bilanciamento del carico -
private_endpoint: informazioni sull'endpoint privato
Monitoraggio e diagnostica
Strumento:aks_monitoring
Strumento unificato per le operazioni di monitoraggio e diagnostica di Azure per i cluster AKS.
Operazioni disponibili:
-
metrics: elencare i valori delle metriche per le risorse -
resource_health: ottenere gli eventi di integrità delle risorse per i cluster AKS -
app_insights: eseguire query KQL sui dati di telemetria di Application Insights -
diagnostics: Controllare se il cluster AKS ha impostazioni diagnostiche configurate -
control_plane_logs: eseguire query sui log del piano di controllo AKS con vincoli di sicurezza e convalida dell'intervallo temporale
Risorse di calcolo
Strumento:get_aks_vmss_info
- Ottenere una configurazione dettagliata dei Set di Scalabilità delle Macchine Virtuali (pool di nodi) nel cluster AKS.
Gestione della flotta
Strumento:az_fleet
Gestione completa della flotta di Azure per scenari multi-cluster.
Operazioni disponibili:
- Operazioni della flotta: list, show, create, update, delete, ottieni credenziali
- Operazioni del membro: elenca, mostra, crea, aggiorna, elimina
- Aggiornare le operazioni di esecuzione: elenco, visualizzazione, creazione, avvio, arresto, eliminazione
- Operazioni di strategia di aggiornamento: elenco, visualizzazione, creazione, eliminazione
- Operazioni ClusterResourcePlacement: elencare, mostrare, ottenere, creare, eliminare
Supporta sia la gestione della flotta di Azure che le operazioni CRD di Kubernetes ClusterResourcePlacement.
Rilevatori di diagnostica
Strumento:aks_detector
Strumento unificato per eseguire operazioni del detector diagnostico AKS.
Operazioni disponibili:
-
list: elenca tutti i rilevatori di cluster AKS disponibili -
run: eseguire un detettore diagnostico specifico per AKS -
run_by_category: eseguire tutti i rilevatori in una categoria specifica
Parametri:
-
operation(obbligatorio): operazione da eseguire (list,runorun_by_category) -
aks_resource_id(obbligatorio): ID risorsa cluster del servizio Azure Kubernetes -
detector_name(obbligatorio perrunl'operazione): nome del rilevatore da eseguire -
category(necessario per l'operazione dirun_by_category): categoria rilevatore -
start_time(obbligatorio perrunle operazioni erun_by_category): ora di inizio in formato ISO UTC (negli ultimi 30 giorni) -
end_time(obbligatorio perrunle operazioni erun_by_category): ora di fine in formato ISO UTC (negli ultimi 30 giorni, massimo 24 ore dall'inizio)
Categorie disponibili:
- Migliori pratiche
- Disponibilità e prestazioni del piano di controllo e del cluster
- Problemi di connettività
- Creare, aggiornare, eliminare e ridimensionare
- Elementi deprecati
- Identità e sicurezza
- Integrità nodo
- Storage
Esempio di utilizzo:
Strumento: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 Advisor
Strumento:aks_advisor_recommendation
Recuperare e gestire i consigli di Azure Advisor per i cluster AKS.
Operazioni disponibili:
-
list: elencare le raccomandazioni con le opzioni di filtro -
report: Generare rapporti di raccomandazione - Opzioni filtro: resource_group, cluster_names, categoria (Costo, HighAvailability, Prestazioni, Sicurezza), gravità (Alto, Medio, Basso)
Osservabilità in tempo reale
Strumento:inspektor_gadget_observability
Strumento di osservabilità in tempo reale per i cluster del servizio Azure Kubernetes usando eBPF.
Azioni disponibili:
-
deploy: distribuire Inspektor Gadget nel cluster -
undeploy: Rimuovere l'ispettore Gadget dal cluster -
is_deployed: controllare lo stato della distribuzione -
run: eseguire gadget a singolo uso -
start: avviare gadget continui -
stop: arresta l'esecuzione di widget -
get_results: recuperare i risultati dei gadget -
list_gadgets: Elenca i gadget disponibili
Gadget disponibili:
-
observe_dns: monitorare le richieste e le risposte DNS -
observe_tcp: monitorare le connessioni TCP -
observe_file_open: monitorare le operazioni del file system -
observe_process_execution: monitorare l'esecuzione del processo -
observe_signal: monitorare il recapito dei segnali -
observe_system_calls: monitorare le chiamate di sistema -
top_file: file principali per operazioni di I/O -
top_tcp: connessioni TCP principali per traffico -
tcpdump: Acquisizione di pacchetti di rete
Introduzione al server MCP di AKS
Il server AKS MCP ha due modalità: locale e remoto. In questa sezione vengono illustrati i casi d'uso e i processi di installazione per entrambe le modalità.
Server MCP locale
In modalità locale, il server MCP viene eseguito nel computer locale di uno sviluppatore e si connette al servizio Azure Kubernetes usando le autorizzazioni esistenti dello sviluppatore. Questa modalità è ideale per configurare rapidamente il tuo agente AI locale con esperienza e strumenti di AKS, in assenza di componenti lato cluster. La modalità locale può utilizzare il contesto del cluster corrente e applica le autorizzazioni Kubernetes e le RBAC di Azure dello sviluppatore. Per impostazione predefinita, il server MCP del servizio Azure Kubernetes locale supporta le modalità di trasporto STDIO e SSE.
Prerequisiti
Prima di installare il server MCP di AKS, configurare l'Azure CLI ed eseguire l'autenticazione:
az login
- Visual Studio Code con GitHub Copilot (scelta consigliata)
- Installazione binaria manuale
- Docker
- Installazione client personalizzata
Il modo più semplice per iniziare a usare AKS-MCP consiste nell'usare l'estensione del servizio Azure Kubernetes per VS Code. L'estensione del servizio Azure Kubernetes gestisce automaticamente i download binari, gli aggiornamenti e la configurazione, assicurandosi di avere sempre la versione più recente con impostazioni ottimali.
Passaggio 1: Installare l'estensione AKS
- Aprire VS Code e passare a Estensioni (
Ctrl+Shift+Xin Windows/Linux oCmd+Shift+Xin macOS). - Cercare il servizio Azure Kubernetes.
- Installare l'estensione ufficiale Microsoft AKS.
Passaggio 2: Avviare il server AKS-MCP
- Aprire il riquadro comandi (
Ctrl+Shift+Pin Windows/Linux oCmd+Shift+Pin macOS). - Cercare ed eseguire: AKS: Configurare il server MCP AKS.
Al termine dell'installazione, il server viene visualizzato in MCP: Elenco server (tramite Palette dei comandi). Da qui è possibile avviare il server MCP o visualizzarne lo stato.
Passaggio 3: Iniziare a usare AKS-MCP
Dopo l'avvio, il server MCP viene visualizzato nell'elenco a discesa Copilot Chat: Configure Tools in MCP Server: AKS MCP, pronto per migliorare le richieste contestuali in base al tuo ambiente AKS. Per impostazione predefinita, tutti gli strumenti server AKS-MCP sono abilitati. È possibile esaminare l'elenco degli strumenti disponibili e disabilitare qualsiasi elemento non necessario per lo scenario in uso.
Provare un prompt come "Elenca tutti i miei cluster AKS" per iniziare a usare gli strumenti dal server AKS-MCP.
Suggerimento
Configurazione WSL: se si usa VS Code in Windows con WSL, usare "command": "wsl" per richiamare il file binario WSL. Se VS Code è in esecuzione in WSL (Remote-WSL), chiamare direttamente il file binario o usare un wrapper bash.
Server MCP remoto
In modalità remota, il server MCP viene eseguito come carico di lavoro all'interno del cluster AKS o su qualsiasi risorsa computazionale a tua scelta. Questa modalità è ideale per gli ambienti di produzione con strumenti condivisi, autorizzazioni coerenti tra gli utenti e controllo di accesso completo usando Kubernetes ServiceAccount e Identità del carico di lavoro. Il server MCP del servizio Azure Kubernetes remoto usa il protocollo HTTP per facilitare le interazioni tra assistente intelligenza artificiale e cluster del servizio Azure Kubernetes.
Prerequisiti
- Cluster AKS con Kubernetes 1.19+
- Helm 3.8+
- CLI di Azure installata e autenticata (
az login)
Eseguire l'installazione con l'Helm Chart
Clonare il repository e installare il grafico Helm AKS-MCP:
git clone https://github.com/Azure/aks-mcp.git
cd aks-mcp/chart
helm install aks-mcp . --namespace aks-mcp --create-namespace
Per l'elenco completo dei parametri di configurazione, vedere la documentazione del grafico Helm.
Configurare l'autenticazione
Scegliere un metodo di autenticazione in base ai requisiti di sicurezza e dell'ambiente:
- Identità del carico di lavoro (scelta consigliata)
- OAuth per l'accesso in lettura-scrittura
- Principale del servizio con credenziale segreta esistente
- Credenziali dirette
L'identità del carico di lavoro fornisce l'autenticazione senza password collegando un account del servizio Kubernetes a un'identità gestita di Azure.
1. Abilitare OIDC nel cluster AKS
az aks update \
--resource-group <your-resource-group> \
--name <your-aks-cluster> \
--enable-oidc-issuer \
--enable-workload-identity
2. Creare un'identità gestita e conferire le autorizzazioni 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. Creare credenziali di identità federate
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
Creare le credenziali federate prima di installare il grafico Helm.
4. Installare con Workload Identity abilitata
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>
Abilitare l'ingresso con il routing delle app di Azure
Esporre il server MCP esternamente tramite Routing app di 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
Connettere il client MCP
Dopo la distribuzione, connettere l'assistente di intelligenza artificiale al server MCP remoto:
# Port forward for local testing
kubectl port-forward svc/aks-mcp 8000:8000 -n aks-mcp
Configurare il client MCP per la connessione:
{
"mcpServers": {
"aks-mcp": {
"url": "http://localhost:8000",
"transport": "streamable-http"
}
}
}
Per l'accesso in cluster, usare: http://aks-mcp.aks-mcp.svc.cluster.local:8000
Informazioni di riferimento sulla configurazione Helm
| Parametro | Descrzione | Impostazione predefinita |
|---|---|---|
workloadIdentity.enabled |
Abilitare l'identità del carico di lavoro di Azure | false |
azure.clientId |
Azure Client ID | "" |
azure.tenantId |
ID tenant di Azure | "" |
azure.clientSecret |
Segreto client di Azure | "" |
azure.subscriptionId |
ID dell'Abbonamento Azure | "" |
azure.existingSecret |
Usare un segreto Kubernetes esistente | "" |
app.accessLevel |
Livello di accesso: readonly, readwrite, admin |
readonly |
app.transport |
Trasporto: stdio, sse, streamable-http |
streamable-http |
oauth.enabled |
Abilitare l'autenticazione OAuth | false |
ingress.enabled |
Abilitare l'ingresso | false |
Disinstallare il server AKS MCP
Il processo di disinstallazione del server MCP di AKS dipende dalla modalità di distribuzione e dall'ambiente in cui è attualmente in esecuzione.
VS Code con estensione AKS (Azure Kubernetes Service)
- Aprire il riquadro comandi (
Ctrl+Shift+Pin Windows/Linux oCmd+Shift+Pin macOS). - Eseguire MCP: Mostra Server.
- Selezionare AKS MCP dall'elenco.
- Selezionare Arresta server per arrestare il server in esecuzione.
- Per rimuovere la configurazione, selezionare Elimina configurazione server.
In alternativa, rimuovere manualmente la configurazione del server:
- Aprire il
.vscode/mcp.jsonfile o le impostazioni utente di VS Code. - Eliminare l'
aks-mcp-serverelemento dall'oggettoserversogithub.copilot.chat.mcp.servers. - Eliminare il file binario AKS-MCP dal sistema (il percorso varia in base al metodo di installazione).
Docker
Se si usa Docker MCP Toolkit:
- Aprire Docker Desktop.
- Selezionare MCP Toolkit nella barra laterale sinistra.
- Trovare il server AKS-MCP e disabilitarlo.
Se si usa una configurazione conteneurizzata, arrestare e rimuovere il container:
docker stop <container-id>
docker rm <container-id>
Altri clienti MCP
Rimuovere la voce aks o aks-mcp dal file di configurazione del client MCP, ad esempio Claude Desktop di claude_desktop_config.json.
Problemi comuni e risoluzione dei problemi
Questa sezione descrive i problemi comuni di installazione e runtime, i relativi sintomi e come risolverli.
Il server MCP del servizio Azure Kubernetes non può accedere al cluster
Sintomi:
- Gli strumenti restituiscono errori di autorizzazione
- Nessuna risorsa visibile
Cause probabili:
- L'identità utente o MCP non dispone di autorizzazioni sufficienti
- Associazione ServiceAccount non corretta
- Contesto kubeconfig configurato in modo errato (modalità locale)
Risoluzione:
- Modalità locale: verificare di disporre di autorizzazioni sufficienti per accedere al cluster. Verificare di essere nel contesto corretto del cluster e della sottoscrizione.
- Modalità remota: verificare le associazioni ClusterRole per ServiceAccount usato dal server MCP
Le chiamate API di Azure hanno esito negativo
Sintomi:
- gli strumenti di call_az restituiscono errori di autenticazione o autorizzazione
Cause possibili:
- Identità del carico non abilitata per il cluster
- ServiceAccount non federato
- Assegnazioni di Azure RBAC mancanti
Risoluzione:
- Verifica che Workload Identity sia abilitato nel tuo cluster
- Verificare la configurazione dell'identità federata
- Assegnare ruoli di Azure appropriati all'identità gestita
Passaggi successivi
Altre informazioni sulle funzionalità intelligenti integrate in modo nativo per AKS:
- Informazioni sulla CLI agente per il servizio Azure Kubernetes (AKS)
- Installare e utilizzare l'agentic CLI per AKS