1. Giới thiệu
kubectl-ai
là một giao diện thông minh dựa trên AI, có thể chuyển đổi ý định của người dùng thành các thao tác chính xác trên Kubernetes, giúp việc quản lý Kubernetes trở nên dễ dàng và hiệu quả hơn.
Bạn sẽ thực hiện
- Bạn sẽ làm việc với
kubectl-ai
, một công cụ Trợ lý Kubernetes dựa trên AI để quản lý một cụm GKE.
Kiến thức bạn sẽ học được
- Bạn sẽ tạo một cụm GKE và thiết lập
kubectl-ai.
- Bạn sẽ thực hiện các tác vụ Kubernetes như quản lý, tạo, vá tài nguyên bằng các cụm và tài nguyên khắc phục sự cố.
Bạn cần có
- Trình duyệt web Chrome
- Tài khoản Gmail
- Một Dự án trên đám mây đã bật tính năng thanh toán
- Khoá Gemini API
Lớp học lập trình này giả định rằng người dùng đã có kiến thức cơ bản về Kubernetes.
2. Trước khi bắt đầu
Tạo một dự án
- Trong Google Cloud Console, trên trang chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud.
- Đảm bảo rằng bạn đã bật tính năng thanh toán cho dự án trên Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trên một dự án hay không .
- Bạn sẽ sử dụng Cloud Shell, một môi trường dòng lệnh chạy trong Google Cloud và được tải sẵn bằng bq. Nhấp vào Kích hoạt Cloud Shell ở đầu bảng điều khiển Google Cloud.
- Sau khi kết nối với Cloud Shell, bạn có thể kiểm tra để đảm bảo rằng bạn đã được xác thực và dự án được đặt thành mã dự án của bạn bằng lệnh sau:
gcloud auth list
- Chạy lệnh sau trong Cloud Shell để xác nhận rằng lệnh gcloud biết về dự án của bạn.
gcloud config list project
- Nếu bạn chưa đặt dự án, hãy dùng lệnh sau để đặt:
gcloud config set project <YOUR_PROJECT_ID>
- Bật các API bắt buộc thông qua lệnh bên dưới. Quá trình này có thể mất vài phút, vì vậy, vui lòng kiên nhẫn chờ đợi.
gcloud services enable cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
compute.googleapis.com \
container.googleapis.com
Khi thực thi lệnh thành công, bạn sẽ thấy một thông báo tương tự như thông báo dưới đây:
Operation "operations/..." finished successfully.
Nếu bỏ lỡ API nào, bạn luôn có thể bật API đó trong quá trình triển khai.
Tham khảo tài liệu để biết các lệnh và cách sử dụng gcloud.
3. Thiết lập cụm GKE
Trong bước này, chúng ta sẽ thiết lập một cụm GKE để chạy các lệnh. Đảm bảo rằng bạn đã làm theo các bước trước đó, thiết lập đúng mã dự án và bật các dịch vụ bắt buộc trong dự án Google Cloud.
Tạo cụm GKE
Chạy lệnh sau đây trong Cloud Shell. Nếu bạn muốn tạo cụm ở một vùng khác, hãy thay đổi giá trị --zone
thành vùng đó.
gcloud container clusters create my-gke-cluster \
--num-nodes 2 \
--machine-type e2-standard-4 \
--zone us-central1-a
Quá trình này có thể mất một chút thời gian nên bạn hãy kiên nhẫn chờ đợi. Sau khi hoàn tất, bạn sẽ thấy một kết quả tương tự như kết quả dưới đây:
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
Xác minh thông tin chi tiết về cụm GKE
Trước tiên, hãy tìm nạp thông tin đăng nhập của cụm:
gcloud container clusters get-credentials my-gke-cluster \
--zone us-central1-a
Bạn sẽ thấy kết quả đầu ra như minh hoạ dưới đây:
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.
Tiếp theo, hãy xác minh thông tin chi tiết về cụm:
kubectl get nodes
Bạn sẽ thấy một kết quả đầu ra có dạng như sau:
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
Cuối cùng, hãy xác thực không gian tên của cụm:
kubectl get namespaces
Bạn sẽ thấy một kết quả đầu ra có dạng như sau:
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. Cài đặt giao diện dòng lệnh kubectl-ai
Chúng ta sẽ sử dụng cách Cài đặt nhanh (Được đề xuất) để cài đặt kubectl-ai CLI
.
Nhập lệnh sau trong Cloud Shell:
curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash
Thao tác này sẽ tải và cài đặt kubectl-ai CLI
, sau đó bạn sẽ thấy thông báo có nội dung:
✅ kubectl-ai installed successfully! Run 'kubectl-ai --help' to get started.
Chúng ta có thể xác minh xem lệnh kubectl-ai
có hoạt động hay không bằng cách chạy lệnh sau:
kubectl-ai
Lưu ý: lệnh trên sẽ trả về lỗi cho biết rằng
creating llm client: GEMINI_API_KEY environment variable not set
Xin lưu ý rằng kubectl-ai hỗ trợ các mô hình AI của gemini
, vertexai
, azopenai
, openai
, grok
, bedrock
và các nhà cung cấp LLM tại địa phương như ollama
và llama.cpp
. Trong trường hợp này, chúng ta sẽ sử dụng Gemini (Google) và cần lấy Khoá API cho Gemini thông qua Google AI Studio. Sau khi tạo khoá và có giá trị, hãy dùng lệnh sau trong Cloud Shell để đặt biến môi trường GEMINI_API_KEY trỏ đến khoá của bạn.
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
Lưu ý: Chỉ sử dụng "GEMINI_API_KEY" làm giá trị khoá
Khởi chạy kubectl-ai
thêm một lần nữa. Lần này, bạn sẽ thấy ứng dụng này khởi chạy và đang chờ lệnh của bạn trong thiết bị đầu cuối tương tác.
$ kubectl-ai
Hey there, what can I help you with today?
>>>
Hãy thử một vài câu hỏi liên quan đến các lệnh kubectl trong câu lệnh. Dưới đây là một số ví dụ:
What is the command to get the nodes in a cluster?
list pods
Bạn có thể thoát khỏi thiết bị đầu cuối kubectl-ai
bằng cách nhập quit
.
5. Sử dụng kubectl-ai
Giờ đây, bạn đã định cấu hình kubectl-ai
thành công. Điểm chính cần lưu ý ở đây là bạn có thể tương tác với cụm bằng các truy vấn ngôn ngữ tự nhiên. Hãy thử một số lệnh khác:
Hãy chạy lệnh sau:
kubectl-ai --model gemini-2.5-flash "list pods in default namespace"
Thao tác này sẽ tạo ra kết quả sau:
Running: kubectl get pods -n default
There are no resources found in the default namespace.
>>>
Lưu ý cách nó dịch câu hỏi bằng ngôn ngữ tự nhiên của chúng ta để liệt kê các nhóm thành lệnh kubectl
tương đương.
Ngoài ra, hãy lưu ý rằng hiện tại chúng ta đang ở trong thiết bị đầu cuối tương tác kubectl-ai
(>>>
), nơi chúng ta có thể tiếp tục tương tác với thiết bị này.
Đưa ra lệnh sau:
how many pods are there in kube-system namespace
Kết quả đầu ra như sau:
>>> 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.
Lệnh chụp một lần
Phần trước đã minh hoạ cách bạn có thể chạy kubectl-ai
và vẫn ở trong thiết bị đầu cuối tương tác để đưa ra các lệnh tiếp theo. Điều này không phù hợp với những lệnh mà bạn muốn thực thi một cách tự động và không có lời nhắc tương tác chờ lệnh tiếp theo của bạn.
Nhập phương thức lệnh chụp một lần bằng tham số --quiet
.
Dưới đây là một lệnh mẫu để tạo một lượt triển khai.
kubectl-ai --quiet "create a deployment named nginx with 2 replicas" --skip-permissions
Thao tác này sẽ dẫn đến việc lệnh create deployment
được thực thi như minh hoạ dưới đây:
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 .
Bằng cách này, chúng tôi có thể thiết lập kubectl-ai
để tương tác với cụm GKE hiện tại.
Chúng ta vừa chạy một vài lệnh và minh hoạ một chế độ làm việc với kubectl-ai
. Bạn có thể chuyển đầu ra sang các công cụ khác, hiểu rõ các lỗi, tính liên tục giữa các lần chạy phiên khác nhau của kubectl-ai
và nhiều thông tin khác. Hãy tham khảo phần Sử dụng trong tài liệu về công cụ này.
6. (Không bắt buộc) Giao diện Chat kubectl-ai
Trong một số trường hợp, bạn có thể muốn làm việc với kubectl-ai
thông qua giao diện Chat tiêu chuẩn. Kubectl-ai
đi kèm với giao diện người dùng riêng mà bạn có thể khởi chạy thông qua lệnh xuất hiện bên dưới trong Cloud Shell:
kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080
Thao tác này sẽ khởi chạy tiện ích trong giao diện trò chuyện và bạn sẽ thấy kết quả tương tự như sau:
listening on http://[::]:8080
Nhấp vào Web Preview (Xem trước trên web) trong Cloud Shell như minh hoạ dưới đây:
Sau đó, nhấp vào Xem trước trên cổng 8080. Thao tác này sẽ khởi chạy một trình duyệt và cung cấp giao diện trò chuyện trên web như minh hoạ bên dưới:
Sau đây là một truy vấn mẫu mà chúng tôi đã thực hiện trong giao diện trò chuyện:
Hãy thử các cụm từ tìm kiếm khác trong giao diện này. Tính năng này cũng cung cấp gợi ý về những truy vấn ngôn ngữ tự nhiên khác mà bạn có thể chạy.
7. Dọn dẹp
Để tránh bị tính phí liên tục cho tài khoản Google Cloud của bạn, bạn cần xoá các tài nguyên mà chúng ta đã tạo trong hội thảo này.
Nếu không cần đến cụm GKE mà chúng ta đã tạo trong phần trước của bài thực hành này, bạn có thể xoá cụm đó bằng lệnh sau:
gcloud container clusters delete my-gke-cluster --zone=us-central1-a
8. Xin chúc mừng
Xin chúc mừng! Bạn đã sử dụng thành công kubectl-ai, một trợ lý Kubernetes dựa trên AI để quản lý cụm Kubernetes thông qua các truy vấn bằng ngôn ngữ tự nhiên. Để biết thêm thông tin, hãy tham khảo các tài nguyên được liệt kê trong phần tiếp theo.