Checkpoint
Enable services, create an artifact registry and the GKE cluster
/ 20
Create the Git repositories
/ 20
Create the container image with Cloud Build
/ 20
Create the Continuous Integration (CI) Pipeline
/ 20
Create the Test Environment and CD Pipeline
/ 20
Pipeline Google Kubernetes Engine menggunakan Cloud Build
- GSP1077
- Ringkasan
- Tujuan
- Penyiapan dan persyaratan
- Tugas 1. Memulai Lab Anda
- Tugas 2. Menghapus repositori Git di Cloud Source Repositories
- Tugas 3. Membuat image container dengan Cloud Build
- Tugas 4. Membuat pipeline Continuous Integration (CI)
- Tugas 5. Membuat Lingkungan Pengujian dan pipeline CD
- Tugas 6. Meninjau Pipeline Cloud Build
- Tugas 7. Menguji pipeline yang lengkap
- Tugas 8. Menguji rollback
- Selamat!
GSP1077
Ringkasan
Dalam lab ini, Anda akan membuat pipeline CI/CD yang otomatis membangun image container dari kode yang di-commit, menyimpan image di Artifact Registry, dan mengupdate manifes Kubernetes di repositori Git, serta men-deploy aplikasi ke Google Kubernetes Engine menggunakan manifes tersebut.
Untuk lab ini, Anda akan membuat 2 repositori Git:
- app repository: berisi kode sumber dari aplikasi itu sendiri
- env repository: berisi manifes untuk Deployment Kubernetes
Saat Anda mengirim perubahan pada app repository, pipeline Cloud Build akan menjalankan pengujian, membangun image container, dan mengirimnya ke Artifact Registry. Setelah mengirim image, Cloud Build mengupdate manifes Deployment dan mengirimnya ke env repository. Tindakan ini memicu pipeline Cloud Build lain yang menerapkan manifes ke cluster GKE dan, jika berhasil, menyimpan manifes di cabang env repository lain.
App repository dan env repository disimpan secara terpisah karena keduanya memiliki siklus proses dan penggunaan yang berbeda. Pengguna utama app repository adalah manusia asli dan repositori ini dikhususkan untuk aplikasi tertentu. Pengguna utama env repository adalah sistem otomatis (seperti Cloud Build), dan repositori ini mungkin digunakan bersama oleh beberapa aplikasi. Env repository dapat memiliki beberapa cabang yang masing-masing dipetakan ke lingkungan tertentu (Anda hanya menggunakan produksi dalam lab ini) dan mereferensikan image container tertentu, sedangkan app repository tidak demikian.
Setelah menyelesaikan lab ini, Anda memiliki sistem tempat Anda dapat dengan mudah:
- Membedakan antara deployment yang gagal dan berhasil dengan melihat histori Cloud Build.
- Mengakses manifes yang saat ini digunakan dengan melihat cabang produksi dari env repository.
- Melakukan rollback ke versi sebelumnya dengan mengeksekusi kembali build Cloud Build yang sesuai.
Tujuan
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Membuat cluster Kubernetes Engine
- Membuat Cloud Source Repositories
- Memicu Cloud Build dari Cloud Source Repositories
- Mengotomatiskan pengujian dan memublikasikan image container yang dapat di-deploy melalui Cloud Build
- Mengelola resource yang di-deploy di cluster Kubernetes Engine melalui Cloud Build
Penyiapan dan persyaratan
Sebelum mengklik tombol Mulai Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer, yang dimulai saat Anda mengklik Start Lab, akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab praktik ini dapat Anda gunakan untuk melakukan sendiri aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Cara memulai lab dan login ke Google Cloud Console
-
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 dengan info 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.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
- Klik Activate Cloud Shell di bagian atas konsol Google Cloud.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:
gcloud
adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
-
Klik Authorize.
-
Output Anda sekarang akan terlihat seperti ini:
Output:
- (Opsional) Anda dapat menampilkan daftar project ID dengan perintah ini:
Output:
Contoh output:
gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Tugas 1. Memulai Lab Anda
- Di Cloud Shell, tetapkan project ID dan nomor project Anda. Simpan keduanya sebagai variabel
PROJECT_ID
danPROJECT_NUMBER
:
Pada tugas berikutnya, Anda akan menyiapkan Project Google Cloud untuk digunakan dengan mengaktifkan API yang diperlukan, memulai konfigurasi git di Cloud Shell, dan mendownload kode contoh yang nantinya digunakan dalam lab.
- Jalankan perintah berikut untuk mengaktifkan API pada GKE, Cloud Build, Cloud Source Repositories, dan Container Analysis:
- Buat repositori Docker Artifact Registry yang dinamai my-repository di region
untuk menyimpan image container:
- Buat cluster GKE untuk men-deploy aplikasi contoh lab ini:
- Jika Anda belum pernah menggunakan Git di Cloud Shell, konfigurasi Git dengan nama dan alamat email Anda. Git akan menggunakan keduanya untuk mengidentifikasi Anda sebagai penulis commit yang akan Anda buat di Cloud Shell (jika tidak memiliki akun github, Anda dapat mengisinya dengan informasi Anda saat ini. Akun tidak diperlukan untuk lab ini):
Klik Check my progress untuk memverifikasi tujuan.
Tugas 2. Menghapus repositori Git di Cloud Source Repositories
Dalam tugas ini, Anda membuat dua repositori Git (hello-cloudbuild-app dan hello-cloudbuild-env) serta memulai hello-cloudbuild-app dengan beberapa kode contoh.
- Di Cloud Shell, jalankan perintah berikut untuk membuat dua repositori Git:
- Clone kode contoh dari GitHub:
- Konfigurasi Cloud Source Repositories sebagai jarak jauh:
Kode yang baru saja Anda clone berisi aplikasi "Hello World" sederhana.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 3. Membuat image container dengan Cloud Build
Kode yang Anda clone sudah berisi Dockerfile berikut.
Dengan Dockerfile ini, Anda dapat memuat image container menggunakan Cloud Build dan menyimpannya di Artifact Registry.
- Di Cloud Shell, buat build Cloud Build berdasarkan commit terbaru dengan perintah berikut:
Cloud Build mengalirkan log yang dihasilkan oleh pembuatan image container ke terminal saat Anda menjalankan perintah ini.
- Setelah build selesai, di Konsol Cloud, buka Artifact Registry > Repositories untuk memastikan image container baru Anda benar-benar tersedia di Artifact Registry. Klik my-repository.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 4. Membuat pipeline Continuous Integration (CI)
Dalam tugas ini, Anda akan mengonfigurasi Cloud Build untuk otomatis menjalankan pengujian unit kecil, membangun image container, lalu mengirimnya ke Artifact Registry. Mengirim commit baru ke Cloud Source Repositories akan otomatis memicu pipeline ini. File cloudbuild.yaml yang sudah disertakan dalam kode adalah konfigurasi pipeline.
- Di Konsol Cloud, buka Cloud Build > Triggers.
- Klik Create Trigger
- Di kolom Name, ketik
hello-cloudbuild
. - Di bagian Event, pilih Push to a branch.
- Di bagian Source, pilih hello-cloudbuild-app sebagai Repository dan
.* (cabang apa pun)
sebagai Branch. - Di bagian Build configuration, pilih Cloud Build configuration file.
- Di kolom Cloud Build configuration file location, ketik
cloudbuild.yaml
setelah /. - Klik Create.
Setelah pemicu dibuat, kembali ke Cloud Shell. Kini Anda perlu mengirim kode aplikasi ke Cloud Source Repositories untuk memicu pipeline CI di Cloud Build.
- Untuk memulai pemicu ini, jalankan perintah berikut:
-
Di Konsol Cloud, buka Cloud Build > Dashboard.
-
Anda akan melihat build yang sedang berjalan atau baru saja selesai. Anda dapat mengklik build untuk mengikuti eksekusinya dan memeriksa log-nya.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 5. Membuat Lingkungan Pengujian dan pipeline CD
Cloud Build juga digunakan untuk pipeline continuous delivery. Pipeline dijalankan setiap kali commit dikirim ke cabang kandidat repositori hello-cloudbuild-env. Pipeline menerapkan manifes versi baru ke cluster Kubernetes dan, jika berhasil, menyalin manifes ke cabang produksi. Proses ini memiliki properti berikut:
- Cabang kandidat adalah histori upaya deployment.
- Cabang produksi adalah histori deployment yang berhasil.
- Anda dapat melihat deployment yang berhasil dan gagal di Cloud Build.
- Anda dapat melakukan rollback ke deployment sebelumnya dengan mengeksekusi ulang build yang sesuai di Cloud Build. Rollback juga memperbarui cabang produksi agar mencerminkan histori deployment secara akurat.
Selanjutnya, Anda akan memodifikasi pipeline continuous integration untuk memperbarui cabang kandidat repositori hello-cloudbuild-env, yang memicu pipeline continuous delivery.
Memberikan akses Cloud Build ke GKE
Untuk mend-deploy aplikasi di cluster Kubernetes, Cloud Build memerlukan peran Kubernetes Engine Developer serta Identity and Access Management.
- Di Cloud Shell, jalankan perintah berikut:
Anda harus memulai repositori hello-cloudbuild-env dengan dua cabang (produksi dan kandidat) serta file konfigurasi Cloud Build yang menjelaskan proses deployment.
Langkah pertamanya adalah meng-clone repositori hello-cloudbuild-env dan membuat cabang produksi. Repositori tersebut masih kosong.
- Di Cloud Shell, jalankan perintah berikut:
- Selanjutnya, Anda perlu menyalin file cloudbuild-delivery.yaml yang tersedia di repositori hello-cloudbuild-app dan meng-commit perubahan:
File cloudbuild-delivery.yaml
menjelaskan proses deployment untuk dijalankan di Cloud Build. Proses ini memiliki dua langkah:
- Cloud Build menerapkan manifes di cluster GKE.
- Jika berhasil, Cloud Build menyalin manifes di cabang produksi.
- Buat cabang kandidat dan kirim cabang agar tersedia di Cloud Source Repositories:
- Berikan peran Source Repository Writer IAM ke akun layanan Cloud Build untuk repositori hello-cloudbuild-env:
Membuat pemicu untuk pipeline continuous delivery
- Di Konsol Cloud, buka Cloud Build > Triggers.
- Klik Create Trigger.
- Di kolom Name, ketik
hello-cloudbuild-deploy
. - Di bagian Event, pilih Push to a branch.
- Di bagian Source, pilih hello-cloudbuild-env sebagai Repository dan
^candidate$
sebagai Branch. - Di bagian Build configuration, pilih Cloud Build configuration file.
- Di kolom Cloud Build configuration file location, ketik
cloudbuild.yaml
setelah /. - Klik Create.
Ubah pipeline continuous integration untuk memicu pipeline continuous delivery.
Selanjutnya, tambahkan beberapa langkah ke pipeline continuous integration yang akan menghasilkan manifes Kubernetes versi baru dan kirim ke repositori hello-cloudbuild-env untuk memicu pipeline continuous delivery.
- Salin file cloudbuild.yaml versi yang diperluas untuk app repository:
cloudbuild-trigger-cd.yaml adalah file cloudbuild.yaml versi yang diperluas. File tersebut menambahkan langkah-langkah di bawah: menghasilkan manifes Kubernetes baru dan memicu pipeline continuous delivery.
sed
simpel untuk merender template manifes. Pada kenyataannya, Anda akan mendapatkan manfaat dari penggunaan alat khusus seperti kustomize atau skaffold. Alat ini memberi Anda lebih banyak kontrol terhadap proses rendering template manifes.
- Lakukan commit pada modifikasi dan kirimkan ke Cloud Source Repositories:
Tindakan ini memicu pipeline continuous integration di Cloud Build.
Klik Check my progress untuk memverifikasi tujuan.
Tugas 6. Meninjau Pipeline Cloud Build
- Di Konsol Cloud, buka Cloud Build > Dashboard.
- Klik pemicu hello-cloudbuild-app untuk mengikuti eksekusinya dan memeriksa log-nya. Langkah terakhir dari pipeline ini mengirim manifes baru ke repositori hello-cloudbuild-env, yang memicu pipeline continuous delivery.
- Kembali ke Dashboard utama.
- Anda akan melihat build yang sedang berjalan atau baru saja selesai untuk repositori hello-cloudbuild-env. Anda dapat mengklik build untuk mengikuti eksekusinya dan memeriksa log-nya.
Tugas 7. Menguji pipeline yang lengkap
Pipeline CI/CD lengkap kini dikonfigurasi. Uji pipeline secara end-to-end.
- Di Konsol Cloud, buka Kubernetes Engine > Gateways, Services & Ingress.
Seharusnya terdapat layanan tunggal bernama hello-cloudbuild dalam daftar. Layanan ini dibuat oleh build continuous delivery yang baru saja berjalan.
- Klik endpoint untuk layanan hello-cloudbuild. Anda akan melihat "Hello World!". Jika tidak ada endpoint, atau jika terjadi error load balancer, Anda mungkin harus menunggu beberapa menit sampai load balancer benar-benar dimulai. Klik Refresh untuk memperbarui halaman jika diperlukan.
- Di Cloud Shell, ganti "Hello World" dengan "Hello Cloud Build", di aplikasi dan di pengujian unit:
- Lakukan commit pada perubahan tersebut dan kirim ke Cloud Source Repositories:
- Tindakan ini akan memicu pipeline CI/CD yang lengkap.
Setelah beberapa menit, muat ulang aplikasi di browser. Anda akan melihat "Hello Cloud Build!".
Tugas 8. Menguji rollback
Dalam tugas ini, Anda akan melakukan rollback ke versi aplikasi yang bertuliskan "Hello World!".
- Di Konsol Cloud, buka Cloud Build > Dashboard.
- Klik link View all di bagian Build History untuk repositori hello-cloudbuild-env.
- Klik build yang kedua paling baru yang tersedia.
- Klik Rebuild.
Setelah build selesai, muat ulang aplikasi di browser. Anda akan melihat "Hello World!" lagi.
Selamat!
Sekarang Anda dapat menggunakan Cloud Build untuk membuat dan melakukan rollback pada pipeline continuous integration dengan GKE di Google Cloud.
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui: 26 Januari 2024
Lab Terakhir Diuji: 19 Januari 2024
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.