1. บทนำ
kubectl-ai
เป็นอินเทอร์เฟซอัจฉริยะที่ทำงานด้วยระบบ AI ซึ่งจะแปลเจตนาของผู้ใช้เป็นการดำเนินการ Kubernetes ที่แม่นยำ ทำให้การจัดการ Kubernetes เข้าถึงได้ง่ายและมีประสิทธิภาพมากขึ้น
สิ่งที่คุณต้องทำ
- คุณจะได้ทำงานร่วมกับ
kubectl-ai
ซึ่งเป็นเครื่องมือผู้ช่วย Kubernetes ที่ทำงานด้วยระบบ AI เพื่อจัดการคลัสเตอร์ GKE
สิ่งที่คุณจะได้เรียนรู้
- คุณจะสร้างคลัสเตอร์ GKE และตั้งค่า
kubectl-ai.
- คุณจะทำงานใน Kubernetes เช่น การจัดการ การสร้าง การแก้ไขทรัพยากรด้วยการแก้ปัญหาคลัสเตอร์และทรัพยากร
สิ่งที่คุณต้องมี
- เว็บเบราว์เซอร์ Chrome
- บัญชี Gmail
- โปรเจ็กต์ Cloud ที่เปิดใช้การเรียกเก็บเงิน
- คีย์ Gemini API
Codelab นี้คาดหวังว่าผู้ใช้จะมีความรู้พื้นฐานเกี่ยวกับ Kubernetes
2. ก่อนเริ่มต้น
สร้างโปรเจ็กต์
- ใน Google Cloud Console ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้วหรือไม่
- คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานใน Google Cloud และโหลด bq ไว้ล่วงหน้า คลิกเปิดใช้งาน Cloud Shell ที่ด้านบนของคอนโซล Google Cloud
- เมื่อเชื่อมต่อกับ Cloud Shell แล้ว ให้ตรวจสอบว่าคุณได้รับการตรวจสอบสิทธิ์แล้วและตั้งค่าโปรเจ็กต์เป็นรหัสโปรเจ็กต์โดยใช้คำสั่งต่อไปนี้
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 แล้ว
สร้างคลัสเตอร์ GKE
เรียกใช้คำสั่งต่อไปนี้ที่ระบุไว้ใน Cloud Shell หากต้องการสร้างคลัสเตอร์ในโซนอื่น คุณสามารถเปลี่ยน--zone
value เป็นโซนนั้นได้
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 รองรับโมเดล AI จาก gemini
, vertexai
, azopenai
, openai
, grok
, bedrock
และผู้ให้บริการ LLM ในพื้นที่ เช่น ollama
และ llama.cpp
ในกรณีของเรา เราจะใช้ Gemini (Google) และจะต้องรับคีย์ API สำหรับ Gemini ผ่าน Google AI Studio เมื่อสร้างคีย์และเตรียมค่าไว้แล้ว ให้ใช้คำสั่งต่อไปนี้ใน 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?
>>>
ลองใช้คำค้นหา 2-3 รายการที่เกี่ยวข้องกับคำสั่ง 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.
>>>
สังเกตว่าคำสั่ง 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 ปัจจุบันได้
เราเพิ่งเรียกใช้คำสั่ง 2-3 คำสั่งและแสดงโหมดการทำงานกับ kubectl-ai
คุณสามารถส่งเอาต์พุตไปยังเครื่องมืออื่นๆ ทำความเข้าใจข้อผิดพลาด ความต่อเนื่องระหว่างการเรียกใช้เซสชันต่างๆ ของ kubectl-ai
และอื่นๆ โปรดดูส่วนการใช้งานในเอกสารประกอบของเครื่องมือ
6. (ไม่บังคับ) อินเทอร์เฟซแชทของ kubectl-ai
ในบางสถานการณ์ คุณอาจต้องการทำงานกับ kubectl-ai
ผ่านอินเทอร์เฟซ Chat มาตรฐาน 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 ซึ่งเป็นผู้ช่วย Kubernetes ที่ทำงานด้วยระบบ AI เพื่อจัดการคลัสเตอร์ Kubernetes ผ่านคำค้นหาภาษาธรรมชาติได้สำเร็จแล้ว ดูข้อมูลเพิ่มเติมได้ที่แหล่งข้อมูลที่ระบุไว้ในส่วนถัดไป