Ringkasan
Di lab ini, Anda akan menggunakan Gemini, sebagai kolaborator berteknologi AI di Google Cloud, untuk menginvestigasi log dan menyiapkan lingkungan build untuk serangkaian microservice di Google Kubernetes Engine (GKE).
Lab ini ditujukan bagi para engineer dengan segala tingkat pengalaman yang bekerja di lingkungan DevOps.
Catatan: Duet AI berganti nama menjadi Gemini, model generasi berikutnya dari kami. Lab ini telah diperbarui untuk mencerminkan perubahan ini. Semua referensi terkait Duet AI dalam antarmuka pengguna atau dokumentasi harus diperlakukan setara dengan Gemini saat mengikuti petunjuk lab.
Catatan: Sebagai teknologi tahap awal, Gemini dapat menghasilkan output yang seolah masuk akal tetapi mengandung fakta yang salah. Sebaiknya validasi semua output dari Gemini sebelum Anda menggunakannya. Untuk informasi lebih lanjut, lihat Gemini untuk Google Cloud dan responsible AI.
Tujuan
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Membuat cluster GKE dengan bantuan Gemini.
- Men-deploy serangkaian microservice ke GKE.
- Menemukan dan memahami log aplikasi dengan bantuan Gemini.
- Menggunakan Gemini untuk menginvestigasi cara membuat lingkungan build pribadi.
Penyiapan
Untuk setiap lab, Anda akan memperoleh project Google Cloud baru serta serangkaian resource selama jangka waktu tertentu, tanpa biaya.
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri adalah panel Lab Details yang memuat sebagai berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk melihat menu dengan daftar produk dan layanan Google Cloud, klik Navigation menu di kiri atas.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual dengan beberapa alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell memberikan akses command line ke resource Google Cloud Anda. gcloud
adalah alat command line untuk Google Cloud. Fitur ini sudah terinstal di Cloud Shell dan mendukung penyelesaian tab.
-
Di Google Cloud Console, pada panel navigasi, klik Activate Cloud Shell (
).
-
Klik Continue.
Perlu waktu beberapa saat untuk menyediakan dan menghubungkan ke lingkungan. Setelah terhubung, Anda juga diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Contoh:

Contoh perintah
gcloud auth list
(Output)
Akun berkredensial:
- <myaccount>@<mydomain>.com (active)
(Contoh output)
Akun berkredensial:
- google1623327_student@qwiklabs.net
gcloud config list project
(Output)
[core]
project = <project_ID>
(Contoh output)
[core]
project = qwiklabs-gcp-44776a13dea667a6
Tugas 1. Mengonfigurasi lingkungan dan akun Anda untuk Gemini
-
Login ke Konsol Google Cloud dengan kredensial lab Anda, lalu buka jendela terminal Cloud Shell.
-
Untuk menetapkan project ID dan variabel lingkungan region, jalankan perintah berikut di Cloud Shell:
PROJECT_ID=$(gcloud config get-value project)
REGION={{{project_0.default_region|set at lab start}}}
echo "PROJECT_ID=${PROJECT_ID}"
echo "REGION=${REGION}"
-
Untuk menyimpan akun pengguna Google yang sudah login dalam variabel lingkungan, jalankan perintah berikut:
USER=$(gcloud config get-value account 2> /dev/null)
echo "USER=${USER}"
-
Aktifkan Cloud AI Companion API untuk Gemini:
gcloud services enable cloudaicompanion.googleapis.com --project ${PROJECT_ID}
-
Untuk menggunakan Gemini, berikan peran IAM yang diperlukan ke akun pengguna Qwiklabs Google Cloud Anda:
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/cloudaicompanion.user
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/serviceusage.serviceUsageViewer
Dengan menambahkan peran ini, pengguna dapat menggunakan bantuan Gemini.
Untuk memverifikasi tujuan, klik Check my progress.
Mengaktifkan API yang relevan dan memberikan peran IAM yang diperlukan.
Tugas 2. Mengonfigurasi Google Kubernetes Engine
Dalam tugas ini, Anda akan mengaktifkan Google Kubernetes Engine (GKE) API, memberikan izin yang diperlukan untuk mengelola cluster GKE kepada diri anda sendiri, dan membuat cluster.
-
Untuk mengaktifkan GKE API, jalankan perintah berikut di Cloud Shell:
gcloud services enable container.googleapis.com --project ${PROJECT_ID}
-
Untuk memberikan izin admin untuk GKE kepada pengguna Anda, jalankan perintah berikut:
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/container.admin
Anda dapat membuat cluster GKE zona untuk menjalankan microservice. Gemini dapat memberi tahu Anda cara membuatnya.
-
Di Konsol Google Cloud, jika Anda tidak melihat menu Open or close Gemini AI chat (
), muat ulang halaman.
-
Untuk membuka panel Gemini, di menu teratas Konsol Google Cloud, klik Open or close Gemini AI chat (
), lalu jika diperlukan, klik Enable.
-
Klik Start Chatting.
Catatan: Jika tombol Start Chatting tidak diaktifkan, muat ulang halaman dan buka lagi Gemini.
-
Untuk memberikan perintah kepada Gemini, ketik teks di bawah, lalu klik Send Prompt (
):
What's the gcloud command for creating a zonal GKE cluster with a custom number of nodes and custom machine type?
Gemini akan memberikan respons seperti ini:
gcloud container clusters create <CLUSTER_NAME> \
--project=PROJECT_ID \
--zone=COMPUTE_ZONE \
--num-nodes=NUM_NODES \
--machine-type=MACHINE_TYPE
-
Untuk membuat cluster GKE zona, jalankan perintah berikut:
gcloud container clusters create test \
--project={{{project_0.project_id | set at lab start}}} \
--zone={{{project_0.default_zone | set at lab start}}} \
--num-nodes=3 \
--machine-type=e2-standard-4
Cluster memerlukan waktu beberapa menit untuk membuatnya. Tunggu sampai perintah selesai.
Untuk memverifikasi tujuan, klik Check my progress.
Mengonfigurasi Google Kubernetes Engine.
Tugas 3. Menggunakan kubectl untuk men-deploy serangkaian microservice
Dalam tugas ini, Anda akan membuat clone repositori yang berisi kode beberapa microservice yang merupakan bagian dari suatu aplikasi butik online. Anda juga akan menggunakan kubectl untuk men-deploy microservice tersebut ke cluster GKE.
Berikut adalah diagram arsitektur untuk aplikasi ini:

-
Untuk membuat clone repositori, jalankan perintah berikut di Cloud Shell:
git clone --depth=1 https://github.com/GoogleCloudPlatform/microservices-demo
Repositori ini berisi kode sumber untuk tiap microservice dalam aplikasi.
-
Untuk men-deploy microservice ke GKE, jalankan perintah berikut:
cd ~/microservices-demo
kubectl apply -f ./release/kubernetes-manifests.yaml
-
Untuk memeriksa status deployment, ulangi perintah berikut sampai tiap microservice tersedia:
kubectl get deployments
Saat tiap microservice tersedia, nilai yang relevan di kolom Available akan berubah menjadi 1. Perintah kubectl get deployments
akan terlihat seperti berikut:
NAME READY UP-TO-DATE AVAILABLE AGE
adservice 1/1 1 1 94s
cartservice 1/1 1 1 96s
checkoutservice 1/1 1 1 97s
currencyservice 1/1 1 1 95s
emailservice 1/1 1 1 97s
frontend 1/1 1 1 97s
loadgenerator 1/1 1 1 95s
paymentservice 1/1 1 1 96s
productcatalogservice 1/1 1 1 96s
recommendationservice 1/1 1 1 97s
redis-cart 1/1 1 1 94s
shippingservice 1/1 1 1 95s
Aplikasi ini diakses dengan alamat IP eksternalnya.
-
Untuk menentukan URL aplikasi, jalankan perintah berikut:
echo "http://$(kubectl get service frontend-external -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')"
Catatan: Mungkin perlu waktu satu menit hingga alamat IP eksternal tersedia. Jalankan perintah hingga URL menyertakan alamat IP.
-
Untuk membuka aplikasi di tab browser, tahan Control (untuk Windows dan Linux) atau Command (untuk macOS), lalu klik URL di Cloud Shell.
Halaman beranda aplikasi terbuka. Anda dapat mencoba aplikasi.
Catatan: Jika Anda melihat pop-up yang berbunyi Koneksi tidak aman, klik Lanjutkan ke situs.
Untuk memverifikasi tujuan, klik Check my progress.
Menggunakan kubectl untuk men-deploy serangkaian microservice.
Tugas 4. Menggunakan Gemini untuk memahami log untuk workload di GKE
Bayangkan Anda adalah seorang engineer DevOps yang mewarisi sekumpulan microservice yang sudah ada untuk dikelola. Microservice tersebut berjalan di cluster GKE. Untuk memahami lingkungan, Anda memutuskan untuk memeriksa log dari berbagai microservice.
Dalam tugas ini, Anda akan menggunakan Gemini untuk membantu merancang kueri guna menelusuri log tertentu dan menjelaskan entri log.
-
Di kolom judul Konsol Google Cloud, ketik Logs Explorer di kolom Search, lalu klik Logs Explorer di hasil penelusuran.
-
Untuk memberikan perintah kepada Gemini, ketik teks di bawah, lalu klik Send Prompt (
):
What is a Logs Explorer query to search for logs from Pods in a namespace called "default" in a GKE cluster named "test"?
Anda seharusnya akan menerima respons yang memberikan kueri yang terlihat seperti ini:
resource.type="k8s_container"
resource.labels.cluster_name="test"
resource.labels.namespace_name="default"
Catatan: Jika kueri dari Gemini terlihat berbeda dari respons di atas, Anda dapat menggunakan kueri yang disediakan di sini.
-
Di kotak Query, tempel kueri tersebut, lalu klik Run query.
Pesan log sekarang difilter agar hanya menjadi pesan yang berasal dari cluster GKE test. Sekarang Anda dapat menjelajahi entri log.
-
Untuk mempelajari entri log, perluas entri log, lalu klik Explain this log entry.
Misalnya, jika Anda mengklik tombol Explain untuk entri log GET /product/0PUK6V6EV0
, Anda mungkin akan menerima respons dari Gemini yang terlihat seperti ini:
• This is a log entry from a Kubernetes container named main.
• The container is part of a pod named loadgenerator-84cc74dcd-jf6dr in the default namespace.
• The pod is running on cluster test in zone us-west1-a.
• The log entry is an HTTP request to /product/0PUK6V6EV0 that took 49 milliseconds to process.
• The request resulted in a 200 OK response and 40 bytes of data being sent back to the client.
Setelah menjelajahi penjelasan log untuk workload, kini Anda memutuskan untuk menyiapkan infrastruktur guna membangun image container untuk tim Anda nantinya pada sekumpulan worker pribadi yang tidak memiliki akses ke internet.
Tugas 5. Menggunakan Gemini untuk membuat lingkungan build pribadi untuk image container
Dalam tugas ini, Anda akan menggunakan Gemini untuk membantu mengidentifikasi cara membuat dan menjalankan lingkungan build pribadi.
Anda bertanggung jawab untuk menyiapkan sistem build untuk project yang sensitif. Anda sudah tahu bahwa Cloud Build adalah layanan untuk menjalankan build di Google Cloud, dan Cloud Build menggunakan pool worker untuk menjalankan build Anda.
-
Dalam chat Gemini, masukkan perintah berikut untuk mengetahui info lebih lanjut tentang pool worker:
What is a Cloud Build worker pool?
Gemini mungkin akan memberikan respons yang dimulai seperti ini:
A Cloud Build worker pool is a group of virtual machines that are dedicated to running your builds. Worker pools are created in a specific region and zone, and they can be either private or public.
Private pools are only accessible to your project, and they offer a number of benefits, including:
• Isolation: Your builds will run on dedicated machines, which means that they will not be affected by other workloads running in the same project.
• Security: Private pools are more secure than public pools, as they are not accessible to other projects.
• Performance: Private pools can offer better performance than public pools, as they are not shared with other projects.
Keamanan yang disediakan oleh pool worker pribadi mungkin merupakan pilihan yang tepat untuk project Anda. Akan lebih baik lagi jika build dapat diblokir agar tidak mengakses internet publik.
-
Dalam chat Gemini, masukkan perintah berikut:
Can you create a private worker pool that has no access to the public internet?
Gemini mungkin akan memberikan respons seperti ini:
Yes, you can create a private worker pool that has no access to the public internet. This is known as a "private pool with no public egress".
To create a private pool with no public egress, you can use the --no-public-egress flag when creating the pool.
Bagus, seharusnya cara ini sangat aman. Anda sadar bahwa worker di pool pribadi tidak akan memiliki akses ke repositori paket publik seperti PyPI. Setelah tahu bahwa Anda perlu meng-host paket pribadi, Anda tentunya akan bertanya apakah Artifact Registry dapat digunakan atau tidak.
-
Dalam chat Gemini, masukkan perintah berikut:
If I create a private pool with no public egress, can I use Artifact Registry to host my packages privately and access them from a private pool?
Gemini mungkin akan memberikan respons seperti ini:
Yes, you can use Artifact Registry to host your packages privately and access them from a private pool with no public egress.
To do this, you will need to create a private Artifact Registry repository and grant your private pool access to the repository. You can do this by adding the service account for your private pool as a member of the repository with the Artifact Registry Reader role.
Once you have created the repository and granted your private pool access, you can push your packages to the repository and then pull them from your private pool.
Sekarang, minta Gemini untuk memberikan perintah gcloud CLI guna membuat pool pribadi.
-
Dalam chat Gemini, masukkan perintah berikut:
What is the gcloud command for creating a private worker pool with no public egress?
Gemini mungkin akan memberikan perintah seperti ini:
gcloud builds worker-pools create POOL_NAME \
--project=PROJECT_ID \
--region=REGION \
--no-public-egress
-
Untuk membuat pool pribadi, jalankan perintah berikut:
gcloud builds worker-pools create pool-test \
--project={{{project_0.project_id|set at lab start}}} \
--region={{{project_0.default_region|set at lab start}}} \
--no-public-egress
Lingkungan lab kemungkinan akan menampilkan pesan error seperti ini:
ERROR: (gcloud.builds.worker-pools.create) FAILED_PRECONDITION: project "{{{project_0.project_id|set at lab start}}}" is unable to use private pools
Anda dapat mengabaikan pesan error tersebut di lab ini.
Catatan: Pool pribadi saat ini dinonaktifkan dalam lingkungan lab. Untuk project di luar lingkungan lab, perintah untuk membuat pool pribadi seharusnya bisa digunakan.
Sekarang kita akan meminta Gemini untuk membuat repositori Docker pribadi.
-
Dalam chat Gemini, masukkan perintah berikut:
How can I use gcloud to create a private Docker repository for container images in Artifact Registry?
Gemini mungkin akan memberikan respons yang menyertakan perintah gcloud CLI seperti ini:
gcloud artifacts repositories create REPOSITORY \
--repository-format=docker \
--location=REGION \
--description="DESCRIPTION"
where:
• REPOSITORY is the name of the private Docker repository to be created.
• REGION is the region in which to create the private Docker repository.
• DESCRIPTION is a description of the private Docker repository.
-
Untuk membuat repositori, jalankan perintah berikut:
gcloud artifacts repositories create my-repo \
--repository-format=docker \
--location={{{project_0.default_region|set at lab start}}} \
--description="My private Docker repository"
Repositori akan dibuat.
Untuk memverifikasi tujuan, klik Check my progress.
Membuat repositori.
Mengakhiri lab Anda
Setelah Anda menyelesaikan lab, klik Akhiri Lab. Qwiklabs menghapus resource yang telah Anda gunakan dan menghapus akun.
Anda akan diberi kesempatan untuk menilai pengalaman menggunakan lab. Pilih jumlah bintang yang sesuai, ketik komentar, lalu klik Submit.
Makna jumlah bintang:
- 1 bintang = Sangat tidak puas
- 2 bintang = Tidak puas
- 3 bintang = Netral
- 4 bintang = Puas
- 5 bintang = Sangat puas
Anda dapat menutup kotak dialog jika tidak ingin memberikan masukan.
Untuk masukan, saran, atau koreksi, gunakan tab Dukungan.
Selamat!
Di lab ini, Anda telah mempelajari cara:
- Membuat cluster GKE dengan bantuan Gemini.
- Men-deploy serangkaian microservice ke GKE.
- Menemukan dan memahami log aplikasi dengan bantuan Gemini.
- Menggunakan Gemini untuk menginvestigasi cara membuat lingkungan build pribadi.
Hak cipta 2024 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.