Uw AKS-cluster (Azure Kubernetes Service) verbinden met AI-agents met behulp van de MCP-server (Model Context Protocol)

Met de MCP-server (AKS Model Context Protocol) kunnen AI-assistenten communiceren met AKS-clusters (Azure Kubernetes Service) met duidelijkheid, veiligheid en controle. Het fungeert als een brug tussen AI-hulpprogramma's (zoals GitHub Copilot, Claude en andere MCP-compatibele AI-assistenten) en AKS, het vertalen van aanvragen voor natuurlijke taal in AKS-bewerkingen en het retourneren van de resultaten in een indeling die de AI-hulpprogramma's kunnen begrijpen.

De AKS MCP-server maakt verbinding met Azure met behulp van de Azure SDK en biedt een set hulpprogramma's die AI-assistenten kunnen gebruiken om te communiceren met AKS-resources. Met deze hulpprogramma's kunnen AI-agents taken uitvoeren, zoals:

  • Probleemoplossing en diagnose
  • De status van uw cluster analyseren
  • AKS-resources beheren (CRUD)
  • Details ophalen met betrekking tot AKS-clusters (VNets, subnetten, netwerkbeveiligingsgroepen (NSG's), routetabellen, enzovoort)
  • Aanbevolen procedures en aanbevolen functies inschakelen
  • Azure Fleet-bewerkingen beheren voor scenario's met meerdere clusters

De AKS MCP-server is volledig opensource-project, met voorbeeldsjablonen en Helm-configuraties die beschikbaar zijn in de GitHub-opslagplaats.

Wanneer gebruikt u de AKS MCP-server

De AKS MCP-server kan worden gebruikt met elke compatibele AI-assistent, waaronder de agentische CLI voor AKS en Microsoft Copilot. Veelvoorkomende gebruiksvoorbeelden zijn:

  • Vragen stellen over AI-assistenten, zoals:
    • Waarom zijn pods in afwachting in dit cluster?
    • Wat is de netwerkconfiguratie van mijn AKS-cluster?
    • Een plaatsing creëren om nginx-workloads uit te rollen in clusters met het label app=frontend.
  • AI-hulpprogramma's toestaan om het volgende te doen:
    • Clusterstatus en -configuratie lezen
    • Metrische gegevens, gebeurtenissen en logboeken inspecteren
    • Signalen correleren tussen Kubernetes en Azure-resources
    • Wijzigingen toepassen en nieuwe functies rechtstreeks in uw cluster inschakelen

Alle acties die worden uitgevoerd via de AKS MCP-server, worden beperkt door Kubernetes Role-Based RBAC (Access Control) en Azure RBAC. De AKS MCP-server neemt standaard de machtigingen van de gebruiker over bij het openen van clusters en Azure-resources. Als u de rollen en machtigingen van de AKS MCP-server wilt aanpassen, implementeert u de externe AKS MCP-servermodus met ingebouwd RBAC-besturingselement.

Beschikbare hulpmiddelen

De AKS MCP-server biedt een uitgebreide set hulpprogramma's voor interactie met AKS-clusters en bijbehorende resources. De server maakt standaard gebruik van geïntegreerde hulpprogramma's (call_az voor Azure-bewerkingen en call_kubectl voor Kubernetes-bewerkingen) die een flexibelere interface bieden voor interactie met Kubernetes en Azure-resources.

Er zijn drie sets machtigingen die u kunt inschakelen voor de AKS MCP-server: alleen-lezen (standaard), lezen/schrijven en beheerder. Voor sommige hulpprogramma's zijn lees-/schrijf- of beheerdersmachtigingen vereist om acties uit te voeren, zoals het implementeren van foutopsporingspods of CRUD-acties in uw cluster. Als u lees-/schrijf- of beheerdersmachtigingen voor de AKS-MCP-server wilt inschakelen, voegt u de parameter op toegangsniveau toe aan uw MCP-configuratiebestand:

  1. Navigeer naar uw mcp.json-bestand of ga naar MCP: Lijstservers -> AKS-MCP -> Configuratiedetails weergeven in het opdrachtenpalet (voor VS Code; Ctrl+Shift+P in Windows/Linux of Cmd+Shift+P in macOS).
  2. Voeg in de sectie 'args' van AKS-MCP de volgende parameters toe: '--access-level', 'readwrite' of 'admin'

Voorbeeld:

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

Deze hulpprogramma's zijn ontworpen om uitgebreide functionaliteit te bieden via geïntegreerde interfaces:

Azure CLI Operations (Unified Tool)

Tool:call_az

Geïntegreerd hulpprogramma voor het rechtstreeks uitvoeren van Azure CLI-opdrachten. Dit hulpprogramma biedt een flexibele interface voor het uitvoeren van een Azure CLI-opdracht.

Parameters:

  • cli_command: De volledige Azure CLI-opdracht die moet worden uitgevoerd. Een voorbeeld hiervan is az aks list --resource-group myRG of az vm list --subscription <sub-id>.
  • timeout: Optionele time-out in seconden (standaard: 120)

Voorbeeldgebruik:

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

Toegangsbeheer:

  • alleen-lezen: alleen leesbewerkingen zijn toegestaan
  • readwrite/admin: zowel lees- als schrijfbewerkingen zijn toegestaan

Belangrijk

Opdrachten moeten eenvoudige Azure CLI-aanroepen zijn zonder shellfuncties zoals pipes (|), omleidingen (>, <), vervanging van opdrachten of puntkomma's (;).

Kubernetes Operations (Unified Tool)

Geïntegreerd kubectl-hulpmiddel

Tool:call_kubectl

Geïntegreerd hulpprogramma voor het rechtstreeks uitvoeren van kubectl-opdrachten. Dit hulpprogramma biedt een flexibele interface voor het uitvoeren van elke kubectl opdracht met volledige ondersteuning voor argumenten.

Parameters:

  • args: De kubectl-opdrachtargumenten. Bijvoorbeeld get pods, describe node mynode of apply -f deployment.yaml.

Voorbeeldgebruik:

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

Toegangsbeheer: Bewerkingen worden beperkt op basis van het geconfigureerde toegangsniveau:

  • readonly: Alleen leesbewerkingen (ophalen, beschrijven, logboeken, enzovoort) zijn toegestaan
  • readwrite/admin: alle bewerkingen, waaronder muterende opdrachten (maken, verwijderen, toepassen, enzovoort)

Stuur

Tool:call_helm

Helm-pakketbeheer voor Kubernetes.

Cilium

Tool:call_cilium

Cilium CLI voor netwerken en beveiliging op basis van eBPF.

Hubble

Tool:call_hubble

Hubble-netwerkobserveerbaarheid voor Cilium.

Netwerkresourcebeheer

Tool:aks_network_resources

Geïntegreerd hulpprogramma voor het ophalen van azure-netwerkresourcegegevens die worden gebruikt door AKS-clusters.

Beschikbare resourcetypen:

  • all: Informatie over alle netwerkbronnen ophalen
  • vnet: Informatie over virtueel netwerk
  • subnet: Subnetgegevens
  • nsg: Informatie over netwerkbeveiligingsgroep
  • route_table: Routetabelgegevens
  • load_balancer: Load Balancer-informatie
  • private_endpoint: Informatie over privé-eindpunten
Bewaking en diagnostiek

Tool:aks_monitoring

Geïntegreerd hulpprogramma voor azure-bewakings- en diagnosebewerkingen voor AKS-clusters.

Beschikbare bewerkingen:

  • metrics: Metrische waarden voor resources weergeven
  • resource_health: Resource Health-gebeurtenissen voor AKS-clusters ophalen
  • app_insights: KQL-query's uitvoeren op Application Insights-telemetriegegevens
  • diagnostics: Controleer of voor een AKS-cluster diagnostische instellingen zijn geconfigureerd
  • control_plane_logs: Uitvoeren van query's op AKS control plane-logboeken met veiligheidsbeperkingen en validatie van tijdsbereik
Rekenresources

Tool:get_aks_vmss_info

  • Haal de gedetailleerde configuratie van uw virtuele-machine schaalsets (knooppuntgroepen) op in het AKS-cluster.
Vlootbeheer

Tool:az_fleet

Uitgebreid Azure Fleet-beheer voor scenario's met meerdere clusters.

Beschikbare bewerkingen:

  • Fleet Operations: lijst, weergeven, maken, bijwerken, verwijderen, get-credentials
  • Lidbewerkingen: lijst, weergeven, maken, bijwerken, verwijderen
  • Uitvoeringsbewerkingen bijwerken: lijst, weergeven, maken, starten, stoppen, verwijderen
  • Strategiebewerkingen bijwerken: lijst, weergeven, maken, verwijderen
  • ClusterResourcePlacement-bewerkingen: lijst, weergeven, ophalen, maken, verwijderen

Ondersteunt zowel Azure Fleet-beheer als Kubernetes ClusterResourcePlacement CRD-bewerkingen.

Diagnostische detectoren

Tool:aks_detector

Geïntegreerd hulpprogramma voor het uitvoeren van diagnostische AKS-detectorbewerkingen.

Beschikbare bewerkingen:

  • list: Alle beschikbare AKS-clusterdetectoren weergeven
  • run: Een specifieke AKS-diagnostische detector uitvoeren
  • run_by_category: Alle detectoren in een specifieke categorie uitvoeren

Parameters:

  • operation (vereist): De bewerking die moet worden uitgevoerd (list, runof run_by_category)
  • aks_resource_id (vereist): AKS-clusterresource-ID
  • detector_name (vereist voor run bewerking): De naam van de detector die moet worden uitgevoerd
  • category (vereist voor run_by_category bewerking): detectorcategorie
  • start_time (vereist voor run en run_by_category bewerkingen): Begintijd in UTC ISO-indeling (binnen de afgelopen 30 dagen)
  • end_time (vereist voor run en run_by_category bewerkingen): Eindtijd in UTC ISO-indeling (binnen de afgelopen 30 dagen, maximaal 24 uur vanaf het begin)

Beschikbare categorieën:

  • Beste praktijken
  • Beschikbaarheid en prestaties van cluster- en besturingsvlak
  • Connectiviteitsproblemen
  • Maken, upgraden, verwijderen en schalen
  • Verouderingen
  • Identiteit en beveiliging
  • Gezondheid van knooppunt
  • Storage

Voorbeeldgebruik:

Tool: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

Tool:aks_advisor_recommendation

Azure Advisor-aanbevelingen voor AKS-clusters ophalen en beheren.

Beschikbare bewerkingen:

  • list: Aanbevelingen weergeven met filteropties
  • report: Aanbevelingsrapporten genereren
  • Filteropties: resource_group, cluster_names, categorie (kosten, hoge beschikbaarheid, prestaties, beveiliging), ernst (hoog, gemiddeld, laag)
Realtime observatie

Tool:inspektor_gadget_observability

Realtime observatietool voor clusters van Azure Kubernetes Service (AKS) met behulp van eBPF.

Beschikbare acties:

  • deploy: Inspektor Gadget implementeren in cluster
  • undeploy: Inspektor Gadget verwijderen uit cluster
  • is_deployed: Implementatiestatus controleren
  • run: Gadgets met één shot uitvoeren
  • start: Doorlopende gadgets starten
  • stop: Stoppen met het uitvoeren van gadgets
  • get_results: Gadgetresultaten ophalen
  • list_gadgets: Beschikbare gadgets weergeven

Beschikbare gadgets:

  • observe_dns: DNS-aanvragen en -antwoorden bewaken
  • observe_tcp: TCP-verbindingen bewaken
  • observe_file_open: Bewaak bestandssysteembewerkingen
  • observe_process_execution: Procesuitvoering bewaken
  • observe_signal: Signaallevering bewaken
  • observe_system_calls: Systeemoproepen bewaken
  • top_file: Belangrijkste bestanden per I/O-bewerking
  • top_tcp: Belangrijkste TCP-verbindingen per verkeer
  • tcpdump: Netwerkpakketten vastleggen

Aan de slag met de AKS MCP-server

De AKS MCP-server heeft twee modi: lokaal en extern. In deze sectie behandelen we de use cases en installatieprocessen voor beide modi.

Lokale MCP-server

In de lokale modus wordt de MCP-server uitgevoerd op de lokale computer van een ontwikkelaar en maakt deze verbinding met AKS met behulp van de bestaande machtigingen van de ontwikkelaar. Deze modus is het beste voor het snel instellen van uw lokale AI-agent met AKS-expertise en hulpprogramma's zonder dat hiervoor onderdelen aan de clusterzijde zijn vereist. De lokale modus kan de huidige clustercontext gebruiken en dwingt de Kubernetes- en Azure RBAC-machtigingen van de ontwikkelaar af. Standaard staat de lokale AKS MCP-server de transportmodi STDIO en SSE toe.

Vereiste voorwaarden

Voordat u de AKS MCP-server installeert, moet u Azure CLI instellen en verifiëren:

az login

De eenvoudigste manier om aan de slag te gaan met AKS-MCP is via de Azure Kubernetes Service-extensie voor VS Code. De AKS-extensie verwerkt binaire downloads, updates en configuratie automatisch, zodat u altijd de nieuwste versie met optimale instellingen hebt.

Stap 1: De AKS-extensie installeren

  1. Open VS Code en ga naar Extensies (Ctrl+Shift+X in Windows/Linux of Cmd+Shift+X in macOS).
  2. Zoek naar Azure Kubernetes Service.
  3. Installeer de officiële Microsoft AKS-extensie.

Stap 2: de AKS-MCP-server starten

  1. Gebruik het Opdrachtenpalet (Ctrl+Shift+P in Windows/Linux of Cmd+Shift+P in macOS).
  2. Zoeken en uitvoeren: AKS: AKS MCP-server instellen.

Na een geslaagde installatie wordt de server weergegeven in MCP: Lijstservers (via opdrachtpalet). Van daaruit kunt u de MCP-server starten of de status ervan bekijken.

Stap 3: AKS-MCP gaan gebruiken

Zodra de MCP-server is gestart, wordt deze weergegeven in de vervolgkeuzelijst Copilot Chat: Configureer Hulpprogramma's, MCP Server: AKS MCPklaar om contextuele prompts te optimaliseren op basis van uw AKS-omgeving. Standaard zijn alle AKS-MCP serverhulpprogramma's ingeschakeld. U kunt de lijst met beschikbare hulpprogramma's bekijken en alle hulpprogramma's uitschakelen die niet vereist zijn voor uw scenario.

Probeer een prompt zoals "Al mijn AKS-clusters weergeven" om te beginnen met het gebruik van tools van de AKS-MCP-server.

Aanbeveling

WSL-configuratie: als u VS Code in Windows gebruikt met WSL, gebruikt "command": "wsl" u deze om het binaire WSL-bestand aan te roepen. Als VS Code wordt uitgevoerd in WSL (Remote-WSL), roept u het binaire bestand rechtstreeks aan of gebruikt u in plaats daarvan een bash-wrapper.

Externe MCP-server

In de externe modus wordt de MCP-server uitgevoerd als een workload in het AKS-cluster of een rekenproces van uw keuze. Deze modus is het meest geschikt voor productieomgevingen met gedeelde hulpprogramma's, consistente machtigingen voor gebruikers en volledig toegangsbeheer met behulp van Kubernetes ServiceAccount en Workload Identity. De externe AKS MCP-server maakt gebruik van het HTTP-protocol om interacties tussen uw AI-assistent en een AKS-cluster te vergemakkelijken.

Vereiste voorwaarden

  • AKS-cluster met Kubernetes 1.19+
  • Helm 3.8+
  • Azure CLI geïnstalleerd en geverifieerd (az login)

Installeren met de Helm-grafiek

Kloon de opslagplaats en installeer de AKS-MCP Helm-grafiek:

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

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

Zie de Helm chart documentatie voor de volledige lijst met configuratieparameters.

Verificatie configureren

Kies een verificatiemethode op basis van uw omgeving en beveiligingsvereisten:

Workloadidentiteit biedt verificatie zonder wachtwoord door een Kubernetes ServiceAccount te koppelen aan een door Azure beheerde identiteit.

1. OIDC inschakelen op uw AKS-cluster

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

2. Een beheerde identiteit maken en RBAC-machtigingen toewijzen

# 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. Een federatieve identiteitsreferentie maken

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

Belangrijk

Maak de federatieve referentiegegevens voordat u de Helm-chart installeert.

4. Installeren met workloadidentiteit ingeschakeld

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>

Inschakelen van Ingress met Azure App Routing

De MCP-server extern beschikbaar maken met behulp van Azure App Routing:

# 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

Uw MCP-client verbinden

Na de implementatie verbindt u uw AI-assistent met de externe MCP-server:

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

Configureer uw MCP-client om verbinding te maken:

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

Gebruik voor toegang in het cluster het volgende: http://aks-mcp.aks-mcp.svc.cluster.local:8000

Handleiding voor Helm-configuratie

Kenmerk Description Verstek
workloadIdentity.enabled Azure Workload Identity inschakelen false
azure.clientId Azure-client-id ""
azure.tenantId Azure-tenant-id ""
azure.clientSecret Azure Clientgeheim ""
azure.subscriptionId Azure-abonnements-id ""
azure.existingSecret Een bestaand Kubernetes-geheim gebruiken ""
app.accessLevel Toegangsniveau: readonly, readwriteadmin readonly
app.transport Vervoer: stdio, ssestreamable-http streamable-http
oauth.enabled OAuth-verificatie inschakelen false
ingress.enabled Ingress inschakelen false

De AKS MCP-server verwijderen

Het proces voor het verwijderen van de AKS MCP-server is afhankelijk van de implementatiemodus en waar deze momenteel wordt uitgevoerd.

VS Code met AKS-extensie

  1. Gebruik het Opdrachtenpalet (Ctrl+Shift+P in Windows/Linux of Cmd+Shift+P in macOS).
  2. Voer MCP uit: Servers vermelden.
  3. Selecteer AKS MCP in de lijst.
  4. Selecteer Server stoppen om de actieve server te stoppen.
  5. Als u de configuratie wilt verwijderen, selecteert u Serverconfiguratie verwijderen.

U kunt de serverconfiguratie ook handmatig verwijderen:

  1. Open uw .vscode/mcp.json bestand of VS Code-gebruikersinstellingen.
  2. Verwijder de aks-mcp-server vermelding uit het servers of github.copilot.chat.mcp.servers object.
  3. Verwijder de AKS-MCP binair bestand van uw systeem (locatie varieert op basis van de installatiemethode).

Docker

Als u Docker MCP Toolkit gebruikt:

  1. Open Docker Desktop.
  2. Selecteer MCP Toolkit in de linkerzijbalk.
  3. Zoek de AKS-MCP-server en schakel deze uit.

Als u een containerconfiguratie gebruikt, stopt en verwijdert u de container:

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

Andere MCP-clients

Verwijder de aks of aks-mcp vermelding uit uw MCP-clientconfiguratiebestand (bijvoorbeeld Claude Desktop's claude_desktop_config.json).

Veelvoorkomende problemen en probleemoplossing

In deze sectie vindt u een overzicht van veelvoorkomende problemen met installatie en runtime, hun symptomen en hoe u deze kunt oplossen.

AKS MCP-server heeft geen toegang tot het cluster

Symptomen:

  • Hulpprogramma's geven autorisatiefouten
  • Er zijn geen resources zichtbaar

Waarschijnlijke oorzaken:

  • De gebruikers- of MCP-identiteit beschikt niet over voldoende machtigingen
  • Onjuiste ServiceAccount-binding
  • Onjuist geconfigureerde kubeconfig-context (lokale modus)

Resolutie:

  • Lokale modus: Controleer of u voldoende machtigingen hebt om toegang te krijgen tot het cluster. Controleer of u zich in de juiste cluster- en abonnementscontext bevindt.
  • Externe modus: Controleer de ClusterRole-bindingen voor het ServiceAccount dat wordt gebruikt door de MCP-server

Azure API-aanroepen mislukken

Symptomen:

  • call_az tools retourneren verificatie- of autorisatiefouten

Waarschijnlijke oorzaken:

  • Workloadidentiteit is niet ingeschakeld voor uw cluster
  • ServiceAccount is niet gefedereerd
  • Ontbrekende Azure RBAC-toewijzingen

Resolutie:

  • Controleer of workloadidentiteit is ingeschakeld op uw cluster
  • Federatieve identiteitsconfiguratie controleren
  • De juiste Azure-rollen toewijzen aan de beheerde identiteit

Volgende stappen

Meer informatie over de intelligente functies die systeemeigen zijn gebouwd voor AKS:

  • Over de agent-gebaseerde CLI voor AKS
  • De agentische CLI voor AKS installeren en gebruiken