1. Einführung
kubectl-ai
ist eine KI-basierte intelligente Schnittstelle, die Nutzerabsichten in präzise Kubernetes-Vorgänge übersetzt und so die Kubernetes-Verwaltung zugänglicher und effizienter macht.
Aufgabe
- Sie arbeiten mit
kubectl-ai
, einem KI-basierten Kubernetes Assistant-Tool zur Verwaltung eines GKE-Clusters.
Lerninhalte
- Sie erstellen einen GKE-Cluster und richten
kubectl-ai.
ein. - Sie führen Kubernetes-Aufgaben wie das Verwalten, Erstellen und Patchen von Ressourcen mit Fehlerbehebungsclustern und ‑ressourcen aus.
Voraussetzungen
- Chrome-Webbrowser
- Ein Gmail-Konto
- Ein Cloud-Projekt mit aktivierter Abrechnung
- Ein Gemini API-Schlüssel
In diesem Codelab wird davon ausgegangen, dass der Nutzer Grundkenntnisse in Kubernetes hat.
2. Hinweis
Projekt erstellen
- Wählen Sie in der Google Cloud Console auf der Seite zur Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist .
- Sie verwenden 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“.
- Wenn Sie mit Cloud Shell verbunden sind, können Sie mit dem folgenden Befehl prüfen, ob Sie bereits authentifiziert sind und das Projekt auf Ihre Projekt-ID festgelegt ist:
gcloud auth list
- Führen Sie den folgenden Befehl in Cloud Shell aus, um zu bestätigen, dass der gcloud-Befehl Ihr Projekt kennt.
gcloud config list project
- Wenn Ihr Projekt nicht festgelegt ist, verwenden Sie den folgenden Befehl, um es festzulegen:
gcloud config set project <YOUR_PROJECT_ID>
- Aktivieren Sie die erforderlichen APIs mit dem unten gezeigten Befehl. Dies kann einige Minuten dauern.
gcloud services enable cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
compute.googleapis.com \
container.googleapis.com
Bei erfolgreicher Ausführung des Befehls sollte eine Meldung wie die unten gezeigte angezeigt werden:
Operation "operations/..." finished successfully.
Wenn eine API fehlt, können Sie sie jederzeit während der Implementierung aktivieren.
Informationen zu gcloud-Befehlen und deren Verwendung finden Sie in der Dokumentation.
3. GKE-Cluster einrichten
In diesem Schritt richten wir einen GKE-Cluster ein, in dem wir unsere Befehle ausführen. Prüfen Sie, ob Sie die vorherigen Schritte ausgeführt, die richtige Projekt-ID eingerichtet und die erforderlichen Dienste in Ihrem Google Cloud-Projekt aktiviert haben.
GKE-Cluster erstellen
Führen Sie den folgenden Befehl in Cloud Shell aus. Wenn Sie den Cluster in einer anderen Zone erstellen möchten, können Sie den --zone
-Wert entsprechend ändern.
gcloud container clusters create my-gke-cluster \
--num-nodes 2 \
--machine-type e2-standard-4 \
--zone us-central1-a
Dieser Vorgang kann einige Zeit dauern. Nach Abschluss des Vorgangs sollten Sie eine Ausgabe sehen, die der folgenden ähnelt:
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 wie unten aussehen:
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.
Als Nächstes prüfen wir 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 Sie zum Schluss 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 Cloud Shell ein:
curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash
Dadurch wird kubectl-ai CLI
heruntergeladen und installiert. Am Ende sollte die folgende 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 Befehl kubectl-ai
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, den wir über Google AI Studio erhalten. Nachdem Sie den Schlüssel generiert haben und der Wert verfügbar ist, verwenden Sie den folgenden Befehl in 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 Anfragen zu kubectl-Befehlen im Prompt aus. Hier einige Beispiele:
What is the command to get the nodes in a cluster?
list pods
Sie können das kubectl-ai
-Terminal beenden, indem Sie quit
eingeben.
5. kubectl-ai verwenden
Nachdem Sie kubectl-ai
konfiguriert haben, können Sie jetzt mit dem Cluster interagieren, indem Sie Abfragen in natürlicher Sprache verwenden. Probieren wir ein paar 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 generiert:
Running: kubectl get pods -n default
There are no resources found in the default namespace.
>>>
Die Anfrage in natürlicher Sprache zum Auflisten von Pods wurde in den entsprechenden kubectl
-Befehl übersetzt.
Außerdem befinden wir uns jetzt im interaktiven Terminal kubectl-ai
(>>>
), in dem wir weiterhin mit ihm 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.
Single Shot Command
Im vorherigen Abschnitt wurde gezeigt, wie Sie kubectl-ai
starten und im interaktiven Terminal bleiben, um nachfolgende Befehle zu geben. Dies ist nicht für Befehle geeignet, die autonom und ohne interaktive Aufforderung zur Eingabe des nächsten Befehls ausgeführt werden sollen.
Geben Sie die Methode für den einzelnen Prompt mit dem Parameter --quiet
ein.
Hier ist ein Beispielbefehl zum Erstellen eines Deployments.
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 .
So konnten wir kubectl-ai
für die Interaktion mit unserem aktuellen GKE-Cluster einrichten.
Wir haben gerade einige Befehle ausgeführt und eine Arbeitsweise mit kubectl-ai
demonstriert. Sie können die Ausgabe an andere Tools weiterleiten, Fehler nachvollziehen und die Persistenz zwischen verschiedenen Sitzungsdurchläufen von kubectl-ai
untersuchen. Sehen Sie sich den Abschnitt Verwendung in der Tool-Dokumentation an.
6. (Optional) kubectl-ai-Chatoberfläche
In bestimmten Situationen ist es möglicherweise besser, mit kubectl-ai
über eine Standard-Chatoberfläche zu arbeiten. Kubectl-ai
hat eine eigene Benutzeroberfläche, die Sie über den unten gezeigten Befehl in Cloud Shell starten können:
kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080
Dadurch wird das Tool in einer Chat-Oberfläche gestartet. Die Ausgabe sollte in etwa so aussehen:
listening on http://[::]:8080
Klicken Sie in Cloud Shell auf „Webvorschau“ (siehe unten):
Klicken Sie dann auf Vorschau auf Port 8080. Dadurch wird ein Browser gestartet und die Webchat-Oberfläche wie unten dargestellt geöffnet:
Hier ist eine Beispielabfrage, die wir in der Chatoberfläche ausgeführt haben:
Probieren Sie andere Anfragen in dieser Benutzeroberfläche aus. Außerdem erhalten Sie Hinweise darauf, welche anderen Abfragen in natürlicher Sprache Sie ausführen könnten.
7. Bereinigen
Damit Ihrem Google Cloud-Konto keine laufenden Gebühren in Rechnung gestellt werden, ist es wichtig, die Ressourcen zu löschen, die wir während dieses Workshops erstellt haben.
Wenn Sie den GKE-Cluster, den wir im vorherigen Abschnitt dieses Labs 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
Herzlichen Glückwunsch! Sie haben kubectl-ai, einen KI-basierten Kubernetes-Assistenten, erfolgreich verwendet, um Ihren Kubernetes-Cluster über Anfragen in natürlicher Sprache zu verwalten. Weitere Informationen finden Sie in den Ressourcen im nächsten Abschnitt.