Hubungkan kluster Azure Kubernetes Service (AKS) Anda ke agen AI menggunakan server Model Context Protocol (MCP)

Server AKS Model Context Protocol (MCP) memungkinkan asisten AI berinteraksi dengan kluster Azure Kubernetes Service (AKS) dengan kejelasan, keamanan, dan kontrol. Ini berfungsi sebagai jembatan antara alat AI (seperti GitHub Copilot, Claude, dan asisten AI lain yang kompatibel dengan MCP) dan AKS, menerjemahkan permintaan bahasa alami ke dalam operasi AKS dan mengembalikan hasilnya dalam format yang dapat dipahami alat AI.

Server AKS MCP terhubung ke Azure menggunakan Azure SDK dan menyediakan serangkaian alat yang dapat digunakan asisten AI untuk berinteraksi dengan sumber daya AKS. Alat-alat ini memungkinkan agen AI untuk melakukan tugas seperti:

  • Pemecahan masalah dan diagnostik
  • Menganalisis kesehatan kluster Anda
  • Mengoperasikan sumber daya AKS dengan operasi CRUD (Create, Read, Update, Delete)
  • Ambil detail yang terkait dengan kluster AKS (VNet, Subnet, Kelompok Keamanan Jaringan (NSG), Tabel Rute, dll.)
  • Mengaktifkan praktik terbaik dan fitur yang direkomendasikan
  • Mengelola operasi Azure Fleet untuk skenario multi-kluster

Server AKS MCP adalah proyek sumber terbuka sepenuhnya, dengan contoh templat dan konfigurasi Helm yang tersedia di repositori GitHub.

Kapan menggunakan server AKS MCP

Server AKS MCP dapat digunakan dengan asisten AI yang kompatibel, termasuk agentic CLI untuk AKS dan Microsoft Copilot. Kasus penggunaan umum meliputi:

  • Mengajukan pertanyaan kepada asisten AI seperti:
    • Mengapa pod menunggu di kluster ini?
    • "Apa konfigurasi jaringan kluster AKS saya?"
    • "Buat penempatan untuk menyebarkan beban kerja nginx ke kluster dengan label app=frontend."
  • Mengizinkan alat AI untuk:
    • Membaca status dan konfigurasi kluster
    • Memeriksa metrik, peristiwa, dan log
    • Menghubungkan sinyal di seluruh sumber daya Kubernetes dan Azure
    • Terapkan perubahan dan aktifkan fitur baru langsung di kluster Anda

Semua tindakan yang dilakukan melalui server AKS MCP dibatasi oleh Kubernetes Role-Based Access Control (RBAC) dan Azure RBAC. Secara default, server AKS MCP mewarisi izin pengguna saat mengakses kluster dan sumber daya Azure. Untuk menyesuaikan peran dan izin server AKS MCP, sebarkan mode server AKS MCP jarak jauh dengan kontrol RBAC bawaan.

Alat yang tersedia

Server AKS MCP menyediakan serangkaian alat komprehensif untuk berinteraksi dengan kluster AKS dan sumber daya terkait. Secara default, server menggunakan alat terpadu (call_az untuk operasi Azure dan call_kubectl untuk operasi Kubernetes) yang menyediakan antarmuka yang lebih fleksibel untuk berinteraksi dengan kubernetes dan sumber daya Azure.

Ada tiga set izin yang dapat Anda aktifkan untuk server AKS MCP: baca-saja (default), baca-tulis, dan admin. Beberapa alat memerlukan izin baca-tulis atau admin untuk melakukan tindakan seperti menyebarkan pod penelusuran kesalahan atau tindakan CRUD pada kluster Anda. Untuk mengaktifkan izin baca-tulis atau admin untuk server AKS-MCP, tambahkan parameter tingkat akses ke file konfigurasi MCP Anda:

  1. Buka file mcp.json Anda, atau buka MCP: Daftar Server -> AKS-MCP -> Tampilkan Detail Konfigurasi di Palet Perintah (Untuk Visual Studio Code; Ctrl+Shift+P di Windows/Linux atau Cmd+Shift+P di macOS).
  2. Di bagian "args" dari AKS-MCP, tambahkan parameter berikut: "--access-level," "readwrite" atau "admin"

Contohnya:

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

Alat-alat ini dirancang untuk menyediakan fungsionalitas komprehensif melalui antarmuka terpadu:

Operasi Azure CLI (Alat Terpadu)

Alat:call_az

Alat terpadu untuk menjalankan perintah Azure CLI secara langsung. Alat ini menyediakan antarmuka yang fleksibel untuk menjalankan perintah Azure CLI apa pun.

Parameter:

  • cli_command: Perintah Azure CLI lengkap untuk dijalankan. Misalnya, az aks list --resource-group myRG atau az vm list --subscription <sub-id>.
  • timeout: Batas waktu opsional dalam detik (default: 120)

Contoh Penggunaan:

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

Kontrol Akses:

  • readonly: Hanya operasi baca yang diizinkan
  • readwrite/admin: Operasi baca dan tulis diizinkan

Penting

Perintah harus berupa pemanggilan Azure CLI sederhana tanpa fitur shell seperti pipa (|), pengalihan (>, <), penggantian perintah, atau titik koma (;).

Operasi Kubernetes (Alat Terpadu)

Alat terpadu kubectl

Alat:call_kubectl

Alat terpadu untuk menjalankan perintah kubectl secara langsung. Alat ini menyediakan antarmuka yang fleksibel untuk menjalankan perintah apa pun kubectl dengan dukungan argumen penuh.

Parameter:

  • args: Argumen perintah kubectl. Misalnya, get pods, describe node mynode, atau apply -f deployment.yaml.

Contoh Penggunaan:

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

Kontrol Akses: Operasi dibatasi berdasarkan tingkat akses yang dikonfigurasi:

  • baca-saja: Hanya operasi baca (dapatkan, jelaskan, log, dll.) yang diizinkan
  • readwrite/admin: Semua operasi termasuk perintah bermutasi (buat, hapus, terapkan, dll.)

Helmet

Alat:call_helm

Manajer paket Helm untuk Kubernetes.

Cilium

Alat:call_cilium

Cilium CLI untuk jaringan dan keamanan berbasis eBPF.

Hubble

Alat:call_hubble

Observabilitas jaringan Hubble untuk Cilium.

Manajemen Sumber Daya Jaringan

Alat:aks_network_resources

Alat terpadu untuk mendapatkan informasi sumber daya jaringan Azure yang digunakan oleh kluster AKS.

Jenis Sumber Daya yang Tersedia:

  • all: Dapatkan informasi tentang semua sumber daya jaringan
  • vnet: Informasi Jaringan Virtual
  • subnet: Informasi subnet
  • nsg: Informasi Kelompok Keamanan Jaringan
  • route_table: Informasi Tabel Rute
  • load_balancer: Informasi Load Balancer
  • private_endpoint: Informasi titik akhir privat
Pemantauan dan Diagnostik

Alat:aks_monitoring

Alat terpadu untuk pemantauan Azure dan operasi diagnostik untuk kluster AKS.

Operasi yang Tersedia:

  • metrics: Mencantumkan nilai metrik untuk sumber daya
  • resource_health: Mengambil kejadian kesehatan sumber daya untuk kluster AKS
  • app_insights: Menjalankan kueri KQL terhadap data telemetri Application Insights
  • diagnostics: Periksa apakah kluster AKS memiliki pengaturan diagnostik yang dikonfigurasi
  • control_plane_logs: Mengkueri log sarana kontrol AKS dengan batasan keamanan dan validasi rentang waktu
Sumber Daya Komputasi

Alat:get_aks_vmss_info

  • Dapatkan konfigurasi terperinci dari Virtual Machine Scale Sets (kumpulan simpul) Anda di kluster AKS
Manajemen Armada

Alat:az_fleet

Manajemen Azure Fleet yang komprehensif untuk skenario multi-kluster.

Operasi yang Tersedia:

  • Operasi Armada: daftar, tampilkan, buat, perbarui, hapus, dapatkan kredensial
  • Operasi Anggota: mencantumkan, menampilkan, membuat, memperbarui, menghapus
  • Operasi Eksekusi Pembaruan: daftar, tampilkan, buat, mulai, hentikan, hapus
  • Perbarui Operasi Strategi: mencantumkan, menampilkan, membuat, menghapus
  • Operasi ClusterResourcePlacement: daftar, tampilkan, dapatkan, buat, hapus

Mendukung manajemen Azure Fleet dan operasi Kubernetes ClusterResourcePlacement CRD.

Detektor Diagnostik

Alat:aks_detector

Alat terpadu untuk menjalankan operasi detektor diagnostik AKS.

Operasi yang Tersedia:

  • list: Mencantumkan semua detektor kluster AKS yang tersedia
  • run: Jalankan detektor diagnostik AKS tertentu
  • run_by_category: Jalankan semua detektor dalam kategori tertentu

Parameter:

  • operation (wajib): Operasi yang akan dilakukan (list, run, atau run_by_category)
  • aks_resource_id (wajib): ID sumber daya kluster AKS
  • detector_name (diperlukan untuk run operasi): Nama detektor yang akan dijalankan
  • category (diperlukan untuk run_by_category operasi): Kategori detektor
  • start_time (diperlukan untuk operasi run dan run_by_category): Waktu mulai dalam format UTC ISO (dalam 30 hari terakhir)
  • end_time (diperlukan untuk run operasi dan run_by_category ): Waktu akhir dalam format ISO UTC (dalam 30 hari terakhir, maks 24 jam dari awal)

Kategori yang Tersedia:

  • Praktik Terbaik
  • Ketersediaan dan Performa Kluster dan Pesawat Kendali
  • Masalah Konektivitas
  • Membuat, Meningkatkan, Menghapus, dan Menskalakan
  • Depresiasi
  • Identitas dan Keamanan
  • Kesehatan Node
  • Storage

Contoh Penggunaan:

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

Alat:aks_advisor_recommendation

Mengambil dan mengelola rekomendasi Azure Advisor untuk kluster AKS.

Operasi yang Tersedia:

  • list: Mencantumkan rekomendasi dengan opsi pemfilteran
  • report: Hasilkan laporan rekomendasi
  • Opsi Filter: resource_group, cluster_names, kategori (Biaya, Ketersediaan Tinggi, Performa, Keamanan), tingkat keparahan (Tinggi, Sedang, Rendah)
Pengamatan Real-time

Alat:inspektor_gadget_observability

Alat pengamatan real time untuk kluster Azure Kubernetes Service (AKS) menggunakan eBPF.

Tindakan yang Tersedia:

  • deploy: Menyebarkan Inspektor Gadget ke kluster
  • undeploy: Hapus Gadget Inspektor dari kluster
  • is_deployed: Periksa status penyebaran
  • run: Jalankan gadget satu kali
  • start: Mulai gadget berkelanjutan
  • stop: Berhenti menjalankan perangkat
  • get_results: Ambil hasil gadget
  • list_gadgets: Mencantumkan gadget yang tersedia

Gadget yang Tersedia:

  • observe_dns: Memantau permintaan dan respons DNS
  • observe_tcp: Memantau koneksi TCP
  • observe_file_open: Memantau operasi sistem file
  • observe_process_execution: Memantau eksekusi proses
  • observe_signal: Memantau pengiriman sinyal
  • observe_system_calls: Memantau panggilan sistem
  • top_file: File teratas menurut operasi I/O
  • top_tcp: Koneksi TCP teratas berdasarkan lalu lintas
  • tcpdump: Mengambil paket jaringan

Mulai menggunakan server AKS MCP

Server AKS MCP memiliki dua mode: lokal dan jarak jauh. Di bagian ini, kami membahas kasus penggunaan dan proses penginstalan untuk kedua mode.

Server MCP lokal

Dalam mode lokal, server MCP berjalan pada komputer lokal pengembang dan terhubung ke AKS menggunakan izin pengembang yang ada. Mode ini paling baik untuk menyiapkan agen AI lokal Anda dengan cepat dengan keahlian dan alat AKS tanpa memerlukan komponen sisi kluster apa pun. Mode lokal dapat menggunakan konteks kluster yang sedang digunakan dan menerapkan izin pengembang untuk Kubernetes dan Azure RBAC. Secara default, server AKS MCP lokal mendukung mode transportasi STDIO dan SSE.

Prasyarat

Sebelum menginstal server AKS MCP, siapkan Azure CLI dan autentikasi:

az login

Cara term mudah untuk memulai AKS-MCP adalah melalui Ekstensi Azure Kubernetes Service untuk Visual Studio Code. Ekstensi AKS menangani unduhan, pembaruan, dan konfigurasi biner secara otomatis, memastikan Anda selalu memiliki versi terbaru dengan pengaturan optimal.

Langkah 1: Instal Ekstensi AKS

  1. Buka Visual Studio Code dan buka Ekstensi (Ctrl+Shift+X di Windows/Linux atau Cmd+Shift+X di macOS).
  2. Cari Azure Kubernetes Service.
  3. Instal ekstensi AKS resmi dari Microsoft.

Langkah 2: Luncurkan Server AKS-MCP

  1. Buka Palet Perintah (Ctrl+Shift+P di Windows/Linux atau Cmd+Shift+P di macOS).
  2. Cari dan jalankan: AKS: Siapkan AKS MCP Server.

Setelah penginstalan berhasil, server muncul di MCP: Daftar Server (melalui Palet Perintah). Dari sana, Anda dapat memulai server MCP atau melihat statusnya.

Langkah 3: Mulai Menggunakan AKS-MCP

Setelah dimulai, server MCP muncul di dropdown Obrolan Copilot: Konfigurasikan Alat di bawah MCP Server: AKS MCP, siap untuk meningkatkan permintaan kontekstual berdasarkan lingkungan AKS Anda. Secara default, semua alat server AKS-MCP diaktifkan. Anda dapat meninjau daftar alat yang tersedia dan menonaktifkan apa pun yang tidak diperlukan untuk skenario Anda.

Coba perintah seperti "Cantumkan semua kluster AKS saya" untuk mulai menggunakan alat dari server AKS-MCP.

Petunjuk / Saran

Konfigurasi WSL: Jika Anda menggunakan Visual Studio Code di Windows dengan WSL, gunakan "command": "wsl" untuk memanggil biner WSL. Jika Visual Studio Code berjalan di dalam WSL (Remote-WSL), panggil biner secara langsung atau gunakan pembungkus bash sebagai gantinya.

Server MCP jarak jauh

Dalam mode jarak jauh, server MCP berjalan sebagai beban kerja di dalam kluster AKS atau komputasi apa pun yang Anda pilih. Mode ini paling baik untuk lingkungan produksi dengan alat bersama, izin yang konsisten di seluruh pengguna, dan kontrol akses penuh menggunakan Kubernetes ServiceAccount dan Workload Identity. Server AKS MCP jarak jauh menggunakan protokol HTTP untuk memfasilitasi interaksi antara asisten AI dan kluster AKS Anda.

Prasyarat

  • Kluster AKS dengan Kubernetes 1.19+
  • Helm 3.8+
  • Azure CLI terinstal dan diautentikasi (az login)

Menginstal dengan bagan Helm

Kloning repositori dan instal bagan 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

Untuk daftar lengkap parameter konfigurasi, lihat dokumentasi bagan Helm.

Melakukan konfigurasi autentikasi

Pilih metode autentikasi berdasarkan persyaratan lingkungan dan keamanan Anda:

Identitas Beban Kerja menyediakan autentikasi tanpa kata sandi dengan menautkan Kubernetes ServiceAccount ke Azure Managed Identity.

1. Aktifkan OIDC pada kluster AKS Anda

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

2. Buat Identitas Terkelola dan tetapkan izin 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. Buat kredensial identitas federasi

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

Penting

Buat kredensial terfederasi sebelum menginstal bagan Helm.

4. Instal dengan Workload Identity diaktifkan

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>

Mengaktifkan Ingress dengan Perutean Aplikasi Azure

Mengekspos server MCP secara eksternal menggunakan Perutean Aplikasi 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

Menyambungkan klien MCP Anda

Setelah penyebaran, sambungkan asisten AI Anda ke server MCP jarak jauh:

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

Konfigurasikan klien MCP Anda untuk menyambungkan:

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

Untuk akses dalam kluster, gunakan: http://aks-mcp.aks-mcp.svc.cluster.local:8000

Referensi konfigurasi Helm

Pengaturan Deskripsi Bawaan
workloadIdentity.enabled Mengaktifkan Identitas Beban Kerja Azure false
azure.clientId ID Klien Azure ""
azure.tenantId ID Penyewa Azure ""
azure.clientSecret Rahasia Klien Azure ""
azure.subscriptionId ID Langganan Azure ""
azure.existingSecret Gunakan rahasia Kubernetes yang ada ""
app.accessLevel Tingkat akses: readonly, readwrite, admin readonly
app.transport Transportasi: stdio, sse, streamable-http streamable-http
oauth.enabled Mengaktifkan autentikasi OAuth false
ingress.enabled Aktifkan Ingress false

Menghapus pemasangan server AKS MCP

Proses penghapusan instalan server AKS MCP tergantung pada mode penyebaran dan tempat server saat ini berjalan.

Visual Studio Code dengan Ekstensi AKS

  1. Buka Palet Perintah (Ctrl+Shift+P di Windows/Linux atau Cmd+Shift+P di macOS).
  2. Jalankan MCP: Daftar Server.
  3. Pilih AKS MCP dari daftar.
  4. Pilih Hentikan Server untuk menghentikan server yang sedang berjalan.
  5. Untuk menghapus konfigurasi, pilih Hapus Konfigurasi Server.

Atau, hapus konfigurasi server secara manual:

  1. Buka file Anda .vscode/mcp.json atau Pengaturan Pengguna Visual Studio Code.
  2. Hapus entri aks-mcp-server dari objek servers atau github.copilot.chat.mcp.servers.
  3. Hapus biner AKS-MCP dari sistem Anda (lokasi bervariasi berdasarkan metode penginstalan).

Docker

Jika menggunakan Docker MCP Toolkit:

  1. Buka Docker Desktop.
  2. Pilih TOOLKit MCP di bilah sisi kiri.
  3. Temukan server AKS-MCP dan nonaktifkan.

Jika menggunakan konfigurasi kontainer, hentikan dan hapus kontainer:

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

Klien MCP Lainnya

aks atau aks-mcp hapus entri dari file konfigurasi klien MCP Anda (misalnya, Claude Desktop claude_desktop_config.json).

Masalah umum dan pemecahan masalah

Bagian ini menguraikan masalah penyiapan dan runtime umum, gejalanya, dan cara mengatasinya.

Server MCP AKS tidak dapat mengakses kluster

Gejala:

  • Alat mengembalikan kesalahan otorisasi
  • Tidak ada sumber daya yang terlihat

Kemungkinan penyebabnya:

  • Identitas pengguna atau MCP tidak memiliki izin yang memadai
  • Pengikatan ServiceAccount yang salah
  • Konteks kubeconfig yang salah dikonfigurasi (mode lokal)

Resolusi:

  • Mode lokal: Periksa apakah Anda memiliki izin yang memadai untuk mengakses kluster. Verifikasi bahwa Anda berada dalam kluster dan konteks langganan yang tepat.
  • Mode jarak jauh: Verifikasi pengikatan ClusterRole untuk ServiceAccount yang digunakan oleh server MCP

Panggilan Azure API gagal

Gejala:

  • alat call_az mengembalikan kesalahan autentikasi atau otorisasi

Kemungkinan penyebabnya:

  • Identitas Beban Kerja tidak diaktifkan untuk kluster Anda
  • ServiceAccount tidak terfederasi
  • Penetapan RBAC Azure yang hilang

Resolusi:

  • Periksa apakah Identitas Beban Kerja diaktifkan pada kluster Anda
  • Memverifikasi konfigurasi identitas gabungan
  • Menetapkan peran Azure yang sesuai ke identitas terkelola

Langkah selanjutnya

Pelajari selengkapnya tentang fitur cerdas yang dibangun secara asli untuk AKS:

  • Tentang CLI agenik untuk AKS
  • Instal dan gunakan CLI agentic untuk AKS