Codelab - Mengelola Kubernetes dengan kubectl-ai, Asisten Kubernetes yang didukung AI

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.

d62a763b2dba5ba7.png

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

  1. Di Konsol Google Cloud, di halaman pemilih project, pilih atau buat project Google Cloud.
  2. Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project .
  3. 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.

Gambar tombol Aktifkan Cloud Shell

  1. 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
  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda.
gcloud config list project
  1. Jika project Anda belum ditetapkan, gunakan perintah berikut untuk menetapkannya:
gcloud config set project <YOUR_PROJECT_ID>
  1. 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:

f990712162e8e924.png

Kemudian klik Preview on port 8080. Tindakan ini akan meluncurkan browser dan menyediakan antarmuka chat web seperti yang ditunjukkan di bawah:

90fce57ad7f16842.png

Berikut adalah contoh kueri yang kami jalankan di antarmuka chat:

6a304d227d3fa5a6.png

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.

9. Resource