Připojení clusteru Azure Kubernetes Service (AKS) k agentům AI pomocí serveru MCP (Model Context Protocol)

Server AKS Model Context Protocol (MCP) umožňuje asistentům umělé inteligence pracovat s clustery Azure Kubernetes Service (AKS) s přehledností, bezpečností a řízením. Slouží jako most mezi nástroji AI (jako je GitHub Copilot, Claude a další asistenti AI kompatibilní s MCP) a AKS, překládá požadavky přirozeného jazyka do operací AKS a vrací výsledky ve formátu, kterému nástroje AI rozumí.

Server AKS MCP se připojuje k Azure pomocí sady Azure SDK a poskytuje sadu nástrojů, které mohou asistenti AI používat k interakci s prostředky AKS. Tyto nástroje umožňují agentům umělé inteligence provádět úlohy, jako jsou:

  • Řešení problémů a diagnostika
  • Analýza stavu clusteru
  • Provoz prostředků AKS (CRUD)
  • Získat podrobnosti týkající se clusterů AKS (virtuální sítě, podsítě, skupiny zabezpečení sítě (NSGs), směrovací tabulky atd.)
  • Povolení osvědčených postupů a doporučených funkcí
  • Správa operací azure Fleet pro scénáře s více clustery

Server AKS MCP je plně opensourcový projekt. Zdrojový kód a vydané verze najdete v úložišti AKS MCP GitHub.

Kdy použít server AKS MCP

Server AKS MCP lze použít s jakýmkoli kompatibilním pomocníkem AI, včetně agentického rozhraní příkazového řádku pro AKS a Microsoft Copilotu. Mezi běžné případy použití patří:

  • Ptejte se asistentů umělé inteligence na otázky, jako jsou:
    • Proč jsou v tomto clusteru pody ve stavu čekání?
    • "Jaká je síťová konfigurace clusteru AKS?"
    • "Vytvořte umístění pro nasazení úloh nginx do clusterů s popiskem app=front-end."
  • Umožnění nástrojů AI:
    • Čtení stavu a konfigurace clusteru
    • Kontrola metrik, událostí a protokolů
    • Korelace signálů napříč prostředky Kubernetes a Azure
    • Použití změn a povolení nových funkcí přímo v clusteru

Všechny akce, které provádíte prostřednictvím serveru AKS MCP, podléhají Kubernetes Role-Based Access Control (RBAC) a Azure RBAC. Server AKS MCP dědí vaše oprávnění při přístupu ke clusteru a prostředkům Azure.

Dostupné nástroje

Server AKS MCP poskytuje komplexní sadu nástrojů pro interakci s clustery AKS a přidruženými prostředky. Ve výchozím nastavení server používá sjednocené nástroje (call_az pro operace Azure a call_kubectl operace Kubernetes), které poskytují flexibilnější rozhraní pro interakci s Kubernetes a prostředky Azure.

Pro server AKS MCP můžete povolit tři sady oprávnění: pouze pro čtení (výchozí), pro čtení a zápis a oprávnění správce. Některé nástroje vyžadují oprávnění pro čtení a zápis či oprávnění správce k provádění akcí, jako jsou nasazení ladicích podů nebo akce CRUD ve vašem clusteru. Pokud chcete pro AKS-MCP server povolit oprávnění pro čtení i zápis nebo správce, přidejte do konfiguračního souboru MCP parametr úrovně přístupu :

  1. Přejděte do souboru mcp.json nebo přejděte na MCP: Seznam serverů –> AKS-MCP –> Zobrazení podrobností o konfiguraci na Command Palette (pro VS Code; Ctrl+Shift+P ve Windows/Linuxu nebo Cmd+Shift+P v macOS).
  2. V části "args" AKS-MCP přidejte následující parametry: --access-level, readwrite nebo admin.

Například:

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

Tyto nástroje jsou navržené tak, aby poskytovaly komplexní funkce prostřednictvím sjednocených rozhraní:

Operace Azure CLI (Sjednocený Nástroj)

Nástroj:call_az

Jednotný nástroj pro přímé spouštění příkazů Azure CLI Tento nástroj poskytuje flexibilní rozhraní pro spuštění libovolného příkazu Azure CLI.

Parametry:

  • cli_command: Úplný příkaz Azure CLI, který má být proveden. Například az aks list --resource-group myRG nebo az vm list --subscription <sub-id>.
  • timeout: Volitelný časový limit v sekundách (výchozí hodnota: 120)

Příklad použití:

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

Řízení přístupu:

  • jen pro čtení: Jsou povoleny pouze operace čtení.
  • readwrite/admin: Operace čtení i zápisu jsou povolené.

Důležité

Příkazy musí být jednoduché vyvolání Azure CLI bez funkcí prostředí, jako jsou kanály (|), přesměrování (>, <), nahrazení příkazů nebo středníky (;)).

Operace Kubernetes (Unified Tool)

Sjednocený nástroj kubectl

Nástroj:call_kubectl

Jednotný nástroj pro přímé spouštění příkazů kubectl. Tento nástroj poskytuje flexibilní rozhraní pro spuštění libovolného kubectl příkazu s plnou podporou argumentů.

Parametry:

  • args: Argumenty příkazu kubectl. Například , get pods, describe node mynodenebo apply -f deployment.yaml.

Příklad použití:

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

Řízení přístupu: Operace jsou omezené na základě nakonfigurované úrovně přístupu:

  • jen pro čtení: Jsou povoleny pouze operace čtení (get, describe, logs atd.).
  • readwrite/admin: Všechny operace včetně měnících příkazů (vytvoření, odstranění, použití atd.)

Helm

Nástroj:call_helm

Správce balíčků Helm pro Kubernetes

Cilium

Nástroj:call_cilium

Cilium CLI pro sítě a zabezpečení založené na eBPF.

Hubble

Nástroj:call_hubble

Pozorovatelnost sítě Hubble pro Cilium.

Správa síťových prostředků

Nástroj:aks_network_resources

Jednotný nástroj pro získání informací o síťových prostředcích Azure používaných clustery AKS

Dostupné typy prostředků:

  • all: Získání informací o všech síťových prostředcích
  • vnet: Informace o virtuální síti
  • subnet: Informace o podsíti
  • nsg: Informace o skupině zabezpečení sítě
  • route_table: Informace o směrovací tabulce
  • load_balancer: Informace o Load Balanceru
  • private_endpoint: Informace o privátním koncovém bodu
Monitorování a diagnostika

Nástroj:aks_monitoring

Sjednocený nástroj pro operace monitorování a diagnostiky Azure pro clustery AKS

Dostupné operace:

  • metrics: Seznam hodnot metrik pro prostředky
  • resource_health: Načtení událostí stavu prostředků pro clustery AKS
  • app_insights: Spouštění dotazů KQL na telemetrická data Application Insights
  • diagnostics: Zkontrolujte, jestli je nakonfigurované nastavení diagnostiky clusteru AKS.
  • control_plane_logs: Dotazování protokolů řídicí roviny AKS s bezpečnostními omezeními a ověřováním časového rozsahu
Výpočetní prostředky

Nástroj:get_aks_vmss_info

  • Podrobně nakonfigurujte své škálovací sady virtuálních počítačů (fondy uzlů) v clusteru AKS
Správa vozového parku

Nástroj:az_fleet

Komplexní správa vozového parku Azure pro scénáře s více clustery

Dostupné operace:

  • Operace flotily: seznam, zobrazení, vytvoření, aktualizace, odstranění, získání přihlašovacích údajů
  • Operace členů: seznam, zobrazit, vytvořit, aktualizovat, odstranit
  • Aktualizace operací spuštění: seznam, zobrazení, vytvoření, spuštění, zastavení, odstranění
  • Operace strategie aktualizace: seznam, zobrazení, vytvoření, odstranění
  • Operace ClusterResourcePlacement: seznam, zobrazení, získání, vytvoření, odstranění

Podporuje jak správu flotily Azure, tak operace CRD pro ClusterResourcePlacement Kubernetes.

Diagnostické detektory

Nástroj:aks_detector

Jednotný nástroj pro provádění operací detektoru diagnostiky AKS

Dostupné operace:

  • list: Výpis všech dostupných detektorů clusteru AKS
  • run: Spuštění konkrétního diagnostického detektoru AKS
  • run_by_category: Spuštění všech detektorů v konkrétní kategorii

Parametry:

  • operation (povinné): Operace, která se má provést (list, runnebo run_by_category)
  • aks_resource_id (povinné): ID prostředku clusteru AKS
  • detector_name (požadováno pro run provoz): Název detektoru, který se má spustit
  • category (požadováno pro run_by_category provoz): Kategorie detektoru
  • start_time (vyžadováno pro operace run a run_by_category): Čas zahájení ve formátu UTC ISO (za posledních 30 dnů)
  • end_time (povinné pro run a run_by_category operace): Konec času ve formátu UTC ISO (za posledních 30 dnů, max. 24 hodin od začátku)

Dostupné kategorie:

  • Osvědčené postupy
  • Dostupnost a výkon clusteru a řídicí roviny
  • Problémy s připojením
  • Vytvoření, upgrade, odstranění a škálování
  • Znehodnocení
  • Identity a zabezpečení
  • Stav uzlu
  • Storage

Příklad použití:

Nástroj: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

Nástroj:aks_advisor_recommendation

Načtení a správa doporučení Azure Advisoru pro clustery AKS

Dostupné operace:

  • list: Zobrazení seznamu doporučení s možnostmi filtrování
  • report: Vygenerovat sestavy doporučení
  • Možnosti filtru: resource_group, cluster_names, kategorie (náklady, vysoká dostupnost, výkon, zabezpečení), závažnost (vysoká, střední, nízká)
Pozorovatelnost v reálném čase

Nástroj:inspektor_gadget_observability

Nástroj pro pozorovatelnost v reálném čase pro clustery Azure Kubernetes Service (AKS) s využitím eBPF

Dostupné akce:

  • deploy: Nasazení miniaplikace Inspektor do clusteru
  • undeploy: Odebrání miniaplikace Inspektor z clusteru
  • is_deployed: Kontrola stavu nasazení
  • run: Spuštění miniaplikací s jedním snímkem
  • start: Spuštění průběžných miniaplikací
  • stop: Zastavení spouštění miniaplikací
  • get_results: Načíst výsledky miniaplikace
  • list_gadgets: Seznam dostupných miniaplikací

Dostupné gadgety:

  • observe_dns: Monitorování požadavků a odpovědí DNS
  • observe_tcp: Monitorování připojení TCP
  • observe_file_open: Monitorování operací systému souborů
  • observe_process_execution: Monitorování provádění procesů
  • observe_signal: Monitorování doručování signálu
  • observe_system_calls: Monitorování systémových volání
  • top_file: Hlavní soubory podle vstupně-výstupních operací
  • top_tcp: Nejlepší TCP spojení podle provozu
  • tcpdump: Zachytávání síťových paketů

Začínáme se serverem AKS MCP

Server MCP běží na místním počítači a připojuje se k AKS pomocí stávajících oprávnění. Svého místního agenta AI můžete rychle nastavit pomocí odborných znalostí a nástrojů AKS. Server používá aktuální kontext clusteru a uplatňuje vaše oprávnění Kubernetes a Azure RBAC.

Poznámka:

Od verze 0.0.20 se nepodporují vzdálená nasazení s Helmem nebo kontejnery. Použijte místní binární soubor.

Předpoklady

Před instalací serveru AKS MCP nastavte Azure CLI a ověřte:

az login

Nejjednodušší způsob, jak začít s AKS-MCP, je rozšíření Azure Kubernetes Service pro VS Code. Rozšíření AKS zpracovává binární stahování, aktualizace a konfiguraci automaticky a zajišťuje, že máte vždy nejnovější verzi s optimálním nastavením.

Krok 1: Instalace rozšíření AKS

  1. Otevřete VS Code a přejděte na Rozšíření (Ctrl+Shift+X v systémech Windows/Linux nebo Cmd+Shift+X macOS).
  2. Vyhledejte službu Azure Kubernetes Service.
  3. Nainstalujte oficiální rozšíření Microsoft AKS.

Krok 2: Spuštění AKS-MCP Serveru

  1. Otevřete paletu příkazů (Ctrl+Shift+P ve Windows/Linuxu nebo Cmd+Shift+P v macOS).
  2. Hledání a spuštění: AKS: Nastavení serveru AKS MCP.

Po úspěšné instalaci se server zobrazí v programu MCP: List Servers (prostřednictvím palety příkazů). Odtud můžete spustit server MCP nebo zobrazit jeho stav.

Krok 3: Začínáme používat AKS-MCP

Po spuštění se server MCP zobrazí v rozevíracím seznamu Copilot Chat: Configure Tools pod MCP Server: AKS MCP, připraven vylepšit kontextové výzvy na základě vašeho prostředí AKS. Ve výchozím nastavení jsou povolené všechny nástroje serveru AKS-MCP. Můžete si projít seznam dostupných nástrojů a zakázat všechny, které nejsou pro váš scénář potřeba.

Zkuste zobrazit výzvu typu Seznam všech clusterů AKS , abyste mohli začít používat nástroje z AKS-MCP serveru.

Návod

Konfigurace WSL: Pokud používáte VS Code ve Windows s WSL, použijte "command": "wsl" k vyvolání binárního souboru WSL. Pokud je VS Code spuštěn uvnitř WSL (Remote-WSL), zavolejte binární soubor přímo nebo místo toho použijte obálku Bash.

Odinstalace serveru AKS MCP

VS Code s rozšířením AKS

  1. Otevřete paletu příkazů (Ctrl+Shift+P ve Windows/Linuxu nebo Cmd+Shift+P v macOS).
  2. Spusťte MCP: Výpis serverů.
  3. V seznamu vyberte AKS MCP .
  4. Vyberte Zastavit server, chcete-li zastavit spuštěný server.
  5. Pokud chcete konfiguraci odebrat, vyberte Odstranit konfiguraci serveru.

Případně ručně odeberte konfiguraci serveru:

  1. Otevřete soubor .vscode/mcp.json nebo uživatelské nastavení VS Code.
  2. Odstraňte položku aks-mcp-server z servers nebo github.copilot.chat.mcp.servers objektu.
  3. Odstraňte binární AKS-MCP z vašeho systému (umístění se liší podle metody instalace).

Ostatní klienti MCP

Odstraňte položku aks nebo aks-mcp ze souboru konfigurace klienta MCP (například claude_desktop_config.json Claude Desktopu).

Známé problémy a řešení potíží

Tato část popisuje běžné problémy s nastavením a modulem runtime, jejich příznaky a způsob jejich řešení.

Server AKS MCP nemá přístup ke clusteru

Příznaky:

  • Nástroje vracejí chyby autentizace
  • Žádné prostředky nejsou viditelné.

Pravděpodobné příčiny:

  • Uživatel nemá dostatečná oprávnění
  • Chybně nakonfigurovaný kontext kubeconfig

Usnesení:

  • Zkontrolujte, jestli máte dostatečná oprávnění pro přístup ke clusteru. Ověřte, že jste ve správném clusteru a ve správném předplatném.

Další kroky

Přečtěte si další informace o inteligentních funkcích vytvořených nativně pro AKS:

  • Informace o agentickém rozhraní příkazového řádku pro AKS
  • Instalace a použití agentického rozhraní příkazového řádku pro AKS