Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
- Buka file mcp.json Anda, atau buka MCP: Daftar Server -> AKS-MCP -> Tampilkan Detail Konfigurasi di Palet Perintah (Untuk Visual Studio Code;
Ctrl+Shift+Pdi Windows/Linux atauCmd+Shift+Pdi macOS). - 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 myRGatauaz 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, atauapply -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, ataurun_by_category) -
aks_resource_id(wajib): ID sumber daya kluster AKS -
detector_name(diperlukan untukrunoperasi): Nama detektor yang akan dijalankan -
category(diperlukan untukrun_by_categoryoperasi): Kategori detektor -
start_time(diperlukan untuk operasirundanrun_by_category): Waktu mulai dalam format UTC ISO (dalam 30 hari terakhir) -
end_time(diperlukan untukrunoperasi danrun_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
- Visual Studio Code dengan GitHub Copilot (Disarankan)
- Penginstalan Biner Manual
- Docker
- Penginstalan Klien Kustom
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
- Buka Visual Studio Code dan buka Ekstensi (
Ctrl+Shift+Xdi Windows/Linux atauCmd+Shift+Xdi macOS). - Cari Azure Kubernetes Service.
- Instal ekstensi AKS resmi dari Microsoft.
Langkah 2: Luncurkan Server AKS-MCP
- Buka Palet Perintah (
Ctrl+Shift+Pdi Windows/Linux atauCmd+Shift+Pdi macOS). - 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 (Disarankan)
- OAuth untuk Akses Baca-Tulis
- Perwakilan Layanan dengan Rahasia yang Ada
- Kredensial Langsung
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
- Buka Palet Perintah (
Ctrl+Shift+Pdi Windows/Linux atauCmd+Shift+Pdi macOS). - Jalankan MCP: Daftar Server.
- Pilih AKS MCP dari daftar.
- Pilih Hentikan Server untuk menghentikan server yang sedang berjalan.
- Untuk menghapus konfigurasi, pilih Hapus Konfigurasi Server.
Atau, hapus konfigurasi server secara manual:
- Buka file Anda
.vscode/mcp.jsonatau Pengaturan Pengguna Visual Studio Code. - Hapus entri
aks-mcp-serverdari objekserversataugithub.copilot.chat.mcp.servers. - Hapus biner AKS-MCP dari sistem Anda (lokasi bervariasi berdasarkan metode penginstalan).
Docker
Jika menggunakan Docker MCP Toolkit:
- Buka Docker Desktop.
- Pilih TOOLKit MCP di bilah sisi kiri.
- 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