Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
AKS Model Context Protocol-servern (MCP) gör det möjligt för AI-assistenter att interagera med AkS-kluster (Azure Kubernetes Service) med tydlighet, säkerhet och kontroll. Det fungerar som en brygga mellan AI-verktyg (som GitHub Copilot, Claude och andra MCP-kompatibla AI-assistenter) och AKS, som översätter begäranden om naturligt språk till AKS-åtgärder och returnerar resultaten i ett format som AI-verktygen kan förstå.
AKS MCP-servern ansluter till Azure med hjälp av Azure SDK och tillhandahåller en uppsättning verktyg som AI-assistenter kan använda för att interagera med AKS-resurser. Med de här verktygen kan AI-agenter utföra uppgifter som:
- Felsökning och diagnostik
- Analysera hälsotillståndet för klustret
- Använda (CRUD) AKS-resurser
- Hämta information om AKS-kluster (virtuella nätverk, undernät, nätverkssäkerhetsgrupper (NSG:er), routningstabeller osv.)
- Aktivera metodtips och rekommenderade funktioner
- Hantera Azure Fleet-åtgärder för scenarier med flera kluster
AKS MCP-servern är ett helt projekt med öppen källkod, med exempelmallar och Helm-konfigurationer tillgängliga på GitHub-lagringsplatsen.
När du ska använda AKS MCP-servern
AKS MCP-servern kan användas med alla kompatibla AI-assistenter, inklusive agentic CLI för AKS och Microsoft Copilot. Vanliga användningsfall är:
- Ställa frågor till AI-assistenter som:
- "Varför väntar poddar i det här klustret?"
- "Vad är nätverkskonfigurationen för mitt AKS-kluster?"
- "Skapa en placering för att distribuera nginx-arbetsbelastningar till kluster med etiketten app=klientdel."
- Tillåta AI-verktyg att:
- Läsa klustertillstånd och konfiguration
- Inspektera mått, händelser och loggar
- Korrelera signaler mellan Kubernetes- och Azure-resurser
- Tillämpa ändringar och aktivera nya funktioner direkt i klustret
Alla åtgärder som utförs via AKS MCP-servern begränsas av Kubernetes Role-Based Access Control (RBAC) och Azure RBAC. Som standard ärver AKS MCP-servern användarens behörigheter vid åtkomst till kluster- och Azure-resurser. Om du vill anpassa rollerna och behörigheterna för AKS MCP-servern distribuerar du det fjärranslutna AKS MCP-serverläget med inbyggd RBAC-kontroll.
Tillgängliga verktyg
AKS MCP-servern innehåller en omfattande uppsättning verktyg för att interagera med AKS-kluster och associerade resurser. Som standard använder servern enhetliga verktyg (call_az för Azure-åtgärder och call_kubectl för Kubernetes-åtgärder) som ger ett mer flexibelt gränssnitt för att interagera med Kubernetes och Azure-resurser.
Det finns tre uppsättningar behörigheter som du kan aktivera för AKS MCP-servern: skrivskyddad (standard), läs-skriv och administratör. Vissa verktyg kräver läs-skriv- eller administratörsbehörigheter för att utföra åtgärder som att distribuera felsökningspoddar eller CRUD-åtgärder i din cluster. Om du vill aktivera läs- eller administratörsbehörigheter för AKS-MCP-servern lägger du till parametern för åtkomstnivå i MCP-konfigurationsfilen:
- Gå till filenmcp.json eller gå till MCP: Listservrar –> AKS-MCP –> Visa konfigurationsinformation i kommandopaletten (för VS Code,
Ctrl+Shift+Pi Windows/Linux ellerCmd+Shift+Pi macOS). - I avsnittet "args" i AKS-MCP lägger du till följande parametrar: "--access-level", "readwrite" eller "admin"
Till exempel:
"args": [
"--transport",
"stdio",
"--access-level",
"readwrite"
]
Dessa verktyg är utformade för att tillhandahålla omfattande funktioner via enhetliga gränssnitt:
Azure CLI-åtgärder (enhetligt verktyg)
Verktyg:call_az
Enhetligt verktyg för att köra Azure CLI-kommandon direkt. Det här verktyget tillhandahåller ett flexibelt gränssnitt för att köra alla Azure CLI-kommandon.
Parameters:
-
cli_command: Det fullständiga Azure CLI-kommandot som ska köras. Exempel:az aks list --resource-group myRGelleraz vm list --subscription <sub-id>. -
timeout: Valfri timeout i sekunder (standard: 120)
Exempel på användning:
{
"cli_command": "az aks list --resource-group myResourceGroup --output json"
}
Åtkomstkontroll:
- readonly: Endast läsåtgärder tillåts
- readwrite/admin: Både läs- och skrivåtgärder tillåts
Viktigt!
Kommandon måste vara enkla Azure CLI-anrop utan gränssnittsfunktioner som pipes (|), omdirigeringar (>, <), kommandoersättning eller semikolon (;).
Kubernetes-åtgärder (enhetligt verktyg)
Enhetligt kubectl-verktyg
Verktyg:call_kubectl
Enhetligt verktyg för att köra kubectl-kommandon direkt. Det här verktyget tillhandahåller ett flexibelt gränssnitt för att köra alla kubectl kommandon med fullständigt argumentstöd.
Parameters:
-
args: Kubectl-kommandoargumenten. Till exempelget pods,describe node mynode, ellerapply -f deployment.yaml.
Exempel på användning:
{
"args": "get pods -n kube-system -o wide"
}
Åtkomstkontroll: Åtgärderna är begränsade baserat på den konfigurerade åtkomstnivån:
- readonly: Endast läsåtgärder (hämta, beskriva, loggar osv.) tillåts
- readwrite/admin: Alla åtgärder inklusive muterande kommandon (skapa, ta bort, tillämpa osv.)
Hjälm
Verktyg:call_helm
Helm-pakethanterare för Kubernetes.
Cilium
Verktyg:call_cilium
Cilium CLI för eBPF-baserade nätverk och säkerhet.
Hubble
Verktyg:call_hubble
Hubble-nätverksobservabilitet för Cilium.
Hantering av nätverksresurser
Verktyg:aks_network_resources
Enhetligt verktyg för att hämta information om Azure-nätverksresurser som används av AKS-kluster.
Tillgängliga resurstyper:
-
all: Hämta information om alla nätverksresurser -
vnet: Information om virtuellt nätverk -
subnet: Information om undernät -
nsg: Information om nätverkssäkerhetsgrupp -
route_table: Routetabellinformation -
load_balancer: Information om Lastbalanseraren -
private_endpoint: Information om privat slutpunkt
Övervakning och diagnostik
Verktyg:aks_monitoring
Enhetligt verktyg för Azure-övervakning och diagnostikåtgärder för AKS-kluster.
Tillgängliga åtgärder:
-
metrics: Lista måttvärden för resurser -
resource_health: Hämta resurshälsohändelser för AKS-kluster -
app_insights: Köra KQL-frågor mot Application Insights-telemetridata -
diagnostics: Kontrollera om AKS-klustret har konfigurerat diagnostikinställningar -
control_plane_logs: Fråga ut AKS-kontrollplansloggar med säkerhetsrestriktioner och tidsintervallvalidering
Beräkningsresurser
Verktyg:get_aks_vmss_info
- Få en detaljerad konfiguration av dina virtuella maskinskalningsuppsättningar (nodpooler) i AKS-klustret.
Fleet Management
Verktyg:az_fleet
Omfattande Azure Fleet-hantering för scenarier med flera kluster.
Tillgängliga åtgärder:
- Fleet Operations: list, show, create, update, delete, hämta-uppgifter
- Medlemsåtgärder: lista, visa, skapa, uppdatera, ta bort
- Uppdatera körningsåtgärder: lista, visa, skapa, starta, stoppa, ta bort
- Uppdatera strategiåtgärder: lista, visa, skapa, ta bort
- ClusterResourcePlacement-åtgärder: lista, visa, hämta, skapa, ta bort
Stöder både Azure Fleet Management och Kubernetes ClusterResourcePlacement CRD-åtgärder.
Diagnostikdetektorer
Verktyg:aks_detector
Enhetligt verktyg för att utföra diagnostiska detektoroperationer för AKS.
Tillgängliga åtgärder:
-
list: Lista alla tillgängliga AKS-klusterdetektorer -
run: Kör en specifik AKS-diagnostikdetektor -
run_by_category: Kör alla detektorer i en specifik kategori
Parameters:
-
operation(krävs): Åtgärd för att utföra (list,runellerrun_by_category) -
aks_resource_id(krävs): RESURS-ID för AKS-kluster -
detector_name(krävs förrundrift): Namnet på detektorn som ska köras -
category(krävs förrun_by_categorydrift): Detektorkategori -
start_time(krävs förrunochrun_by_categoryåtgärder): Starttid i UTC ISO-format (inom de senaste 30 dagarna) -
end_time(krävs förrunochrun_by_categoryåtgärder): Sluttid i UTC ISO-format (inom de senaste 30 dagarna, högst 24 timmar från start)
Tillgängliga kategorier:
- Metodtips
- Tillgänglighet och prestanda för kluster- och kontrollplan
- Anslutningsproblem
- Skapa, uppgradera, ta bort och skala
- Utfasningar
- Identitet och säkerhet
- Nodhälsa
- Storage
Exempel på användning:
Verktyg: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
Verktyg:aks_advisor_recommendation
Hämta och hantera Azure Advisor-rekommendationer för AKS-kluster.
Tillgängliga åtgärder:
-
list: Lista rekommendationer med filtreringsalternativ -
report: Generera rekommendationsrapporter - Filteralternativ: resource_group, cluster_names, kategori (kostnad, högtillgänglighet, prestanda, säkerhet), allvarlighetsgrad (hög, medel, låg)
Observerbarhet i realtid
Verktyg:inspektor_gadget_observability
Realtidsobservabilitetsverktyg för AkS-kluster (Azure Kubernetes Service) med eBPF.
Tillgängliga åtgärder:
-
deploy: Distribuera Inspektor Gadget på klustret -
undeploy: Ta bort Inspektor Gadget från klustret -
is_deployed: Kontrollera distributionsstatus -
run: Kör engångsapparater -
start: Starta kontinuerliga enheter -
stop: Sluta köra enheter -
get_results: Hämta gadgetresultat -
list_gadgets: Lista tillgängliga gadgetar
Tillgängliga prylar:
-
observe_dns: Övervaka DNS-begäranden och svar -
observe_tcp: Övervaka TCP-anslutningar -
observe_file_open: Övervaka filsystemåtgärder -
observe_process_execution: Övervaka processkörning -
observe_signal: Övervaka signalleverans -
observe_system_calls: Övervaka systemanrop -
top_file: De vanligaste filerna efter I/O-åtgärder -
top_tcp: De vanligaste TCP-anslutningarna efter trafik -
tcpdump: Samla in nätverkspaket
Komma igång med AKS MCP-servern
AKS MCP-servern har två lägen: lokal och fjärransluten. I det här avsnittet tar vi upp användningsfall och installationsprocesser för båda lägena.
Lokal MCP-server
I lokalt läge körs MCP-servern på en utvecklares lokala dator och ansluter till AKS med hjälp av utvecklarens befintliga behörigheter. Det här läget är bäst för att snabbt konfigurera din lokala AI-agent med AKS-expertis och verktyg utan att kräva några komponenter på klustersidan. Lokalt läge kan använda den aktuella klusterkontexten och framtvinga utvecklarens Kubernetes- och Azure RBAC-behörigheter. Som standard stöder den lokala AKS MCP-servern STDIO- och SSE-transportlägena.
Förutsättningar
Innan du installerar AKS MCP-servern konfigurerar du Azure CLI och autentiserar:
az login
- Visual Studio Code med GitHub Copilot (rekommenderas)
- Manuell binär installation
- Docker
- Anpassad klientinstallation
Det enklaste sättet att komma igång med AKS-MCP är via Azure Kubernetes Service Extension för VS Code. AKS-tillägget hanterar binära nedladdningar, uppdateringar och konfiguration automatiskt, vilket säkerställer att du alltid har den senaste versionen med optimala inställningar.
Steg 1: Installera AKS-tillägget
- Öppna VS Code och gå till Tillägg (
Ctrl+Shift+Xi Windows/Linux ellerCmd+Shift+Xpå macOS). - Sök efter Azure Kubernetes Service.
- Installera det officiella Microsoft AKS-tillägget.
Steg 2: Starta AKS-MCP-servern
- Öppna kommandopaletten (
Ctrl+Shift+Pi Windows/Linux ellerCmd+Shift+Ppå macOS). - Sök och kör: AKS: Konfigurera AKS MCP Server.
När installationen har slutförts visas servern i MCP: Listservrar (via kommandopaletten). Därifrån kan du starta MCP-servern eller visa dess status.
Steg 3: Börja använda AKS-MCP
När den har startats visas MCP-servern i listrutan Copilot Chat: Configure Tools (Konfigurera verktyg ) under MCP Server: AKS MCP, redo att förbättra kontextuella frågor baserat på din AKS-miljö. Som standard är alla AKS-MCP serververktyg aktiverade. Du kan granska listan över tillgängliga verktyg och inaktivera alla som inte krävs för ditt scenario.
Prova en fråga som "Lista alla mina AKS-kluster" för att börja använda verktyg från AKS-MCP-servern.
Tips/Råd
WSL-konfiguration: Om du använder VS Code i Windows med WSL använder du "command": "wsl" för att anropa WSL-binärfilen. Om VS Code körs i WSL (Remote-WSL) anropar du binärfilen direkt eller använder en bash-omslutning i stället.
Fjärr-MCP-server
I fjärrläge körs MCP-servern som en arbetsbelastning i AKS-klustret eller valfri beräkning. Det här läget passar bäst för produktionsmiljöer med delade verktyg, konsekventa behörigheter för användare och fullständig åtkomstkontroll med Kubernetes ServiceAccount och arbetsbelastningsidentitet. AKS MCP-fjärrservern använder HTTP-protokollet för att underlätta interaktioner mellan AI-assistenten och AKS-klustret.
Förutsättningar
- AKS-kluster med Kubernetes 1.19+
- Helm 3.8+
- Azure CLI installerat och autentiserat (
az login)
Installera med Helm-diagrammet
Klona lagringsplatsen och installera AKS-MCP Helm-diagrammet:
git clone https://github.com/Azure/aks-mcp.git
cd aks-mcp/chart
helm install aks-mcp . --namespace aks-mcp --create-namespace
En fullständig lista över konfigurationsparametrar finns i dokumentationen för Helm-diagram.
Konfigurera autentisering
Välj en autentiseringsmetod baserat på din miljö och dina säkerhetskrav:
- Arbetsbelastningsidentitet (rekommenderas)
- OAuth för läs- och skrivåtkomst
- Tjänstens huvudnamn med befintlig hemlighet
- Direkta autentiseringsuppgifter
Arbetsbelastningsidentitet ger lösenordslös autentisering genom att länka en Kubernetes ServiceAccount till en Hanterad Azure-identitet.
1. Aktivera OIDC i ditt AKS-kluster
az aks update \
--resource-group <your-resource-group> \
--name <your-aks-cluster> \
--enable-oidc-issuer \
--enable-workload-identity
2. Skapa en hanterad identitet och tilldela RBAC-behörigheter
# 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. Skapa en federerad identitetsautentiseringsuppgift
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
Viktigt!
Skapa federerade autentiseringsuppgifter innan du installerar Helm-diagrammet.
4. Installera med arbetsbelastningsidentitet aktiverad
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>
Aktivera ingress med Azure App Routing
Exponera MCP-servern externt med Hjälp av 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
Ansluta mcp-klienten
Efter distributionen ansluter du AI-assistenten till den fjärranslutna MCP-servern:
# Port forward for local testing
kubectl port-forward svc/aks-mcp 8000:8000 -n aks-mcp
Konfigurera MCP-klienten så att den ansluter:
{
"mcpServers": {
"aks-mcp": {
"url": "http://localhost:8000",
"transport": "streamable-http"
}
}
}
För åtkomst i klustret använder du: http://aks-mcp.aks-mcp.svc.cluster.local:8000
Referens för Helm-konfiguration
| Parameter | Description | Förinställning |
|---|---|---|
workloadIdentity.enabled |
Aktivera Azure-arbetsbelastningsidentitet | false |
azure.clientId |
Azure-klient-ID | "" |
azure.tenantId |
Azure-klientorganisation-ID | "" |
azure.clientSecret |
Azure-klienthemlighet | "" |
azure.subscriptionId |
Azure-prenumerations-ID | "" |
azure.existingSecret |
Använda en befintlig Kubernetes-hemlighet | "" |
app.accessLevel |
Åtkomstnivå: readonly, readwrite, admin |
readonly |
app.transport |
Transport: stdio, sse, streamable-http |
streamable-http |
oauth.enabled |
Aktivera OAuth-autentisering | false |
ingress.enabled |
Aktivera Ingress | false |
Avinstallera AKS MCP-servern
Processen för att avinstallera AKS MCP-servern beror på distributionsläget och var den körs för närvarande.
VS Code med AKS-tillägg
- Öppna kommandopaletten (
Ctrl+Shift+Pi Windows/Linux ellerCmd+Shift+Ppå macOS). - Kör MCP: Listservrar.
- Välj AKS MCP i listan.
- Välj Stoppa server för att stoppa servern som körs.
- Om du vill ta bort konfigurationen väljer du Ta bort serverkonfiguration.
Du kan också ta bort serverkonfigurationen manuellt:
- Öppna din
.vscode/mcp.json-fil eller VS Code-användarinställningar. - Ta bort
aks-mcp-server-posten frånservers-objektet ellergithub.copilot.chat.mcp.servers. - Ta bort AKS-MCP binärfilen från systemet (platsen varierar beroende på installationsmetoden).
Docker
Om du använder Docker MCP Toolkit:
- Öppna Docker Desktop.
- Välj MCP Toolkit i det vänstra sidofältet.
- Leta upp AKS-MCP-servern och inaktivera den.
Om du använder en containeriserad konfiguration ska du stoppa och ta bort containern:
docker stop <container-id>
docker rm <container-id>
Andra MCP-klienter
Ta bort aks- eller aks-mcp-posten från din MCP-klientkonfigurationsfil (till exempel Claude Desktops claude_desktop_config.json).
Kända problem och felsökning
I det här avsnittet beskrivs vanliga problem med installation och körning, deras symptom och hur du löser dem.
AKS MCP-servern kan inte komma åt klustret
Symtom:
- Verktyg returnerar auktoriseringsfel
- Inga resurser visas
Troliga orsaker:
- Användar- eller MCP-identiteten har inte tillräcklig behörighet
- Felaktig ServiceAccount-bindning
- Felkonfigurerad kubeconfig-kontext (lokalt läge)
Upplösning:
- Lokalt läge: Kontrollera att du har tillräcklig behörighet för att komma åt klustret. Kontrollera att du är i rätt kluster- och prenumerationskontext.
- Fjärrläge: Verifiera ClusterRole-bindningarna för det ServiceAccount som används av MCP-servern
Azure API-anrop misslyckas
Symtom:
- call_az verktyg returnerar autentiserings- eller auktoriseringsfel
Troliga orsaker:
- Arbetsbelastningsidentiteten är inte aktiverad för klustret
- ServiceAccount är inte federerat
- Azure RBAC-tilldelningar saknas
Upplösning:
- Kontrollera att Workload Identity är aktiverad i klustret.
- Verifiera federerad identitetskonfiguration
- Tilldela lämpliga Azure-roller till den hanterade identiteten
Nästa steg
Läs mer om intelligenta funktioner som skapats internt för AKS:
- Om agentic CLI för AKS
- Installera och använd agentic CLI för AKS (Azure Kubernetes Service)