1. Pengantar
kubectl-ai
adalah antarmuka cerdas yang didukung AI yang menerjemahkan maksud pengguna menjadi operasi Kubernetes yang presisi, sehingga pengelolaan Kubernetes menjadi lebih mudah diakses dan efisien.
Yang akan Anda lakukan
- Anda akan menggunakan
kubectl-ai
, alat yang didukung AI dan Kubernetes Assistant untuk mengelola cluster GKE.
Yang akan Anda pelajari
- Anda akan membuat cluster GKE dan menyiapkan
kubectl-ai.
- Anda akan melakukan tugas Kubernetes seperti mengelola, membuat, dan menerapkan patch pada resource dengan memecahkan masalah cluster dan resource.
Yang Anda butuhkan
- Browser web Chrome
- Akun Gmail
- Project Cloud dengan penagihan diaktifkan
- Kunci Gemini API
Codelab ini mengharapkan pengguna memiliki pengetahuan dasar tentang Kubernetes.
2. Sebelum memulai
Membuat project
- Di Konsol Google Cloud, di halaman pemilih project, pilih atau buat project Google Cloud.
- Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project .
- Anda akan menggunakan Cloud Shell, lingkungan command line yang berjalan di Google Cloud yang telah dilengkapi dengan bq. Klik Activate Cloud Shell di bagian atas konsol Google Cloud.
- Setelah terhubung ke Cloud Shell, Anda dapat memeriksa bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke project ID Anda menggunakan perintah berikut:
gcloud auth list
- Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda.
gcloud config list project
- Jika project Anda belum ditetapkan, gunakan perintah berikut untuk menetapkannya:
gcloud config set project <YOUR_PROJECT_ID>
- Aktifkan API yang diperlukan melalui perintah yang ditampilkan di bawah. Proses ini mungkin memerlukan waktu beberapa menit, jadi harap bersabar.
gcloud services enable cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
compute.googleapis.com \
container.googleapis.com
Jika perintah berhasil dieksekusi, Anda akan melihat pesan yang mirip dengan yang ditampilkan di bawah:
Operation "operations/..." finished successfully.
Jika ada API yang terlewat, Anda dapat mengaktifkannya kapan saja selama pelaksanaan.
Baca dokumentasi untuk mempelajari perintah gcloud dan penggunaannya.
3. Menyiapkan cluster GKE
Pada langkah ini, kita akan menyiapkan cluster GKE tempat kita akan menjalankan perintah. Pastikan Anda telah mengikuti langkah-langkah sebelumnya dan telah menyiapkan ID project yang benar serta mengaktifkan layanan yang diperlukan di project Google Cloud Anda.
Membuat cluster GKE
Jalankan perintah berikut yang diberikan di Cloud Shell. Jika Anda ingin membuat cluster di zona lain, silakan ubah nilai --zone
ke zona tersebut.
gcloud container clusters create my-gke-cluster \
--num-nodes 2 \
--machine-type e2-standard-4 \
--zone us-central1-a
Proses ini memerlukan waktu beberapa saat, jadi harap bersabar. Setelah selesai, Anda akan melihat output yang mirip dengan yang ditunjukkan di bawah ini:
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
Verifikasi detail cluster GKE
Pertama, mari kita ambil kredensial cluster:
gcloud container clusters get-credentials my-gke-cluster \
--zone us-central1-a
Anda akan melihat output seperti yang ditunjukkan di bawah:
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.
Selanjutnya, mari kita verifikasi detail cluster:
kubectl get nodes
Anda akan melihat output yang terlihat seperti ini:
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
Terakhir, mari kita validasi namespace cluster:
kubectl get namespaces
Anda akan melihat output yang terlihat seperti ini:
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. Instal kubectl-ai CLI
Kita akan menggunakan cara Penginstalan Cepat (Direkomendasikan) untuk menginstal kubectl-ai CLI
.
Berikan perintah berikut di Cloud Shell:
curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash
Tindakan ini akan mendownload dan menginstal kubectl-ai CLI
dan Anda akan melihat pesan di akhir yang berbunyi:
✅ kubectl-ai installed successfully! Run 'kubectl-ai --help' to get started.
Kita dapat memverifikasi apakah perintah kubectl-ai
berfungsi atau tidak dengan menjalankan perintah berikut:
kubectl-ai
Catatan: perintah di atas akan menampilkan error yang menyatakan bahwa
creating llm client: GEMINI_API_KEY environment variable not set
Perhatikan bahwa kubectl-ai mendukung model AI dari gemini
, vertexai
, azopenai
, openai
, grok
, bedrock
, dan penyedia LLM lokal seperti ollama
dan llama.cpp
. Dalam kasus ini, kita akan menggunakan Gemini (Google) dan kita perlu mendapatkan Kunci API untuk itu melalui Google AI Studio. Setelah Anda membuat kunci dan nilai sudah siap, gunakan perintah berikut di Cloud Shell untuk menetapkan variabel lingkungan GEMINI_API_KEY yang mengarah ke kunci Anda.
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
Catatan: Gunakan "GEMINI_API_KEY" hanya sebagai nilai kunci
Luncurkan kubectl-ai
sekali lagi dan kali ini Anda akan melihat bahwa kubectl-ai
diluncurkan dan menunggu perintah Anda di terminal interaktifnya.
$ kubectl-ai
Hey there, what can I help you with today?
>>>
Coba beberapa kueri terkait perintah kubectl dalam perintah. Beberapa contoh diberikan di bawah ini:
What is the command to get the nodes in a cluster?
list pods
Anda dapat keluar dari terminal kubectl-ai
dengan mengetik quit
.
5. Menggunakan kubectl-ai
Setelah berhasil mengonfigurasi kubectl-ai
, poin penting yang perlu ditekankan di sini adalah Anda kini dapat berinteraksi dengan cluster menggunakan kueri bahasa alami. Mari kita coba beberapa perintah lainnya:
Mari jalankan perintah berikut:
kubectl-ai --model gemini-2.5-flash "list pods in default namespace"
Tindakan ini akan menghasilkan output berikut:
Running: kubectl get pods -n default
There are no resources found in the default namespace.
>>>
Perhatikan bagaimana perintah ini menerjemahkan kueri bahasa alami kita untuk mencantumkan pod ke perintah kubectl
yang setara.
Selain itu, perhatikan bahwa kita sekarang berada di dalam terminal interaktif kubectl-ai
(>>>
), tempat kita dapat terus berinteraksi dengannya.
Berikan perintah berikut:
how many pods are there in kube-system namespace
Output-nya ditampilkan di bawah:
>>> 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.
Perintah Sekali Tembak
Bagian sebelumnya menunjukkan cara meluncurkan kubectl-ai
dan tetap berada di terminal interaktif untuk memberikan perintah berikutnya. Hal ini tidak cocok untuk perintah yang ingin Anda jalankan secara mandiri dan tanpa perintah interaktif yang menunggu perintah berikutnya dari Anda.
Masukkan metode perintah pengambilan tunggal dengan parameter --quiet
.
Berikut adalah contoh perintah untuk membuat deployment.
kubectl-ai --quiet "create a deployment named nginx with 2 replicas" --skip-permissions
Hal ini akan menyebabkan perintah create deployment
dieksekusi seperti yang ditunjukkan di bawah:
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 .
Dengan cara ini, kita dapat menyiapkan kubectl-ai
untuk berinteraksi dengan cluster GKE saat ini.
Kita baru saja menjalankan beberapa perintah dan mendemonstrasikan cara kerja dengan kubectl-ai
. Anda dapat menyalurkan output ke alat lain, memahami error, persistensi di antara berbagai sesi kubectl-ai
, dan lainnya. Lihat bagian Penggunaan dalam dokumentasi alat.
6. (Opsional) Antarmuka Chat kubectl-ai
Dalam situasi tertentu, Anda mungkin lebih suka berinteraksi dengan kubectl-ai
melalui antarmuka Chat standar. Kubectl-ai
dilengkapi dengan antarmuka UI sendiri yang dapat Anda luncurkan melalui perintah yang ditunjukkan di bawah di Cloud Shell:
kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080
Tindakan ini akan meluncurkan utilitas di antarmuka chat dan Anda akan melihat output yang mirip dengan berikut ini:
listening on http://[::]:8080
Klik Pratinjau Web di Cloud Shell seperti yang ditunjukkan di bawah:
Kemudian klik Preview on port 8080. Tindakan ini akan meluncurkan browser dan menyediakan antarmuka chat web seperti yang ditunjukkan di bawah:
Berikut adalah contoh kueri yang kami jalankan di antarmuka chat:
Coba kueri lain di antarmuka ini. Fitur ini juga memberikan petunjuk mengenai kueri bahasa natural lain yang dapat Anda jalankan.
7. Pembersihan
Agar tidak menimbulkan biaya berkelanjutan pada akun Google Cloud Anda, penting untuk menghapus resource yang kita buat selama workshop ini.
Jika tidak memerlukan cluster GKE yang kita buat di bagian sebelumnya dalam lab ini, Anda dapat menghapusnya melalui perintah berikut:
gcloud container clusters delete my-gke-cluster --zone=us-central1-a
8. Selamat
Selamat, Anda telah berhasil menggunakan kubectl-ai, asisten Kubernetes yang didukung AI untuk mengelola cluster Kubernetes melalui kueri bahasa alami. Untuk mengetahui informasi selengkapnya, lihat referensi yang tercantum di bagian berikutnya.