1. Wprowadzenie
kubectl-ai
to inteligentny interfejs oparty na AI, który przekłada intencje użytkownika na precyzyjne operacje Kubernetes, dzięki czemu zarządzanie Kubernetes jest bardziej dostępne i wydajne.
Co musisz zrobić
- Będziesz korzystać z
kubectl-ai
, narzędzia opartego na AI, które pomaga w zarządzaniu klastrem GKE.
Czego się nauczysz
- Utworzysz klaster GKE i skonfigurujesz
kubectl-ai.
. - Będziesz wykonywać zadania Kubernetes, takie jak zarządzanie zasobami, ich tworzenie i patchowanie, a także rozwiązywać problemy z klastrami i zasobami.
Czego potrzebujesz
- przeglądarki Chrome,
- konto Gmail,
- Projekt w chmurze z włączonymi płatnościami
- Klucz interfejsu Gemini API
W tym laboratorium zakłada się, że użytkownik ma podstawową wiedzę o Kubernetes.
2. Zanim zaczniesz
Utwórz projekt
- W konsoli Google Cloud na stronie selektora projektów wybierz lub utwórz projekt Google Cloud.
- Sprawdź, czy w projekcie Cloud włączone są płatności. Dowiedz się, jak sprawdzić, czy w projekcie są włączone płatności .
- Będziesz używać Cloud Shell, czyli środowiska wiersza poleceń działającego w Google Cloud, które jest wstępnie załadowane narzędziem bq. U góry konsoli Google Cloud kliknij Aktywuj Cloud Shell.
- Po połączeniu z Cloud Shell sprawdź, czy jesteś już uwierzytelniony i czy projekt jest ustawiony na Twój identyfikator projektu, używając tego polecenia:
gcloud auth list
- Aby potwierdzić, że polecenie gcloud zna Twój projekt, uruchom w Cloud Shell to polecenie:
gcloud config list project
- Jeśli projekt nie jest ustawiony, użyj tego polecenia, aby go ustawić:
gcloud config set project <YOUR_PROJECT_ID>
- Włącz wymagane interfejsy API za pomocą polecenia pokazanego poniżej. Może to potrwać kilka minut, więc zachowaj cierpliwość.
gcloud services enable cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
compute.googleapis.com \
container.googleapis.com
Po pomyślnym wykonaniu polecenia powinien wyświetlić się komunikat podobny do tego poniżej:
Operation "operations/..." finished successfully.
Jeśli pominiesz jakiś interfejs API, możesz go włączyć w trakcie wdrażania.
Informacje o poleceniach gcloud i ich użyciu znajdziesz w dokumentacji.
3. Konfigurowanie klastra GKE
W tym kroku skonfigurujemy klaster GKE, w którym będziemy uruchamiać polecenia. Upewnij się, że udało Ci się wykonać poprzednie kroki, skonfigurować prawidłowy identyfikator projektu i włączyć wymagane usługi w projekcie Google Cloud.
Utwórz klaster GKE
Uruchom to polecenie w Cloud Shell. Jeśli chcesz utworzyć klaster w innej strefie, zmień wartość --zone
.
gcloud container clusters create my-gke-cluster \
--num-nodes 2 \
--machine-type e2-standard-4 \
--zone us-central1-a
Może to chwilę potrwać, więc prosimy o cierpliwość. Po zakończeniu powinny pojawić się dane wyjściowe podobne do tych poniżej:
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
Sprawdź szczegóły klastra GKE
Najpierw pobierzmy dane logowania do klastra:
gcloud container clusters get-credentials my-gke-cluster \
--zone us-central1-a
Powinny się wyświetlić dane wyjściowe podobne do tych poniżej:
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.
Następnie sprawdźmy szczegóły klastra:
kubectl get nodes
Powinny się wyświetlić dane wyjściowe podobne do tych:
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
Na koniec sprawdźmy przestrzeń nazw klastra:
kubectl get namespaces
Powinny się wyświetlić dane wyjściowe podobne do tych:
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. Instalowanie interfejsu kubectl-ai
Do zainstalowania kubectl-ai CLI
użyjemy szybkiej instalacji (zalecanej).
Wpisz w Cloud Shell to polecenie:
curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash
Spowoduje to pobranie i zainstalowanie kubectl-ai CLI
. Na koniec powinien pojawić się komunikat:
✅ kubectl-ai installed successfully! Run 'kubectl-ai --help' to get started.
Możemy sprawdzić, czy polecenie kubectl-ai
działa, uruchamiając to polecenie:
kubectl-ai
Uwaga: powyższe polecenie zwróci błąd informujący, że
creating llm client: GEMINI_API_KEY environment variable not set
Pamiętaj, że kubectl-ai obsługuje modele AI od gemini
, vertexai
, azopenai
, openai
, grok
, bedrock
i lokalnych dostawców dużych modeli językowych, takich jak ollama
i llama.cpp
. W naszym przypadku będziemy korzystać z Gemini (Google) i musimy uzyskać klucz interfejsu API w Google AI Studio. Po wygenerowaniu klucza i przygotowaniu jego wartości użyj tego polecenia w Cloud Shell, aby ustawić zmienną środowiskową GEMINI_API_KEY wskazującą Twój klucz.
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
Uwaga: „GEMINI_API_KEY” używaj tylko jako wartości klucza.
Uruchom kubectl-ai
jeszcze raz. Tym razem zobaczysz, że aplikacja uruchamia się i czeka w interaktywnym terminalu na Twoje polecenie.
$ kubectl-ai
Hey there, what can I help you with today?
>>>
Wypróbuj w prompcie kilka zapytań związanych z poleceniami kubectl. Poniżej znajdziesz kilka przykładów:
What is the command to get the nodes in a cluster?
list pods
Możesz zamknąć terminal kubectl-ai
, wpisując quit
.
5. Korzystanie z kubectl-ai
Po skonfigurowaniu kubectl-ai
możesz teraz wchodzić w interakcje z klastrem za pomocą zapytań w języku naturalnym. Wypróbujmy kilka innych poleceń:
Uruchom to polecenie:
kubectl-ai --model gemini-2.5-flash "list pods in default namespace"
Spowoduje to wyświetlenie tych danych wyjściowych:
Running: kubectl get pods -n default
There are no resources found in the default namespace.
>>>
Zwróć uwagę, jak przetłumaczył nasze zapytanie w języku naturalnym na listę zasobników na odpowiednie polecenie kubectl
.
Zwróć też uwagę, że znajdujemy się teraz w kubectl-ai
interaktywnym terminalu (>>>
), w którym możemy kontynuować interakcję.
Wpisz to polecenie:
how many pods are there in kube-system namespace
Dane wyjściowe są widoczne poniżej:
>>> 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.
Polecenie pojedynczego strzału
W poprzedniej sekcji pokazaliśmy, jak uruchomić kubectl-ai
i pozostać w interaktywnym terminalu, aby wydawać kolejne polecenia. Nie nadaje się do poleceń, które chcesz wykonywać autonomicznie i bez interaktywnego promptu oczekującego na kolejne polecenie.
Wpisz metodę polecenia pojedynczego z parametrem --quiet
.
Oto przykładowe polecenie tworzenia wdrożenia.
kubectl-ai --quiet "create a deployment named nginx with 2 replicas" --skip-permissions
Spowoduje to wykonanie polecenia create deployment
, jak pokazano poniżej:
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 .
W ten sposób udało nam się skonfigurować kubectl-ai
do interakcji z bieżącym klastrem GKE.
Właśnie wykonaliśmy kilka poleceń i pokazaliśmy sposób pracy z kubectl-ai
. Możesz przekazywać dane wyjściowe do innych narzędzi, analizować błędy, sprawdzać trwałość między różnymi sesjami kubectl-ai
i wykonywać inne czynności. Zapoznaj się z sekcją Użycie w dokumentacji narzędzia.
6. (Opcjonalnie) Interfejs czatu kubectl-ai
W niektórych sytuacjach możesz woleć korzystać z kubectl-ai
za pomocą standardowego interfejsu Google Chat. Kubectl-ai
ma własny interfejs, który możesz uruchomić za pomocą polecenia pokazanego poniżej w Cloud Shell:
kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080
Spowoduje to uruchomienie narzędzia w interfejsie czatu. Powinny się wyświetlić dane wyjściowe podobne do tych:
listening on http://[::]:8080
W Cloud Shell kliknij Podgląd w przeglądarce, jak pokazano poniżej:
Następnie kliknij Podejrzyj na porcie 8080. Spowoduje to uruchomienie przeglądarki i udostępnienie interfejsu czatu w przeglądarce, jak pokazano poniżej:
Oto przykładowe zapytanie, które wykonaliśmy w interfejsie czatu:
Wypróbuj inne zapytania w tym interfejsie. Podpowiada też, jakie inne zapytania w języku naturalnym możesz uruchomić.
7. Czyszczenie danych
Aby uniknąć obciążania konta Google Cloud bieżącymi opłatami, usuń zasoby utworzone podczas tych warsztatów.
Jeśli nie potrzebujesz klastra GKE utworzonego w poprzedniej części tego laboratorium, możesz go usunąć za pomocą tego polecenia:
gcloud container clusters delete my-gke-cluster --zone=us-central1-a
8. Gratulacje
Gratulacje! Udało Ci się użyć kubectl-ai, asystenta Kubernetes opartego na AI, do zarządzania klastrem Kubernetes za pomocą zapytań w języku naturalnym. Więcej informacji znajdziesz w materiałach wymienionych w następnej sekcji.