Codelab: Kubernetes mit kubectl-ai verwalten, einem KI-basierten Kubernetes-Assistenten

1. Einführung

kubectl-ai ist eine KI-gestützte intelligente Schnittstelle, die die Absicht des Nutzers in präzise Kubernetes-Vorgänge übersetzt und so die Kubernetes-Verwaltung zugänglicher und effizienter macht.

d62a763b2dba5ba7.png

Aufgaben

  • Sie arbeiten mit kubectl-ai, einem KI-gestützten Kubernetes-Assistenten, um einen GKE-Cluster zu verwalten.

Lerninhalte

  • Sie erstellen einen GKE-Cluster und richten kubectl-ai. ein.
  • Sie führen Kubernetes-Aufgaben wie das Verwalten, Erstellen und Patchen von Ressourcen sowie die Fehlerbehebung bei Clustern und Ressourcen aus.

Voraussetzungen

  • Chrome-Webbrowser
  • Ein Gmail-Konto
  • Ein Cloud-Projekt mit aktivierter Abrechnung
  • Ein Gemini API-Schlüssel

Für dieses Codelab sind grundlegende Kubernetes-Kenntnisse erforderlich.

2. Hinweis

Projekt erstellen

  1. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
  2. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
  3. Sie verwenden die Cloud Shell, eine Befehlszeilenumgebung, die in Google Cloud ausgeführt wird und in der bq vorinstalliert ist. Klicken Sie oben in der Google Cloud Console auf „Cloud Shell aktivieren“.

Bild der Schaltfläche „Cloud Shell aktivieren“

  1. Sobald die Verbindung mit der Cloud Shell hergestellt ist, prüfen Sie mit dem folgenden Befehl, ob Sie bereits authentifiziert sind und für das Projekt schon Ihre Projekt-ID eingestellt ist:
gcloud auth list
  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um zu prüfen, ob der gcloud-Befehl Ihr Projekt kennt.
gcloud config list project
  1. Wenn Ihr Projekt nicht festgelegt ist, verwenden Sie den folgenden Befehl, um es festzulegen:
gcloud config set project <YOUR_PROJECT_ID>
  1. Aktivieren Sie die erforderlichen APIs mit dem unten gezeigten Befehl. Das kann einige Minuten dauern. Bitte haben Sie etwas Geduld.
gcloud services enable cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       compute.googleapis.com \
                       container.googleapis.com

Bei erfolgreicher Ausführung des Befehls sollte eine Meldung ähnlich der folgenden angezeigt werden:

Operation "operations/..." finished successfully.

Wenn eine API fehlt, können Sie sie jederzeit während der Implementierung aktivieren.

Weitere Informationen finden Sie in der Dokumentation zu gcloud-Befehlen und ihrer Verwendung.

3. GKE-Cluster einrichten

In diesem Schritt richten wir einen GKE-Cluster ein, in dem wir unsere Befehle ausführen. Achten Sie darauf, dass Sie die vorherigen Schritte ausgeführt haben und die richtige Projekt-ID festgelegt und die erforderlichen Dienste in Ihrem Google Cloud-Projekt aktiviert haben.

GKE-Cluster erstellen

Führen Sie den folgenden Befehl in der Cloud Shell aus. Wenn Sie den Cluster in einer anderen Zone erstellen möchten, ändern Sie den Wert --zone entsprechend.

gcloud container clusters create my-gke-cluster \
       --num-nodes 2 \
       --machine-type e2-standard-4 \
       --zone us-central1-a

Das kann eine Weile dauern. Bitte haben Sie etwas Geduld. Nach Abschluss sollte eine Ausgabe ähnlich der folgenden angezeigt werden:

Note: Your Pod address range (`--cluster-ipv4-cidr`) can accommodate at most 1008 node(s).
Creating cluster my-gke-cluster in us-central1-a... Cluster is being health-checked (Kubernetes Control Plane is healthy)...done.                                                                                                             
Created [https://container.googleapis.com/v1/projects/YOUR_PROJECT_ID/zones/us-central1-a/clusters/my-gke-cluster].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-central1-a/my-gke-cluster?project=YOUR_PROJECT_ID
kubeconfig entry generated for my-gke-cluster.
NAME: my-gke-cluster
LOCATION: us-central1-a
MASTER_VERSION: 1.33.4-gke.1350000
MASTER_IP: 34.59.221.183
MACHINE_TYPE: e2-standard-4
NODE_VERSION: 1.33.4-gke.1350000
NUM_NODES: 2
STATUS: RUNNING
STACK_TYPE: IPV4

GKE-Clusterdetails prüfen

Rufen wir zuerst die Clusteranmeldedaten ab:

gcloud container clusters get-credentials my-gke-cluster \
                 --zone us-central1-a

Die Ausgabe sollte in etwa so aussehen:

Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.

Prüfen wir als Nächstes die Clusterdetails:

kubectl get nodes

Die Ausgabe sollte in etwa so aussehen:

NAME                                            STATUS   ROLES    AGE     VERSION
gke-my-gke-cluster-default-pool-c63d5936-2f1z   Ready    <none>   2m58s   v1.33.4-gke.1350000
gke-my-gke-cluster-default-pool-c63d5936-fqtl   Ready    <none>   3m2s    v1.33.4-gke.1350000

Prüfen wir schließlich den Clusternamespace:

kubectl get namespaces

Die Ausgabe sollte in etwa so aussehen:

NAME                          STATUS   AGE
default                       Active   6m16s
gke-managed-cim               Active   4m21s
gke-managed-system            Active   4m6s
gke-managed-volumepopulator   Active   4m
gmp-public                    Active   3m40s
gmp-system                    Active   3m41s
kube-node-lease               Active   6m16s
kube-public                   Active   6m16s
kube-system                   Active   6m16s

4. kubectl-ai-Befehlszeile installieren

Wir verwenden die Schnellinstallation (empfohlen) für die Installation von kubectl-ai CLI.

Geben Sie den folgenden Befehl in der Cloud Shell ein:

curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash

Dadurch wird die kubectl-ai CLI-Befehlszeile heruntergeladen und installiert. Am Ende sollte eine Meldung angezeigt werden:

✅ kubectl-ai installed successfully! Run 'kubectl-ai --help' to get started.

Mit dem folgenden Befehl können wir prüfen, ob der kubectl-ai-Befehl funktioniert:

kubectl-ai

Hinweis: Der obige Befehl gibt den Fehler zurück, dass

creating llm client: GEMINI_API_KEY environment variable not set

kubectl-ai unterstützt KI-Modelle von gemini, vertexai, azopenai, openai, grok, bedrock und lokalen LLM-Anbietern wie ollama und llama.cpp. In unserem Fall verwenden wir Gemini (Google) und benötigen dafür einen API-Schlüssel von Google AI Studio. Nachdem Sie den Schlüssel generiert haben und der Wert verfügbar ist, verwenden Sie den folgenden Befehl in der Cloud Shell, um die Umgebungsvariable GEMINI_API_KEY festzulegen, die auf Ihren Schlüssel verweist.

export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"

Hinweis: Verwenden Sie „GEMINI_API_KEY“ nur als Schlüsselwert.

Starten Sie kubectl-ai noch einmal. Dieses Mal wird es gestartet und wartet in seinem interaktiven Terminal auf Ihren Befehl.

$ kubectl-ai

  Hey there, what can I help you with today?                                  

>>>  

Probieren Sie einige Abfragen zu kubectl-Befehlen in der Eingabeaufforderung aus. Hier einige Beispiele:

  • What is the command to get the nodes in a cluster?
  • list pods

Sie können das kubectl-ai-Terminal mit quit beenden.

5. kubectl-ai verwenden

Nachdem Sie kubectl-ai erfolgreich konfiguriert haben, können Sie jetzt mit dem Cluster über Abfragen in natürlicher Sprache interagieren. Probieren wir einige andere Befehle aus:

Führen Sie den folgenden Befehl aus:

kubectl-ai --model gemini-2.5-flash "list pods in default namespace"

Dadurch wird die folgende Ausgabe erzeugt:

Running: kubectl get pods -n default

There are no resources found in the default namespace.      

>>>

Sie sehen, dass unsere Abfrage in natürlicher Sprache zum Auflisten von Pods in den entsprechenden kubectl-Befehl übersetzt wurde.

Außerdem befinden wir uns jetzt im kubectl-ai interaktiven Terminal (>>>), wo wir weiter damit interagieren können.

Geben Sie den folgenden Befehl ein:

how many pods are there in kube-system namespace

Die Ausgabe sieht so aus:

>>> how many pods are there in kube-system namespace

Running: kubectl get pods -n kube-system --output=jsonpath='{.items[*].metadata.name}'

There are 18 pods in the kube-system namespace.

Einzelbefehl

Im vorherigen Abschnitt wurde gezeigt, wie Sie kubectl-ai starten und im interaktiven Terminal bleiben können, um nachfolgende Befehle zu geben. Das ist nicht für Befehle geeignet, die autonom und ohne interaktive Eingabeaufforderung ausgeführt werden sollen, die auf den nächsten Befehl von Ihnen wartet.

Geben Sie die Methode für Einzelbefehle mit dem Parameter --quiet ein.

Hier ist ein Beispielbefehl zum Erstellen einer Bereitstellung:

kubectl-ai --quiet "create a deployment named nginx with 2 replicas" --skip-permissions

Dadurch wird der Befehl create deployment wie unten gezeigt ausgeführt:

Running: kubectl create deployment nginx --image=nginx --replicas=2

I have created a deployment named nginx with 2 replicas. You can verify this by running kubectl get deployments .

Auf diese Weise konnten wir kubectl-ai so einrichten, dass es mit unserem aktuellen GKE-Cluster interagiert.

Wir haben gerade einige Befehle ausgeführt und eine Arbeitsweise mit kubectl-ai demonstriert. Sie können die Ausgabe an andere Tools weiterleiten, Fehler verstehen, die Persistenz zwischen verschiedenen Sitzungsausführungen von kubectl-ai nutzen und vieles mehr. Weitere Informationen finden Sie im Abschnitt „Usage“ (Verwendung) der Tool-Dokumentation.

6. (Optional) kubectl-ai-Chatoberfläche

In bestimmten Situationen bevorzugen Sie möglicherweise die Arbeit mit kubectl-ai über eine Standard-Chatoberfläche. Kubectl-ai verfügt über eine eigene UI-Oberfläche, die Sie über den unten gezeigten Befehl in der Cloud Shell starten können:

kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080

Dadurch wird das Utility in einer Chat-Oberfläche gestartet. Die Ausgabe sollte in etwa so aussehen:

listening on http://[::]:8080

Klicken Sie in der Cloud Shell auf „Webvorschau“ wie unten gezeigt:

f990712162e8e924.png

Klicken Sie dann auf Vorschau auf Port 8080. Dadurch wird ein Browser gestartet und die Web-Chatoberfläche wie unten gezeigt verfügbar gemacht:

90fce57ad7f16842.png

Hier ist eine Beispielabfrage, die wir in der Chatoberfläche ausgeführt haben:

6a304d227d3fa5a6.png

Probieren Sie in dieser Oberfläche andere Abfragen aus. Außerdem werden Hinweise zu anderen Abfragen in natürlicher Sprache gegeben, die Sie ausführen können.

7. Bereinigen

Damit Ihrem Google Cloud-Konto keine laufenden Gebühren in Rechnung gestellt werden, müssen Sie die Ressourcen löschen, die wir während dieses Workshops erstellt haben.

Wenn Sie den GKE-Cluster, den wir im vorherigen Abschnitt dieses Codelabs erstellt haben, nicht mehr benötigen, können Sie ihn mit dem folgenden Befehl löschen:

gcloud container clusters delete my-gke-cluster --zone=us-central1-a

8. Glückwunsch

Glückwunsch! Sie haben kubectl-ai, einen KI-gestützten Kubernetes-Assistenten, erfolgreich verwendet, um Ihren Kubernetes-Cluster über Abfragen in natürlicher Sprache zu verwalten. Weitere Informationen finden Sie in den Ressourcen im nächsten Abschnitt.

9. Ressourcen