
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 and deployments (Auth, Hello, and Frontend)
/ 50
Canary Deployment
/ 50
Praktik DevOps umumnya memanfaatkan beberapa deployment untuk mengelola berbagai skenario deployment aplikasi seperti "Deployment berkelanjutan", "Blue-Green deployment," "Deployment canary", dan banyak lagi. Lab ini mengajarkan Anda cara menskalakan dan mengelola container agar Anda dapat menyelesaikan skenario umum yang menggunakan beberapa deployment heterogen.
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
kubectl
yaml
deploymentUntuk memaksimalkan pembelajaran Anda, berikut adalah rekomendasi untuk lab ini:
Pada deployment heterogen, biasanya dua atau beberapa region atau lingkungan infrastruktur yang berbeda dihubungkan untuk memenuhi kebutuhan teknis atau operasional tertentu. Deployment heterogen disebut "hybrid", "multi-cloud", atau "publik-pribadi", tergantung spesifikasi deployment tersebut.
Untuk lab ini, deployment heterogen mencakup deployment yang meliputi region dengan satu lingkungan cloud, beberapa lingkungan cloud publik (multi-cloud), atau kombinasi antara lingkungan lokal dan cloud publik (hybrid atau publik-pribadi).
Berbagai tantangan bisnis dan teknis dapat timbul dalam deployment yang dibatasi pada lingkungan atau region tunggal:
Deployment heterogen dapat membantu mengatasi tantangan ini, tetapi harus didesain melalui proses dan prosedur yang terprogram dan determenistik. Prosedur deployment satu kali (one-off) atau ad-hoc dapat menyebabkan deployment atau proses menjadi rapuh dan rawan gagal. Proses ad-hoc dapat kehilangan data atau traffic. Proses deployment yang baik harus dapat diulang dan menggunakan pendekatan yang telah terbukti dalam mengelola penyediaan, konfigurasi, dan pemeliharaan.
Tiga skenario yang umum untuk deployment heterogen adalah:
Latihan berikut mempraktikkan beberapa kasus penggunaan deployment heterogen yang umum, beserta pendekatan yang dirancang dengan baik menggunakan Kubernetes dan resource infrastruktur lainnya yang dapat membantu pengguna menyelesaikannya.
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:
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:
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.
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.
Klik Authorize.
Output Anda sekarang akan terlihat seperti ini:
Output:
Output:
Contoh output:
gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Tetapkan zona Google Cloud kerja Anda dengan menjalankan perintah berikut, yang mengganti zona lokal sebagai
Untuk memulai, mari kita lihat objek deployment.
explain
di kubectl
dapat memberi tahu kita tentang objek deployment:--recursive
:deployments/auth.yaml
:image
di bagian container deployment menjadi berikut:auth.yaml
: tekan <Esc>
, lalu ketik:<Enter>
. Sekarang, buat sebuah deployment sederhana. Periksa file konfigurasi deployment:Output:
Perhatikan cara deployment membuat satu replika dan menggunakan container auth versi 1.0.0.
Saat Anda menjalankan perintah kubectl create
untuk membuat deployment auth, sebuah pod yang sesuai dengan data dalam manifes deployment akan dibuat. Ini berarti Anda dapat menskalakan jumlah Pod dengan mengubah angka yang ditentukan dalam kolom replicas
.
kubectl create
:ReplicaSet
untuk deployment tersebut. Anda dapat memverifikasi bahwa ReplicaSet
telah dibuat untuk deployment:Anda akan melihat ReplicaSet
dengan nama seperti auth-xxxxxxx
ReplicaSet
dibuat:Sekarang saatnya membuat layanan untuk deployment auth. Anda sudah melihat file manifes layanan, jadi detailnya tidak akan dibagikan di sini.
kubectl create
untuk membuat layanan auth:hello
:frontend
:ConfigMap
untuk frontend.Anda akan mendapatkan respons balik dari hello.
kubectl
untuk menggunakan curl sebagai baris tunggal:Klik Check my progress di bawah untuk memeriksa progres lab Anda. Jika berhasil membuat cluster Kubernetes serta deployment Auth, Hello, dan Frontend, Anda akan melihat skor penilaian.
Setelah membuat deployment, Anda dapat menskalakannya. Lakukan hal ini dengan mengupdate kolom spec.replicas
.
kubectl explain
lagi:kubectl scale
:Setelah deployment diupdate, Kubernetes akan otomatis mengupdate ReplicaSet
yang terkait dan memulai Pod baru sehingga jumlah total Pod sama dengan 5.
hello
yang berjalan:Anda telah mempelajari deployment Kubernetes serta cara mengelola dan menskalakan kumpulan Pod.
Deployment mendukung update image ke versi baru melalui mekanisme update berkelanjutan. Setelah diupdate dengan versi baru, deployment akan membuat ReplicaSet
baru dan perlahan-lahan meningkatkan jumlah replika di ReplicaSet
baru sembari menurunkan jumlah replika di ReplicaSet
lama.
image
di bagian container deployment menjadi berikut:Deployment yang diupdate akan disimpan ke cluster Anda dan Kubernetes akan memulai update berkelanjutan.
ReplicaSet
baru yang dibuat oleh Kubernetes:Jika ada masalah yang terdeteksi saat menjalankan peluncuran, jeda proses untuk menghentikan update.
Peluncuran dijeda yang berarti sebagian pod sudah dalam versi baru, tetapi sebagian lagi masih dalam versi lama.
resume
:status
:Output:
Anggaplah ada bug yang terdeteksi dalam versi baru Anda. Karena versi baru diduga bermasalah, semua pengguna yang tersambung ke Pod baru akan mengalami masalah tersebut.
Anda harus melakukan rollback ke versi sebelumnya agar dapat melakukan penyelidikan dan merilis versi yang telah diperbaiki dengan tepat.
rollout
untuk melakukan rollback ke versi sebelumnya:Oke. Anda telah mempelajari cara melakukan update berkelanjutan untuk deployment Kubernetes dan cara mengupdate aplikasi tanpa periode nonaktif.
Jika Anda ingin menguji deployment baru dalam fase produksi dengan sejumlah kecil pengguna, gunakan deployment canary. Dengan canary deployment, Anda dapat merilis perubahan ke sejumlah kecil pengguna untuk memitigasi risiko yang terkait dengan rilis baru.
Deployment canary terdiri dari sebuah deployment yang terpisah dari versi baru Anda dan sebuah layanan yang menargetkan baik deployment normal dan stabil maupun deployment canary.
Output:
hello
dan hello-canary
. Verifikasi dengan perintah kubectl
ini:Pada service hello
, pemilih app:hello
akan mencocokkan pod baik di deployment produksi maupun deployment canary. Namun, karena deployment canary memiliki jumlah pod yang lebih sedikit, lebih sedikit pengguna yang bisa melihatnya.
hello
yang dilayani dengan membuat permintaan:Klik Check my progress di bawah untuk memeriksa progres lab Anda. Jika berhasil membuat Deployment canary, Anda akan melihat skor penilaian.
Dalam lab ini, tiap permintaan yang dikirim ke layanan Nginx berpeluang dilayani oleh deployment canary. Namun, bagaimana jika Anda ingin memastikan bahwa pengguna tidak dilayani oleh deployment canary? Salah satu kasus penggunaannya adalah saat UI untuk sebuah aplikasi diubah, dan Anda tidak ingin membuat pengguna bingung. Pada kasus semacam ini, Anda ingin pengguna "setia" pada satu deployment saja.
Anda dapat melakukannya dengan membuat layanan yang memiliki afinitas sesi. Dengan cara ini, pengguna yang sama akan selalu dilayani dari versi yang sama. Pada contoh di bawah, service-nya sama dengan sebelumnya, tetapi kolom baru sessionAffinity
telah ditambahkan dan ditetapkan ke ClientIP
. Permintaan dari semua klien dengan alamat IP yang sama akan dikirimkan ke versi aplikasi hello
yang sama.
Mengingat sulitnya menyiapkan lingkungan untuk menguji hal ini, Anda tidak perlu menyiapkannya di sini. Namun, Anda mungkin perlu menggunakan sessionAffinity
untuk deployment canary dalam fase produksi.
Meluncurkan update merupakan langkah ideal karena hal itu memungkinkan Anda men-deploy aplikasi perlahan-lahan dengan overhead, dampak performa, dan periode nonaktif yang minimal. Ada kalanya Anda akan mendapatkan keuntungan dengan mengubah load balancer agar menargetkan versi baru hanya setelah update di-deploy sepenuhnya. Pada kasus semacam ini, blue-green deployment merupakan pilihan tepat.
Kubernetes mencapai keadaan ini dengan membuat dua deployment terpisah; satu untuk versi "blue" lama, dan satu lagi untuk versi "green" baru. Gunakan hello
deployment yang ada untuk versi "blue". Deployment ini akan diakses melalui service yang berfungsi sebagai router. Setelah versi "green" baru aktif dan operasional, Anda harus beralih untuk menggunakan versi tersebut dengan mengupdate service.
Gunakan layanan hello yang ada, tetapi lakukan update sehingga layanan memiliki pemilih app:hello
, versi: 1.0.0
. Pemilih ini akan cocok dengan "blue" deployment yang ada. Namun, pemilih tersebut tidak akan cocok dengan "green" deployment karena akan menggunakan versi berbeda.
resource service/hello is missing
karena hal ini di-patch otomatis.Agar dapat mendukung gaya blue-green deployment, Anda akan membuat "green" deployment baru untuk versi barunya. Green deployment ini akan mengupdate label versi dan jalur image.
Jika perlu, Anda dapat melakukan rollback ke versi lama dengan cara yang sama.
Berhasil. Anda telah mempelajari blue-green deployment dan juga cara men-deploy update ke beberapa aplikasi yang perlu beralih versi sekaligus.
Anda telah berlatih cara menggunakan alat command line kubectl
dan berbagai gaya konfigurasi deployment yang disiapkan dalam file YAML untuk meluncurkan, mengupdate, dan menskalakan deployment Anda. Berbekal praktik dasar ini, Anda diharapkan dapat dengan yakin menerapkan keterampilan tersebut dalam praktik DevOps Anda sendiri.
Solusi DevOps dan Panduan DevOps di dokumentasi Google Cloud.
Di situs Kubernetes, gabung ke Komunitas Kubernetes.
...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 2 April 2024
Lab terakhir diuji pada 14 Agustus 2023
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