
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create a Kubernetes cluster
/ 20
Configure and Install Jenkins
/ 20
Create the production and canary deployments
/ 30
Build for the 'new-feature' branch
/ 10
Deploying a canary release
/ 10
Deploying to production
/ 10
Di lab ini, Anda akan mempelajari cara menyiapkan pipeline continuous delivery dengan Jenkins
di Kubernetes engine. Jenkins adalah server otomatisasi andalan para developer yang sering mengintegrasikan kode dalam repositori bersama. Solusi yang akan Anda buat di lab ini akan serupa dengan diagram berikut:
Di Cloud Architecture Center, lihat Jenkins di Kubernetes Engine untuk mempelajari lebih lanjut cara menjalankan Jenkins di Kubernetes.
Di lab ini, Anda akan menyelesaikan tugas-tugas berikut untuk mempelajari cara menjalankan Jenkins di Kubernetes:
Ini adalah lab tingkat lanjut. Sebelum mengikutinya, Anda harus setidaknya sudah memahami dasar-dasar pemrograman shell, Kubernetes, dan Jenkins. Berikut adalah beberapa lab yang dapat melengkapi pengetahuan Anda:
Setelah Anda siap, scroll ke bawah untuk mempelajari Kubernet, Jenkins, dan Continuous Delivery lebih lanjut.
Kubernetes Engine adalah versi Kubernetes
yang dihosting oleh Google Cloud dan merupakan sistem pengelola cluster dan orkestrasi container yang canggih. Kubernetes adalah project open source yang dapat berjalan di berbagai lingkungan, dari laptop hingga cluster multinode dengan ketersediaan tinggi, dari virtual machine hingga server khusus (bare metal). Seperti yang disebutkan sebelumnya, aplikasi Kubernetes dibuat di container
, yaitu aplikasi ringan yang dipaketkan dengan semua dependensi dan library yang diperlukan untuk menjalankannya. Struktur dasar ini menyediakan aplikasi Kubernetes yang aman, cepat di-deploy, dan memiliki ketersediaan tinggi, sehingga menjadikannya sebuah framework yang ideal untuk developer cloud.
Jenkins adalah server otomatisasi open source yang memungkinkan Anda mengorkestrasi pipeline build, pengujian, dan deployment secara fleksibel. Jenkins memungkinkan developer untuk melakukan iterasi pada project secara cepat tanpa perlu mengkhawatirkan masalah overhead yang dapat muncul dari continuous delivery.
Jika Anda harus menyiapkan pipeline continuous delivery (CD), men-deploy Jenkins di Kubernetes Engine akan memberikan lebih banyak manfaat penting dibandingkan dengan deployment berbasis VM standar.
Jika proses build Anda menggunakan container, satu host virtual dapat menjalankan tugas di beberapa sistem operasi. Kubernetes Engine menyediakan ephemeral build executors
yang hanya digunakan ketika build aktif berjalan, sehingga meninggalkan resource untuk tugas cluster lainnya seperti tugas batch processing. Manfaat lain dari ephemeral build executors ialah kecepatan, sehingga proses peluncuran berlangsung hanya dalam hitungan detik.
Kubernetes Engine juga dilengkapi dengan load balancer global Google yang dapat Anda gunakan untuk mengotomatiskan perutean traffic web ke instance. Load balancer menangani penghentian SSL dan menggunakan alamat IP global yang dikonfigurasikan dengan jaringan backbone Google. Jika digunakan bersama web front, load balancer ini akan selalu menempatkan pengguna di jalur tercepat ke instance aplikasi.
Setelah Anda mempelajari sedikit tentang Kubernetes, Jenkins, dan cara keduanya berinteraksi dalam pipeline CD, sekarang saatnya untuk membuatnya.
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 interaktif ini dapat Anda gunakan untuk melakukan 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:
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran. Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
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.
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
Anda juga dapat menemukan Username di panel Lab Details.
Klik Next.
Salin Password di bawah dan tempel ke dialog Welcome.
Anda juga dapat menemukan Password di panel Lab Details.
Klik Next.
Klik halaman berikutnya:
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
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.
Klik jendela berikut:
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID,
gcloud
adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
Output:
Output:
gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Langkah ini dapat memakan waktu beberapa menit. Cakupan ekstra memungkinkan Jenkins mengakses Cloud Source Repositories dan Google Container Registry.
Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah diselesaikan. Jika cluster Kubernetes berhasil dibuat, Anda akan melihat skor penilaian.
Di lab ini, Anda akan menggunakan Helm untuk menginstal Jenkins dari repositori Chart. Helm adalah pengelola paket yang memudahkan konfigurasi dan deployment aplikasi Kubernetes. Setelah Jenkins diinstal, Anda dapat menyiapkan pipeline CI/CD.
Saat menginstal Jenkins, file values
dapat digunakan sebagai template untuk memberikan nilai yang diperlukan untuk penyiapan.
Anda akan menggunakan file values
kustom untuk secara otomatis mengonfigurasi Kubernetes Cloud dan menambahkan plugin yang diperlukan berikut:
Ini akan memungkinkan Jenkins untuk terhubung ke cluster dan project GCP Anda.
Pemrosesan perintah ini dapat membutuhkan waktu beberapa menit.
Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah diselesaikan. Jika chart Jenkins telah berhasil dikonfigurasi, Anda akan melihat skor penilaian.
Running
dan container berada dalam status READY:Contoh Output:
Anda akan menerima output berikut:
Contoh Output:
Anda menggunakan Plugin Kubernetes sehingga node builder kami akan secara otomatis diluncurkan saat diperlukan jika master Jenkins memintanya. Setelah menyelesaikan tugasnya, node builder akan otomatis dinonaktifkan dan resource-nya akan ditambahkan kembali ke kumpulan resource cluster.
Perhatikan bahwa layanan ini mengekspos port 8080
, dan 50000
untuk tiap pod yang sesuai dengan selector
. Hal ini akan mengekspos UI web Jenkins dan port registrasi builder/agen di dalam cluster Kubernetes. Selain itu, layanan jenkins-ui
diekspos menggunakan ClusterIP sehingga tidak dapat diakses dari luar cluster.
admin
dan sandi yang dibuat secara otomatis.Jenkins sekarang sudah selesai disiapkan di cluster Kubernetes Anda. Jenkins akan menggerakkan pipeline CI/CD otomatis Anda di bagian selanjutnya.
Anda akan men-deploy aplikasi contoh, gceme
, di pipeline deployment berkelanjutan. Aplikasi ini ditulis dalam bahasa Go dan berada di direktori sample-app repo. Saat Anda menjalankan biner gceme di instance Compute Engine, aplikasi akan menampilkan metadata instance dalam kartu info.
Aplikasi meniru microservice dengan mendukung dua mode operasi.
Anda akan men-deploy aplikasi ke dalam dua lingkungan yang berbeda:
kubectl apply
:Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah diselesaikan. Jika deployment berhasil dibuat, Anda akan melihat skor penilaian.
Secara default, hanya satu replika frontend yang di-deploy. Gunakan perintah kubectl scale
untuk memastikan setidaknya ada 4 replika yang selalu berjalan.
Contoh Output:
Tempel External IP ke browser untuk melihat kartu info yang ditampilkan di kartu. Anda akan mendapatkan halaman serupa berikut:
Konfirmasi bahwa kedua layanan dapat berfungsi dengan membuka alamat IP eksternal frontend di browser Anda.
Periksa output versi layanan dengan menjalankan perintah berikut (harus terbaca 1.0.0):
Anda telah berhasil men-deploy aplikasi contoh. Selanjutnya, Anda akan menyiapkan pipeline untuk men-deploy perubahan Anda secara berkelanjutan dan andal.
gceme
dan kirim ke Cloud Source Repository:Anda dapat mengabaikan peringatan dan tidak akan dikenai biaya atas repositori ini.
Menguji tugas yang sudah selesai
Klik Check my progress untuk memverifikasi tugas yang telah diselesaikan. Jika repositori sumber berhasil dibuat, Anda akan melihat skor penilaian.
[EMAIL_ADDRESS]
dengan alamat email Git Anda dan [USERNAME]
dengan nama pengguna Git Anda:Konfigurasikan kredensial Anda agar Jenkins dapat mengakses repositori kode. Jenkins akan menggunakan kredensial akun layanan cluster Anda untuk mendownload kode dari Cloud Source Repositories.
Di antarmuka pengguna Jenkins, klik Manage Jenkins di navigasi sebelah kiri, lalu klik Security > Credentials.
Klik System.
Klik Global credentials (unrestricted).
Klik Add Credentials di pojok kanan atas.
Pilih Google Service Account from metadata dari drop-down Kind, lalu klik Create.
Kredensial global telah ditambahkan. Nama kredensial adalah Project ID
yang ditemukan di bagian CONNECTION DETAILS
pada lab.
http://cd-jenkins:8080
cd-jenkins-agent:50000
Buka antarmuka pengguna Jenkins Anda, lalu ikuti langkah-langkah ini untuk mengonfigurasi tugas Pipeline.
Klik Dashboard > New Item pada panel sebelah kiri.
Beri nama project sample-app, lalu pilih opsi Multibranch Pipeline dan klik OK.
Pada halaman berikutnya, di bagian Branch Sources, pilih Git dari drop-down Add Source.
Tempel HTTPS clone URL dari repositori sample-app di Cloud Source Repositories ke dalam kolom Project Repository. Ganti [PROJECT_ID]
dengan Project ID Anda:
Dari drop-down Credentials, pilih nama kredensial yang Anda buat saat menambahkan akun layanan di langkah sebelumnya.
Di bagian Scan Multibranch Pipeline Triggers, centang kotak Periodically if not otherwise run, lalu tetapkan nilai Interval ke 1 minute.
Konfigurasi tugas Anda akan terlihat seperti ini:
Setelah Anda menyelesaikan langkah-langkah ini, tugas yang bernama Branch indexing
akan berjalan. Tugas meta ini mengidentifikasi cabang di repositori Anda dan memastikan tidak terjadi perubahan di cabang yang ada. Jika Anda mengklik sample-app di kiri atas, tugas master
akan terlihat.
Anda telah berhasil membuat pipeline Jenkins! Selanjutnya, Anda akan membuat lingkungan pengembangan untuk continuous integration.
Cabang pengembangan adalah sekumpulan lingkungan yang digunakan oleh developer Anda untuk menguji perubahan kode sebelum mengirimkannya untuk diintegrasikan ke situs live. Lingkungan ini adalah versi kecil dari aplikasi Anda, tetapi perlu di-deploy menggunakan mekanisme yang sama dengan lingkungan aktif.
Untuk membuat lingkungan pengembangan dari cabang fitur, Anda dapat mengirimkan cabang ke server Git dan membiarkan Jenkins men-deploy lingkungan.
Jenkinsfile
yang mendefinisikan pipeline tersebut ditulis menggunakan sintaksis Jenkins Pipeline Groovy. Dengan menggunakan Jenkinsfile
, seluruh pipeline build dapat diekspresikan dalam satu file yang aktif bersama kode sumber Anda. Pipeline mendukung fitur-fitur canggih, seperti paralelisasi, dan memerlukan persetujuan pengguna secara manual.
Agar pipeline dapat berfungsi seperti yang diharapkan, Anda harus memodifikasi Jenkinsfile
untuk menetapkan ID project.
vi
:Tambahkan PROJECT_ID
ke nilai REPLACE_WITH_YOUR_PROJECT_ID
. (PROJECT_ID
Anda adalah Project ID yang ditemukan di bagian CONNECTION DETAILS
pada lab. Anda juga dapat menjalankan gcloud config get-value project
untuk menemukannya.
Ubah nilai CLUSTER_ZONE
menjadi gcloud config get compute/zone
.
Jenkinsfile
: tekan tombol Esc, lalu (untuk pengguna vi
):Untuk menunjukkan perubahan aplikasi, Anda akan mengubah warna kartu gceme dari biru menjadi oranye.
html.go:
<div class="card blue">
dengan kode berikut:html.go
: tekan tombol Esc, lalu:main.go:
Perbarui kode menjadi berikut:
Tindakan ini akan memulai pembuatan lingkungan pengembangan Anda.
Setelah perubahan dikirimkan ke repositori Git, buka antarmuka pengguna Jenkins tempat Anda dapat melihat bahwa build untuk cabang new-feature
telah dimulai. Diperlukan waktu hingga satu menit hingga perubahan mulai berlaku.
kubectl --namespace=new-feature apply...
akan mulai. Cabang new-feature sekarang akan di-deploy untuk cluster.Jika Anda tidak melihat apa pun di Build Executor
, jangan khawatir. Cukup buka halaman beranda Jenkins > sample app. Pastikan bahwa pipeline new-feature
telah dibuat.
localhost
dan proxy kubectl
akan meneruskannya ke layanan:Anda akan melihatnya merespons dengan 2.0.0 yang merupakan versi yang berjalan sekarang.
Jika Anda menerima error serupa:
curl
. Lanjutkan jika Anda mendapatkan output berikut:Anda telah menyiapkan lingkungan pengembangan. Selanjutnya, Anda akan mengembangkan hal yang telah dipelajari dalam modul sebelumnya dengan men-deploy rilis terbatas untuk menguji fitur baru.
Anda telah memverifikasi bahwa aplikasi Anda menjalankan kode terbaru di lingkungan pengembangan. Selanjutnya, deploy kode tersebut ke lingkungan canary.
2.0.0
.Selesai. Anda telah men-deploy rilis terbatas. Berikutnya, Anda akan men-deploy versi baru ke produksi.
Setelah rilis terbatas berhasil dan belum ada pelanggan yang mengeluh, lakukan deployment ke seluruh fleet produksi Anda.
Di Jenkins, Anda akan melihat pipeline master telah dimulai.
1.0.0
, coba jalankan kembali perintah di atas. Anda dapat menghentikan perintah ini dengan menekan Ctrl + C.Contoh output:
Anda juga dapat membuka situs tempat aplikasi gceme menampilkan kartu info. Warna kartu berubah dari biru menjadi oranye.
Contoh output:
Di bawah ini terdapat beberapa pertanyaan pilihan ganda untuk memperkuat pemahaman Anda tentang konsep lab ini. Jawab pertanyaan tersebut sebaik mungkin.
Selesai!
Bagus, Anda telah berhasil men-deploy aplikasi ke produksi!
Bagian ini mengakhiri lab praktik tentang men-deploy dan menggunakan Jenkins di Kubernetes Engine untuk mengaktifkan pipeline Continuous Delivery/Deployment Berkelanjutan. Anda telah berkesempatan men-deploy fitur DevOps penting di Kubernetes Engine dan mengonfigurasikannya untuk penggunaan produksi. Anda telah mempelajari alat command line kubectl dan konfigurasi deployment dalam file YAML, serta telah belajar sedikit tentang penyiapan jaringan pipeline Jenkins untuk proses pengembangan/deployment. Berbekal pengalaman praktis ini, Anda diharapkan dapat dengan yakin menerapkan alat ini di lingkungan DevOps Anda sendiri.
Lab mandiri ini merupakan bagian dari Quest Kubernetes in the Google Cloud, Cloud Architecture, dan DevOps Essentials. Quest adalah serangkaian lab terkait yang membentuk jalur pembelajaran. Dengan menyelesaikan Quest, Anda mendapatkan badge sebagai pengakuan atas pencapaian Anda. Anda dapat menunjukkan satu atau beberapa badge kepada orang lain secara publik dan menautkannya di resume online atau akun media sosial Anda. Daftarkan diri Anda dalam Quest apa pun yang berisi lab ini dan segera dapatkan kredit penyelesaian. Lihat Katalog Google Cloud Skills Boost untuk menemukan semua Quest yang tersedia.
Lanjutkan Quest Anda dengan Memahami Node Kubernetes, atau lihat lab Google Cloud Skills Boost ini:
...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 pada 20 September 2023
Lab Terakhir Diuji pada 20 September 2022
Hak cipta 2025 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.
Konten ini tidak tersedia untuk saat ini
Kami akan memberi tahu Anda melalui email saat konten tersedia
Bagus!
Kami akan menghubungi Anda melalui email saat konten tersedia
One lab at a time
Confirm to end all existing labs and start this one