1. 簡介
kubectl-ai
是一項 AI 輔助的智慧介面,可將使用者意圖轉換為精確的 Kubernetes 作業,讓 Kubernetes 管理更輕鬆有效率。
執行步驟
- 您將使用
kubectl-ai
,這項 AI 輔助 Kubernetes 助理工具可管理 GKE 叢集。
課程內容
- 您將建立 GKE 叢集並設定
kubectl-ai.
- 您將執行 Kubernetes 工作,例如管理、建立及修補資源,同時排解叢集和資源問題。
軟硬體需求
- Chrome 網路瀏覽器
- Gmail 帳戶
- 已啟用計費功能的 Cloud 專案
- Gemini API 金鑰
本程式碼研究室假設使用者具備 Kubernetes 的基本知識。
2. 事前準備
建立專案
- 在 Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案。
- 確認 Cloud 專案已啟用計費功能。瞭解如何檢查專案是否已啟用計費功能。
- 您將使用 Cloud Shell,這是 Google Cloud 中執行的指令列環境,已預先載入 bq。按一下 Google Cloud 控制台上方的「啟用 Cloud Shell」。
- 連線至 Cloud Shell 後,請使用下列指令檢查您是否已通過驗證,且專案已設為您的專案 ID:
gcloud auth list
- 在 Cloud Shell 中執行下列指令,確認 gcloud 指令知道您的專案。
gcloud config list project
- 如果未設定專案,請使用下列指令來設定:
gcloud config set project <YOUR_PROJECT_ID>
- 透過下列指令啟用必要的 API。這項作業可能需要幾分鐘才能完成,請耐心等候。
gcloud services enable cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
compute.googleapis.com \
container.googleapis.com
成功執行指令後,您應該會看到類似下方的訊息:
Operation "operations/..." finished successfully.
如果遺漏任何 API,您隨時可以在導入過程中啟用。
如要瞭解 gcloud 指令和用法,請參閱說明文件。
3. 設定 GKE 叢集
在這個步驟中,我們將設定 GKE 叢集,並在其中執行指令。請確認您已按照先前的步驟操作,並在 Google Cloud 專案中設定正確的專案 ID,以及啟用必要服務。
建立 GKE 叢集
在 Cloud Shell 中執行下列指令。如要在其他區域建立叢集,請將 --zone
值變更為該區域。
gcloud container clusters create my-gke-cluster \
--num-nodes 2 \
--machine-type e2-standard-4 \
--zone us-central1-a
這可能需要一段時間才能完成,請耐心等候。完成後,您應該會看到類似下方的輸出內容:
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 叢集詳細資料
首先,請擷取叢集憑證:
gcloud container clusters get-credentials my-gke-cluster \
--zone us-central1-a
輸出內容應如下所示:
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.
接著,請驗證叢集詳細資料:
kubectl get nodes
畫面會顯示類似如下的輸出:
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
最後,請驗證叢集命名空間:
kubectl get namespaces
畫面會顯示類似如下的輸出:
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 CLI
我們將使用「快速安裝 (建議)」方式安裝 kubectl-ai CLI
。
在 Cloud Shell 中提供下列指令:
curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash
這會下載並安裝 kubectl-ai CLI
,安裝完成後,您應該會看到以下訊息:
✅ kubectl-ai installed successfully! Run 'kubectl-ai --help' to get started.
我們可以執行下列指令,驗證 kubectl-ai
指令是否正常運作:
kubectl-ai
注意:上述指令會傳回錯誤,指出
creating llm client: GEMINI_API_KEY environment variable not set
請注意,kubectl-ai 支援 gemini
、vertexai
、azopenai
、openai
、grok
、bedrock
的 AI 模型,以及 ollama
和 llama.cpp
等本機 LLM 供應商。在本例中,我們將使用 Gemini (Google),因此需要透過 Google AI Studio 取得 API 金鑰。產生金鑰並取得值後,請在 Cloud Shell 中使用下列指令,設定指向金鑰的 GEMINI_API_KEY 環境變數。
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
注意:請只將「GEMINI_API_KEY」做為鍵值
再次啟動 kubectl-ai
,這次您會看到它啟動並在互動式終端機中等待您的指令。
$ kubectl-ai
Hey there, what can I help you with today?
>>>
在提示中嘗試輸入幾個與 kubectl 指令相關的查詢。以下提供幾個範例:
What is the command to get the nodes in a cluster?
list pods
如要退出 kubectl-ai
終端機,請輸入 quit
。
5. 使用 kubectl-ai
您已成功設定 kubectl-ai
,現在可以使用自然語言查詢與叢集互動。我們來試試其他幾個指令:
請執行下列指令:
kubectl-ai --model gemini-2.5-flash "list pods in default namespace"
這會產生下列輸出內容:
Running: kubectl get pods -n default
There are no resources found in the default namespace.
>>>
請注意,這項工具已將我們的自然語言查詢 (列出 Pod) 翻譯成對應的 kubectl
指令。
此外,請注意我們現在位於 kubectl-ai
互動式終端機 (>>>
) 內,可以繼續與其互動。
輸入下列指令:
how many pods are there in kube-system namespace
輸出內容如下所示:
>>> 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.
單次拍攝指令
上一節說明如何啟動 kubectl-ai
並留在互動式終端機中,以便提供後續指令。如果您想以自主方式執行指令,且不希望系統顯示互動式提示,等待您輸入下一個指令,就不適合使用這項功能。
輸入單次指令方法,並搭配使用 --quiet
參數。
以下是建立部署作業的指令範例。
kubectl-ai --quiet "create a deployment named nginx with 2 replicas" --skip-permissions
這會導致系統執行 create deployment
指令,如下所示:
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 .
這樣一來,我們就能設定 kubectl-ai
與目前的 GKE 叢集互動。
我們剛執行了幾個指令,並示範了 kubectl-ai
的運作模式。您可以將輸出內容傳送至其他工具、瞭解錯誤、在 kubectl-ai
的不同工作階段執行之間保持持續性等。請參閱工具說明文件的「使用方式」一節。
6. (選用) kubectl-ai Chat 介面
在某些情況下,您可能偏好透過標準的 Chat 介面使用 kubectl-ai
。Kubectl-ai
隨附專屬的 UI 介面,您可以在 Cloud Shell 中透過下列指令啟動:
kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080
這會在介面聊天介面中啟動公用程式,您應該會看到類似以下的輸出內容:
listening on http://[::]:8080
在 Cloud Shell 中按一下「網頁預覽」,如下所示:
然後按一下「透過以下通訊埠預覽:8080」。系統會啟動瀏覽器,並顯示如下所示的網頁即時通訊介面:
以下是我們在即時通訊介面中執行的範例查詢:
請在這個介面中嘗試其他查詢。此外,系統還會提示您可以執行的其他自然語言查詢。
7. 清除
為避免系統持續向您的 Google Cloud 帳戶收費,請務必刪除我們在研討會期間建立的資源。
如果您不需要在本實驗室前一節中建立的 GKE 叢集,可以透過下列指令刪除:
gcloud container clusters delete my-gke-cluster --zone=us-central1-a
8. 恭喜
恭喜!您已成功使用 kubectl-ai,這項 AI 輔助 Kubernetes 管理工具可透過自然語言查詢管理 Kubernetes 叢集。詳情請參閱下一節列出的資源。