Dapatkan akses ke 700+ lab dan kursus

Mengelola Deployment Menggunakan Kubernetes Engine

Lab 1 jam universal_currency_alt 5 Kredit show_chart Menengah
info Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Dapatkan akses ke 700+ lab dan kursus

GSP053

Logo lab mandiri Google Cloud

Ringkasan

Praktik DevOps umumnya memanfaatkan beberapa deployment untuk mengelola berbagai skenario deployment aplikasi seperti "Deployment berkelanjutan", "Blue-Green deployment," "Deployment canary", dan lain-lain. Lab ini mengajari Anda cara menskalakan dan mengelola container agar Anda dapat menyelesaikan skenario umum yang menggunakan beberapa deployment heterogen.

Tujuan

Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:

  • Menggunakan alat kubectl
  • Membuat file yaml deployment
  • Meluncurkan, mengupdate, dan menskalakan deployment
  • Mengupdate deployment dan mempelajari gaya deployment

Prasyarat

Untuk memaksimalkan pembelajaran lab ini, sebaiknya Anda:

  • Telah menyelesaikan lab Google Cloud Skills Boost berikut:
  • Memiliki keahlian Administrasi Sistem Linux.
  • Memahami teori DevOps, konsep deployment berkelanjutan.

Pengantar deployment

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 hanya mencakup lingkungan atau region tunggal:

  • Keterbatasan resource: Pada lingkungan tunggal, khususnya lingkungan lokal, Anda mungkin tidak memiliki resource komputasi, jaringan, dan penyimpanan yang diperlukan untuk memenuhi kebutuhan produksi.
  • Keterbatasan jangkauan geografis: Deployment pada lingkungan tunggal mengharuskan pengguna yang secara geografis saling terpisah jauh mengakses satu deployment. Traffic mereka mungkin berkeliling dunia sebelum mencapai suatu lokasi sentral.
  • Keterbatasan ketersediaan: Pola traffic dengan skala web mengharuskan aplikasi selalu fault-tolerant dan tangguh.
  • Ketergantungan pada vendor: Abstraksi platform dan infrastruktur tingkat vendor dapat mencegah Anda melakukan porting aplikasi.
  • Resource yang tidak fleksibel: Resource Anda mungkin dibatasi pada serangkaian penawaran komputasi, penyimpanan, atau jaringan tertentu.

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:

  • deployment multi-cloud
  • fronting data lokal
  • proses continuous integration/continuous delivery (CI/CD)

Latihan berikut mempraktikkan beberapa kasus penggunaan deployment heterogen yang umum, beserta pendekatan yang dirancang dengan baik menggunakan Kubernetes dan resource infrastruktur lain untuk menyelesaikannya.

Penyiapan dan persyaratan

Sebelum mengklik tombol Start 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 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:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.

Cara memulai lab dan login ke Google Cloud Console

  1. 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:

    • Tombol Open Google Cloud console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. 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.
  3. 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.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

    {{{user_0.password | "Password"}}}

    Anda juga dapat menemukan Password di panel Lab Details.

  6. 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.
  7. 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 mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search. Ikon Navigation menu dan kolom Search

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.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas Konsol Google Cloud.

  2. Klik jendela berikut:

    • Lanjutkan melalui jendela informasi Cloud Shell.
    • Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.

Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:

Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}

gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Untuk menetapkan akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project

Output:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.

Menetapkan zona

Tetapkan zona Google Cloud kerja dengan menjalankan perintah berikut, yang mengganti zona lokal sebagai :

gcloud config set compute/zone {{{ project_0.default_zone | ZONE }}}

Mendapatkan kode contoh untuk lab ini

  1. Dapatkan kode contoh untuk membuat serta menjalankan container dan deployment dari bucket lab:
gcloud storage cp -r gs://spls/gsp053/kubernetes . cd kubernetes
  1. Buat sebuah cluster yang berisi 3 node (proses ini perlu waktu beberapa menit):
gcloud container clusters create bootcamp \ --machine-type e2-small \ --num-nodes 3 \ --scopes "https://www.googleapis.com/auth/projecthosting,storage-rw"

Tugas 1. Mempelajari objek deployment

Untuk memulai, lihat objek deployment.

  1. Perintah explain di kubectl dapat memberi tahu kita tentang objek deployment:
kubectl explain deployment
  1. Anda juga dapat melihat semua kolomnya menggunakan opsi --recursive:
kubectl explain deployment --recursive
  1. Anda dapat menggunakan perintah "explain" selama menjalankan lab ini untuk memahami struktur sebuah objek deployment dan kegunaan setiap kolomnya:
kubectl explain deployment.metadata.name

Tugas 2. Membuat deployment

  1. Buat deployment fortune-app. Periksa file konfigurasi deployment:
cat deployments/fortune-app-blue.yaml

Output:

# orchestrate-with-kubernetes/kubernetes/deployments/fortune-app-blue.yaml apiVersion: apps/v1 kind: Deployment metadata: name: fortune-app-blue spec: replicas: 3 selector: matchLabels: app: fortune-app template: metadata: labels: app: fortune-app track: stable version: "1.0.0" spec: containers: - name: fortune-app # The new, centralized image path image: "us-central1-docker.pkg.dev/qwiklabs-resources/spl-lab-apps/fortune-service:1.0.0" ports: - name: http containerPort: 8080 ...

Perhatikan pembuatan tiga replika dan penggunaan container fortune-service versi 1.0.0 oleh deployment tersebut.

  1. Lanjutkan dan buat objek deployment menggunakan kubectl create:
kubectl create -f deployments/fortune-app-blue.yaml
  1. Setelah membuat deployment, Anda dapat memverifikasi bahwa objek tersebut berhasil dibuat.
kubectl get deployments
  1. Setelah deployment dibuat, Kubernetes akan membuat ReplicaSet untuk deployment tersebut. Anda dapat memverifikasi bahwa ReplicaSet telah dibuat untuk deployment tersebut:
kubectl get replicasets

Anda akan melihat ReplicaSet dengan nama seperti fortune-app-blue-xxxxxxx

  1. Lihat Pod yang sudah dibuat sebagai bagian dari deployment.
kubectl get pods
  1. Sekarang, buat layanan untuk mengekspos deployment fortune-app secara eksternal.
kubectl create -f services/fortune-app.yaml
  1. Berinteraksilah dengan fortune-app dengan mengambil IP eksternalnya, lalu melakukan curl ke endpoint /version:
kubectl get services fortune-app Catatan: Pengisian kolom External-IP untuk layanan Anda mungkin perlu waktu beberapa detik. Hal ini wajar. Cukup jalankan kembali perintah di atas setiap beberapa detik hingga kolom terisi. curl http://<EXTERNAL-IP>/version

Anda akan mendapatkan respons JSON yang menunjukkan {"version":"1.0.0"}.

  1. Anda juga dapat menggunakan fitur pembuatan template output kubectl untuk menggunakan curl sebagai baris tunggal:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

Menguji tugas yang sudah selesai

Klik Periksa progres saya di bawah untuk memeriksa progres lab Anda. Jika Anda berhasil membuat cluster Kubernetes serta deployment dan layanan fortune-app, skor penilaian akan terlihat.

Membuat cluster Kubernetes dan deployment (fortune-app)

Menskalakan deployment

Setelah membuat deployment, Anda dapat menskalakannya. Lakukan hal ini dengan mengubah kolom spec.replicas.

  1. Kolom replicas dapat diubah dengan mudah menggunakan perintah kubectl scale:
kubectl scale deployment fortune-app-blue --replicas=5 Catatan: Perlu waktu sekitar satu menit atau lebih untuk memulai semua pod baru ini.
  1. Pastikan bahwa sekarang ada 5 Pod fortune-app-blue yang berjalan:
kubectl get pods | grep fortune-app-blue | wc -l
  1. Sekarang, turunkan skala aplikasi:
kubectl scale deployment fortune-app-blue --replicas=3
  1. Sekali lagi, pastikan jumlah Pod sudah benar:
kubectl get pods | grep fortune-app-blue | wc -l

Anda telah mempelajari deployment Kubernetes serta cara mengelola dan menskalakan kumpulan Pod.

Tugas 3. Melakukan update berkelanjutan

Deployment mendukung perubahan image ke versi baru melalui mekanisme update berkelanjutan.

Memicu update berkelanjutan

  1. Untuk memicu update berkelanjutan, Anda cukup menerapkan konfigurasi deployment "green". Kubernetes cukup cerdas untuk melihat deployment yang ada (fortune-app-blue) dan akan "meluncurkan" perubahan dari file baru ke deployment tersebut.
kubectl edit deployment fortune-app-blue
  1. Di editor, temukan baris image dan ubah tag versi dari 1.0.0 menjadi 2.0.0. Anda dapat mengedit file dengan menekan i di keyboard untuk masuk ke "mode penyisipan".
  • Pertama, ubah tag image:

    • Temukan baris ini: image: "us-central1-docker.pkg.dev/qwiklabs-resources/spl-lab-apps/fortune-service:1.0.0"
    • Lalu ubah menjadi: image: "us-central1-docker.pkg.dev/qwiklabs-resources/spl-lab-apps/fortune-service:2.0.0"
  • Selanjutnya, ubah variabel lingkungan:

    • Temukan bagian env dan variabel APP_VERSION.
    • Ubah value: "1.0.0" menjadi value: "2.0.0"
  1. Simpan dan tutup editor. Anda dapat melakukannya dengan menekan Esc, lalu mengetik :wq dan menekan Enter. Tindakan ini akan memicu update berkelanjutan pada deployment yang benar dan mencatat historinya dengan benar. Tindakan ini akan memicu update berkelanjutan pada deployment yang benar dan mencatat historinya dengan benar.

  2. Lihat ReplicaSet baru yang dibuat Kubernetes:

kubectl get replicaset
  1. Anda juga dapat melihat entri baru di histori peluncuran:
kubectl rollout history deployment/fortune-app-blue

Menjeda update berkelanjutan

  1. Jalankan perintah berikut untuk menjeda peluncuran:
kubectl rollout pause deployment/fortune-app-blue
  1. Verifikasi status peluncuran saat ini:
kubectl rollout status deployment/fortune-app-blue Catatan: Perintah status mungkin langsung melaporkan "deployment "fortune-app-blue" successfully rolled out". Hal ini wajar dan menunjukkan bahwa perintah jeda itu sendiri berhasil. Namun, tidak berarti update versi sudah selesai.
  1. Periksa versi setiap pod. Anda akan melihat campuran pod 1.0.0 dan 2.0.0, yang mengonfirmasi bahwa peluncuran dihentikan di tengah jalan.
for p in $(kubectl get pods -l app=fortune-app -o=jsonpath='{.items[*].metadata.name}'); do echo $p && curl -s http://$(kubectl get pod $p -o=jsonpath='{.status.podIP}')/version; echo; done
  1. Tekan CTRL+C untuk menghentikan loop.

Melanjutkan update berkelanjutan

  1. Lanjutkan peluncuran menggunakan perintah resume:
kubectl rollout resume deployment/fortune-app-blue
  1. Setelah peluncuran selesai, Anda akan melihat hasil berikut saat menjalankan perintah status:
kubectl rollout status deployment/fortune-app-blue

Melakukan roll back pada update

Anggaplah ada bug yang terdeteksi dalam versi baru Anda.

  1. Gunakan perintah rollout untuk melakukan rollback ke versi sebelumnya:
kubectl rollout undo deployment/fortune-app-blue Catatan: penyelesaian rollback mungkin perlu waktu beberapa saat.
  1. Pastikan semua Pod telah di-rollback ke versi 1.0.0:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

Bagus. Anda telah mempelajari cara melakukan update berkelanjutan untuk deployment Kubernetes.

Tugas 4. Deployment canary

Jika Anda ingin menguji deployment baru dalam fase produksi dengan sejumlah kecil pengguna, gunakan deployment canary.

Membuat deployment canary

  1. Pertama, buat deployment canary baru untuk versi baru menggunakan file fortune-app-canary.yaml:
cat deployments/fortune-app-canary.yaml
  1. Sekarang buat deployment canary:
kubectl create -f deployments/fortune-app-canary.yaml
  1. Setelah deployment canary dibuat, Anda akan memiliki dua deployment. Verifikasi dengan perintah ini:
kubectl get deployments

Layanan fortune-app memiliki pemilih untuk app: fortune-app, yang akan cocok dengan pod di kedua deployment, yaitu fortune-app-blue (prod) dan fortune-app-canary.

Memverifikasi deployment canary

  1. Anda dapat memverifikasi versi yang dijalankan dengan membuat permintaan ke layanan.
for i in {1..10}; do curl -s http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version; echo; done
  1. Jalankan perintah ini beberapa kali dan Anda akan melihat bahwa sebagian besar permintaan dilayani oleh versi 1.0.0 dan sebagian kecil dilayani oleh versi 2.0.0.

Menguji tugas yang sudah selesai

Klik Periksa progres saya di bawah untuk memeriksa progres lab Anda. Jika berhasil membuat Deployment canary, Anda akan melihat skor penilaian.

Deployment Canary

Tugas 5. Blue-green deployment

Untuk menerapkan blue-green deployment, Anda akan membuat dua deployment terpisah dan mengalihkan traffic di antara keduanya dengan mengubah pemilih layanan.

Layanan

  1. Pertama, ubah layanan agar menarget hanya versi "blue" (1.0.0).
kubectl apply -f services/fortune-app-blue-service.yaml

Melakukan update menggunakan Blue-Green deployment

  1. Sekarang, buat deployment "green" baru untuk versi 2.0.0.
kubectl create -f deployments/fortune-app-green.yaml
  1. Setelah deployment "green" dimulai, pastikan versi saat ini yang dijalankan masih 1.0.0.
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version
  1. Sekarang, ubah layanan agar menarget versi "green" baru:
kubectl apply -f services/fortune-app-green-service.yaml
  1. Setelah layanan diubah, deployment "green" akan langsung digunakan. Sekarang, Anda dapat memverifikasi bahwa versi 2.0.0 selalu dijalankan:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

Rollback Blue-Green

  1. Untuk melakukan roll back, cukup terapkan kembali manifes layanan untuk deployment "blue":
kubectl apply -f services/fortune-app-blue-service.yaml
  1. Setelah layanan diubah, rollback akan berhasil. Pastikan versi 1.0.0 kini digunakan:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

Selesai. Anda telah mempelajari blue-green deployment dan cara men-deploy update ke beberapa aplikasi yang perlu beralih versi sekaligus.

Blue-green deployment

Selamat.

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.

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 pada 18 Agustus 2025

Lab terakhir diuji pada 18 Agustus 2025

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.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

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

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.