Łączenie klastra usługi Azure Kubernetes Service (AKS) z agentami sztucznej inteligencji przy użyciu serwera protokołu MCP (Model Context Protocol)

Serwer AKS Model Context Protocol (MCP) umożliwia asystentom sztucznej inteligencji interakcję z klastrami usługi Azure Kubernetes Service (AKS) z czytelnością, bezpieczeństwem i kontrolą. Służy ona jako most między narzędziami sztucznej inteligencji (takimi jak GitHub Copilot, Claude i inne asystenty sztucznej inteligencji zgodne z MCP) i AKS, tłumacząc żądania języka naturalnego na operacje usługi AKS i zwracając wyniki w formacie, który narzędzia sztucznej inteligencji mogą zrozumieć.

Serwer AKS MCP łączy się z platformą Azure przy użyciu zestawu Azure SDK i udostępnia zestaw narzędzi, których asystenci sztucznej inteligencji mogą używać do interakcji z zasobami usługi AKS. Te narzędzia umożliwiają agentom sztucznej inteligencji wykonywanie zadań, takich jak:

  • Rozwiązywanie problemów i diagnostyka
  • Analizowanie kondycji klastra
  • Obsługa zasobów usługi AKS (CRUD)
  • Pobierz szczegóły związane z klastrami usługi AKS (sieciami wirtualnymi, podsieciami, grupami zabezpieczeń sieciowych, tabelami tras itp.).
  • Włączanie najlepszych rozwiązań i zalecanych funkcji
  • Zarządzanie operacjami floty platformy Azure dla scenariuszy obejmujących wiele klastrów

Serwer AKS MCP jest w pełni projektem typu open source. Aby zapoznać się z kodem źródłowym i wydaniami, zobacz repozytorium GitHub usługi AKS MCP.

Kiedy należy używać serwera MCP usługi AKS

Serwer AKS MCP może być używany z dowolnym zgodnym asystentem sztucznej inteligencji, w tym z interfejsem wiersza polecenia dla AKS i Microsoft Copilot. Typowe przypadki użycia to:

  • Zadawanie pytań asystentów sztucznej inteligencji, takich jak:
    • Dlaczego pody czekają w tym klastrze?
    • Jaka jest konfiguracja sieciowa klastra AKS?
    • Utwórz lokalizację do uruchamiania obciążeń nginx w klastrach o etykiecie app=frontend.
  • Zezwalanie narzędzi sztucznej inteligencji na:
    • Odczytywanie stanu i konfiguracji klastra
    • Inspekcja metryk, zdarzeń i dzienników
    • Korelowanie sygnałów między zasobami platformy Kubernetes i platformy Azure
    • Stosowanie zmian i włączanie nowych funkcji bezpośrednio w klastrze

Wszystkie akcje wykonywane za pośrednictwem serwera MCP usługi AKS są ograniczone przez platformę Kubernetes Role-Based Access Control (RBAC) i Azure RBAC. Serwer AKS MCP dziedziczy Twoje uprawnienia podczas uzyskiwania dostępu do klastra i zasobów platformy Azure.

Dostępne narzędzia

Serwer AKS MCP udostępnia kompleksowy zestaw narzędzi do interakcji z klastrami AKS i skojarzonymi zasobami. Domyślnie serwer używa ujednoliconych narzędzi (call_az dla operacji platformy Azure i call_kubectl operacji platformy Kubernetes), które zapewniają bardziej elastyczny interfejs do interakcji z platformą Kubernetes i zasobami platformy Azure.

Istnieją trzy zestawy uprawnień, które można włączyć dla serwera MCP usługi AKS: tylko do odczytu (ustawienie domyślne), odczyt-zapis i administrator. Niektóre narzędzia wymagają uprawnień do odczytu i zapisu lub administratora, aby wykonywać akcje, takie jak wdrażanie zasobników debugowania lub akcje CRUD w klastrze. Aby włączyć uprawnienia do odczytu i zapisu lub administratora dla serwera AKS-MCP, dodaj parametr poziomu dostępu do pliku konfiguracji MCP:

  1. Przejdź do pliku mcp.json lub przejdź do sekcji MCP: Lista serwerów -> AKS-MCP -> Pokaż szczegóły konfiguracji w Paleta poleceń (w programie VS Code; Ctrl+Shift+P w systemie Windows/Linux lub Cmd+Shift+P na macOS).
  2. W sekcji "args" usługi AKS-MCP dodaj następujące parametry: "--access-level", "readwrite" lub "admin"

Przykład:

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

Te narzędzia zostały zaprojektowane w celu zapewnienia kompleksowej funkcjonalności za pośrednictwem ujednoliconych interfejsów:

Operacje interfejsu wiersza polecenia platformy Azure (ujednolicone narzędzie)

Narzędzie:call_az

Ujednolicone narzędzie do bezpośredniego wykonywania poleceń Azure CLI. To narzędzie oferuje elastyczny interfejs do uruchamiania dowolnego polecenia Azure CLI.

Parametry:

  • cli_command: pełne polecenie Azure CLI do wykonania. Na przykład: az aks list --resource-group myRG lub az vm list --subscription <sub-id>.
  • timeout: Opcjonalny limit czasu w sekundach (wartość domyślna: 120)

Przykładowe użycie:

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

Kontrola dostępu:

  • tylko odczyt: dozwolone są tylko operacje odczytu
  • readwrite/admin: Operacje odczytu i zapisu są dozwolone

Ważne

Polecenia muszą być prostymi wywołaniami interfejsu wiersza polecenia platformy Azure bez funkcji powłoki, takich jak potoki (|), przekierowania (>, <), podstawianie poleceń lub średniki (;).

Operacje platformy Kubernetes (ujednolicone narzędzie)

Ujednolicone narzędzie kubectl

Narzędzie:call_kubectl

Ujednolicone narzędzie do bezpośredniego wykonywania poleceń kubectl. To narzędzie udostępnia elastyczny interfejs do uruchamiania dowolnego kubectl polecenia z pełną obsługą argumentów.

Parametry:

  • args: argumenty polecenia kubectl. Na przykład, get pods, describe node mynode lub apply -f deployment.yaml.

Przykładowe użycie:

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

Kontrola dostępu: Operacje są ograniczone na podstawie skonfigurowanego poziomu dostępu:

  • readonly: dozwolone są tylko operacje odczytu (pobieranie, opisywanie, dzienniki itp.)
  • readwrite/admin: wszystkie operacje, w tym modyfikowanie poleceń (tworzenie, usuwanie, stosowanie itp.)

Helm

Narzędzie:call_helm

Menedżer pakietów Helm dla platformy Kubernetes.

Cilium

Narzędzie:call_cilium

Interfejs wiersza polecenia cilium dla sieci i zabezpieczeń opartych na protokole eBPF.

Hubble

Narzędzie:call_hubble

Obserwowalność sieci Hubble w przypadku Cilium.

Zarządzanie zasobami sieciowymi

Narzędzie:aks_network_resources

Ujednolicone narzędzie do uzyskiwania informacji o zasobach sieciowych platformy Azure używanych przez klastry usługi AKS.

Dostępne typy zasobów:

  • all: Uzyskiwanie informacji o wszystkich zasobach sieciowych
  • vnet: Informacje o sieci wirtualnej
  • subnet: Informacje o podsieci
  • nsg: Informacje o sieciowej grupie zabezpieczeń
  • route_table: Informacje o tabeli tras
  • load_balancer: Informacje o module równoważenia obciążenia
  • private_endpoint: Informacje o prywatnym punkcie końcowym
Monitorowanie i diagnostyka

Narzędzie:aks_monitoring

Zunifikowane narzędzie do operacji monitorowania i diagnostyki w platformie Azure dla klastrów AKS.

Dostępne operacje:

  • metrics: Lista wartości metryk dla zasobów
  • resource_health: Pobierz zdarzenia dotyczące kondycji zasobów dla klastrów AKS
  • app_insights: Wykonywanie zapytań KQL względem danych telemetrycznych usługi Application Insights
  • diagnostics: Sprawdź, czy klaster usługi AKS ma skonfigurowane ustawienia diagnostyczne
  • control_plane_logs: Wykonywanie zapytań w dziennikach płaszczyzny sterowania AKS z ograniczeniami bezpieczeństwa i weryfikacją zakresu czasu
Zasoby obliczeniowe

Narzędzie:get_aks_vmss_info

  • Uzyskaj szczegółową konfigurację skali zestawów maszyn wirtualnych (puli węzłów) w klastrze AKS
Zarządzanie flotą

Narzędzie:az_fleet

Kompleksowe zarządzanie flotą platformy Azure dla scenariuszy obejmujących wiele klastrów.

Dostępne operacje:

  • Operacje floty: lista, pokaż, twórz, aktualizuj, usuń, pobierz poświadczenia
  • Operacje członkowskie: lista, wyświetlanie, tworzenie, aktualizowanie, usuwanie
  • Operacje uruchamiania aktualizacji: lista, wyświetlanie, tworzenie, uruchamianie, zatrzymywanie, usuwanie
  • Operacje strategii aktualizacji: lista, wyświetlanie, tworzenie, usuwanie
  • Operacje rozmieszczenia zasobów klastra: lista, pokaż, pobierz, utwórz, usuń

Obsługuje zarówno zarządzanie flotą platformy Azure, jak i operacje CRD klastra KubernetesResourcePlacement.

Narzędzia diagnostyczne

Narzędzie:aks_detector

Ujednolicone narzędzie do wykonywania operacji detektorów diagnostycznych AKS.

Dostępne operacje:

  • list: Wyświetl listę wszystkich dostępnych detektorów klastra AKS
  • run: Uruchom określony detektor diagnostyczny AKS
  • run_by_category: Uruchamianie wszystkich detektorów w określonej kategorii

Parametry:

  • operation (wymagane): operacja do wykonania (list, runlub run_by_category)
  • aks_resource_id (wymagane): identyfikator zasobów klastra usługi AKS
  • detector_name (wymagane do run wykonania operacji): nazwa detektora do uruchomienia
  • category (wymagane do run_by_category operacji): Kategoria detektora
  • start_time (wymagane w przypadku operacji run lub run_by_category): czas rozpoczęcia w formacie ISO UTC (w ciągu ostatnich 30 dni)
  • end_time (wymagane w przypadku run operacji i run_by_category ): godzina zakończenia w formacie ISO UTC (w ciągu ostatnich 30 dni, maksymalnie 24 godziny od początku)

Dostępne kategorie:

  • Najlepsze praktyki
  • Dostępność i wydajność klastra oraz płaszczyzny sterowania
  • Problemy z łącznością
  • Tworzenie, uaktualnianie, usuwanie i skalowanie
  • Deprecjacje
  • Obsługa tożsamości i zabezpieczeń
  • Kondycja węzła
  • Magazyn

Przykładowe użycie:

Narzędzie: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

Narzędzie:aks_advisor_recommendation

** Pobierz i zarządzaj zaleceniami usługi Azure Advisor dla klastrów AKS.

Dostępne operacje:

  • list: Lista zaleceń z opcjami filtrowania
  • report: Generowanie raportów rekomendacji
  • Opcje filtru: resource_group, cluster_names, kategoria (Koszty, Wysoka Dostępność, Wydajność, Zabezpieczenia), ważność (wysoka, średnia, niska)
Obserwowanie w czasie rzeczywistym

Narzędzie:inspektor_gadget_observability

Narzędzie do obserwacji w czasie rzeczywistym dla klastrów usługi Azure Kubernetes Service (AKS) przy użyciu protokołu eBPF.

Dostępne akcje:

  • deploy: Wdróż Inspektor Gadget do klastra
  • undeploy: Usuń Inspektora Gadgeta z klastra
  • is_deployed: Sprawdzanie stanu wdrożenia
  • run: Uruchamianie gadżetów jednorazowych
  • start: Uruchamianie ciągłych gadżetów
  • stop: Zatrzymaj uruchamianie gadżetów
  • get_results: Pobieranie wyników urządzeń
  • list_gadgets: Lista dostępnych gadżetów

Dostępne gadżety:

  • observe_dns: Monitorowanie żądań i odpowiedzi DNS
  • observe_tcp: Monitorowanie połączeń TCP
  • observe_file_open: Monitorowanie operacji systemu plików
  • observe_process_execution: Monitorowanie wykonywania procesów
  • observe_signal: Monitorowanie dostarczania sygnałów
  • observe_system_calls: Monitorowanie wywołań systemowych
  • top_file: Najważniejsze pliki według operacji we/wy
  • top_tcp: Najważniejsze połączenia TCP według ruchu
  • tcpdump: Przechwytywanie pakietów sieciowych

Wprowadzenie do serwera AKS MCP

Serwer MCP działa na komputerze lokalnym i nawiązuje połączenie z usługą AKS przy użyciu istniejących uprawnień. Możesz szybko skonfigurować lokalnego agenta sztucznej inteligencji z wiedzą ekspercką i narzędziami AKS. Serwer używa bieżącego kontekstu klastra i egzekwuje uprawnienia Kubernetes oraz uprawnienia RBAC platformy Azure.

Uwaga / Notatka

Od wersji 0.0.20 wdrożenia zdalne z programem Helm lub kontenerami nie są obsługiwane. Użyj lokalnego pliku binarnego.

Wymagania wstępne

Przed zainstalowaniem serwera AKS MCP skonfiguruj interfejs wiersza polecenia platformy Azure i uwierzytelnij:

az login

Najprostszym sposobem rozpoczęcia pracy z AKS-MCP jest rozszerzenie usługi Azure Kubernetes Service dla programu VS Code. Rozszerzenie usługi AKS automatycznie obsługuje pobieranie binarne, aktualizacje i konfigurację, zapewniając, że zawsze masz najnowszą wersję z optymalnymi ustawieniami.

Krok 1. Instalowanie rozszerzenia usługi AKS

  1. Otwórz program VS Code i przejdź do pozycji Rozszerzenia (Ctrl+Shift+X w systemie Windows/Linux lub Cmd+Shift+X macOS).
  2. Wyszukaj usługę Azure Kubernetes Service.
  3. Zainstaluj oficjalne rozszerzenie usługi Microsoft AKS.

Krok 2. Uruchamianie serwera AKS-MCP

  1. Otwórz paletę poleceń (Ctrl+Shift+P w systemie Windows/Linux lub Cmd+Shift+P w systemie macOS).
  2. Wyszukaj i uruchom: AKS: Konfigurowanie serwera AKS MCP.

Po pomyślnej instalacji serwer jest wyświetlany w programie MCP: Lista serwerów (za pośrednictwem palety poleceń). W tym miejscu możesz uruchomić serwer MCP lub wyświetlić jego stan.

Krok 3. Rozpoczęcie korzystania z usługi AKS-MCP

Po uruchomieniu serwer MCP pojawi się na liście rozwijanej Copilot Chat: Configure Tools (Konfiguruj narzędzia) w obszarze MCP Server: AKS MCP, gotowy do ulepszania monitów kontekstowych opartych na środowisku usługi AKS. Domyślnie wszystkie narzędzia serwera AKS-MCP są włączone. Możesz przejrzeć listę dostępnych narzędzi i wyłączyć wszystkie, które nie są wymagane w danym scenariuszu.

Spróbuj wprowadzić polecenie, takie jak "Wyświetl listę moich klastrów usługi AKS" i zacznij korzystać z narzędzi serwera AKS-MCP.

Wskazówka

Konfiguracja programu WSL: jeśli używasz programu VS Code w systemie Windows z usługą WSL, użyj polecenia "command": "wsl" , aby wywołać plik binarny WSL. Jeśli program VS Code działa wewnątrz WSL (Remote-WSL), wywołaj plik binarny bezpośrednio lub ewentualnie użyj wrappera bash.

Odinstalowywanie serwera AKS MCP

Program VS Code z rozszerzeniem usługi AKS

  1. Otwórz paletę poleceń (Ctrl+Shift+P w systemie Windows/Linux lub Cmd+Shift+P w systemie macOS).
  2. Uruchom program MCP: lista serwerów.
  3. Wybierz z listy pozycję AKS MCP .
  4. Wybierz pozycję Zatrzymaj serwer , aby zatrzymać uruchomiony serwer.
  5. Aby usunąć konfigurację, wybierz pozycję Usuń konfigurację serwera.

Możesz też ręcznie usunąć konfigurację serwera:

  1. .vscode/mcp.json Otwórz plik lub ustawienia użytkownika programu VS Code.
  2. Usuń wpis aks-mcp-server z obiektu servers lub github.copilot.chat.mcp.servers.
  3. Usuń plik binarny AKS-MCP z systemu (lokalizacja różni się w zależności od metody instalacji).

Inni klienci MCP

Usuń wpis aks lub aks-mcp z pliku konfiguracji klienta MCP (na przykład wpis Claude Desktop claude_desktop_config.json).

Znane problemy i rozwiązywanie problemów

W tej sekcji opisano typowe problemy z konfiguracją i środowiskiem uruchomieniowym, ich objawy i sposoby ich rozwiązywania.

Serwer MCP usługi AKS nie może uzyskać dostępu do klastra

Objawy:

  • Aplikacje zwracają błędy związane z autoryzacją
  • Brak widocznych zasobów

Prawdopodobne przyczyny:

  • Użytkownik nie ma wystarczających uprawnień
  • Nieprawidłowo skonfigurowany kontekst kubeconfig

Rozwiązanie:

  • Sprawdź, czy masz wystarczające uprawnienia dostępu do klastra. Sprawdź, czy jesteś w odpowiednim kontekście klastra i subskrypcji.

Dalsze kroki

Dowiedz się więcej o inteligentnych funkcjach utworzonych natywnie dla usługi AKS:

  • Informacje o interfejsie wiersza polecenia agenta dla usługi AKS
  • Instalowanie i używanie agentic CLI dla AKS