arrow_back

Mengelola Deployment Menggunakan Kubernetes Engine

Login Gabung
Uji dan bagikan pengetahuan Anda kepada komunitas kami.
done
Dapatkan akses ke lebih dari 700 lab praktik, badge keahlian, 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.
Uji dan bagikan pengetahuan Anda kepada komunitas kami.
done
Dapatkan akses ke lebih dari 700 lab praktik, badge keahlian, dan kursus

GSP053

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 banyak lagi. Lab ini mengajarkan 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 Anda, berikut adalah rekomendasi untuk lab ini:

  • Anda telah mengikuti lab Google Cloud Skills Boost berikut:
  • Anda memiliki keahlian dalam hal Administrasi Sistem Linux.
  • Anda 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 dibatasi pada lingkungan atau region tunggal:

  • Keterbatasan resource: Pada lingkungan tunggal, khususnya lingkungan lokal, Anda mungkin tidak memiliki resource komputasi, networking, dan penyimpanan yang diperlukan untuk memenuhi kebutuhan produksi.
  • Keterbatasan jangkauan geografis: Deployment pada lingkungan tunggal mengharuskan pengguna yang secara geografis terpisah jauh satu sama lain untuk mengakses satu deployment. Traffic mereka mungkin berkeliling dunia sebelum mencapai sebuah lokasi sentral.
  • Keterbatasan ketersediaan: Pola traffic dengan skala web mengharuskan aplikasi untuk selalu fault-tolerant dan tangguh.
  • Ketergantungan pada vendor: Abstraksi platform dan infrastruktur tingkat vendor dapat membuat Anda kesulitan mem-porting aplikasi.
  • Resource yang tidak fleksibel: Resource Anda mungkin terbatas 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 lainnya yang dapat membantu pengguna menyelesaikannya.

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).
Catatan: Gunakan jendela Samaran 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: Jika Anda sudah memiliki project atau akun pribadi Google Cloud, jangan menggunakannya untuk lab ini agar terhindar dari tagihan ekstra pada akun Anda.

Cara memulai lab dan login ke Google Cloud Console

  1. 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
  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 melihat menu dengan daftar produk dan layanan Google Cloud, klik Navigation menu di kiri atas. Ikon Navigation menu

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.

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

Project Cloud Platform Anda dalam sesi ini disetel ke YOUR_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.

  2. Output Anda sekarang akan terlihat seperti ini:

Output:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net Untuk menyetel akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar project ID dengan perintah ini:
gcloud config list project

Output:

[core] project = <project_ID>

Contoh output:

[core] project = qwiklabs-gcp-44776a13dea667a6 Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.

Menetapkan zona

Tetapkan zona Google Cloud kerja Anda 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:
gsutil -m cp -r gs://spls/gsp053/orchestrate-with-kubernetes . cd orchestrate-with-kubernetes/kubernetes
  1. Buatlah sebuah cluster yang terdiri dari 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, mari kita lihat objek deployment.

  1. Perintah explain di kubectl dapat memberi tahu kita tentang objek deployment:
kubectl explain deployment
  1. Anda juga bisa 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. Update file konfigurasi deployments/auth.yaml:
vi deployments/auth.yaml
  1. Mulai editor:
i
  1. Ubah image di bagian container deployment menjadi berikut:
... containers: - name: auth image: "kelseyhightower/auth:1.0.0" ...
  1. Simpan file auth.yaml: tekan <Esc>, lalu ketik:
:wq
  1. Tekan <Enter>. Sekarang, buat sebuah deployment sederhana. Periksa file konfigurasi deployment:
cat deployments/auth.yaml

Output:

apiVersion: apps/v1 kind: Deployment metadata: name: auth spec: replicas: 1 selector: matchLabels: app: auth template: metadata: labels: app: auth track: stable spec: containers: - name: auth image: "kelseyhightower/auth:1.0.0" ports: - name: http containerPort: 80 - name: health containerPort: 81 ...

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.

  1. Lanjutkan dan buat objek deployment menggunakan kubectl create:
kubectl create -f deployments/auth.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:
kubectl get replicasets

Anda akan melihat ReplicaSet dengan nama seperti auth-xxxxxxx

  1. Lihat Pod yang sudah dibuat sebagai bagian dari deployment. Pod tunggal ini dibuat oleh Kubernetes saat ReplicaSet dibuat:
kubectl get pods

Sekarang saatnya membuat layanan untuk deployment auth. Anda sudah melihat file manifes layanan, jadi detailnya tidak akan dibagikan di sini.

  1. Gunakan perintah kubectl create untuk membuat layanan auth:
kubectl create -f services/auth.yaml
  1. Sekarang, lakukan langkah yang sama untuk membuat dan mengekspos deployment hello:
kubectl create -f deployments/hello.yaml kubectl create -f services/hello.yaml
  1. Lakukan sekali lagi untuk membuat dan mengekspos deployment frontend:
kubectl create secret generic tls-certs --from-file tls/ kubectl create configmap nginx-frontend-conf --from-file=nginx/frontend.conf kubectl create -f deployments/frontend.yaml kubectl create -f services/frontend.yaml Catatan: Anda telah membuat ConfigMap untuk frontend.
  1. Lakukan interaksi terhadap frontend dengan mengambil IP eksternalnya, lalu lakukan curl ke frontend tersebut:
kubectl get services frontend Catatan: Mungkin perlu waktu beberapa detik hingga kolom External-IP untuk layanan Anda terisi. Hal ini wajar. Cukup jalankan kembali perintah di atas setiap beberapa detik hingga kolom terisi. curl -ks https://<EXTERNAL-IP>

Anda akan mendapatkan respons balik dari hello.

  1. Anda juga dapat menggunakan output yang menjadi template fitur kubectl untuk menggunakan curl sebagai baris tunggal:
curl -ks https://`kubectl get svc frontend -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`

Menguji tugas yang sudah selesai

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.

Membuat cluster Kubernetes dan deployment (Auth, Hello, dan Frontend)

Menskalakan deployment

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

  1. Lihat penjelasan kolom ini menggunakan perintah kubectl explain lagi:
kubectl explain deployment.spec.replicas
  1. Kolom replicas dapat diupdate dengan mudah menggunakan perintah kubectl scale:
kubectl scale deployment hello --replicas=5 Catatan: Perlu waktu sekitar satu menit atau lebih untuk memulai semua pod baru ini.

Setelah deployment diupdate, Kubernetes akan otomatis mengupdate ReplicaSet yang terkait dan memulai Pod baru sehingga jumlah total Pod sama dengan 5.

  1. Pastikan bahwa sekarang ada 5 Pod hello yang berjalan:
kubectl get pods | grep hello- | wc -l
  1. Sekarang, turunkan skala aplikasi:
kubectl scale deployment hello --replicas=3
  1. Sekali lagi, pastikan jumlah Pod Anda sudah benar:
kubectl get pods | grep hello- | wc -l

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

Tugas 3. Update berkelanjutan

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.

Diagram deployment antara kumpulan replika

Memicu update berkelanjutan

  1. Untuk mengupdate deployment, jalankan perintah berikut:
kubectl edit deployment hello
  1. Ubah image di bagian container deployment menjadi berikut:
... containers: image: kelseyhightower/hello:2.0.0 ...
  1. Simpan lalu keluar.

Deployment yang diupdate akan disimpan ke cluster Anda dan Kubernetes akan memulai update berkelanjutan.

  1. Lihat ReplicaSet baru yang dibuat oleh Kubernetes:
kubectl get replicaset
  1. Anda juga dapat melihat entri baru di histori peluncuran:
kubectl rollout history deployment/hello

Menjeda update berkelanjutan

Jika ada masalah yang terdeteksi saat menjalankan peluncuran, jeda proses untuk menghentikan update.

  1. Jalankan perintah berikut untuk menjeda peluncuran:
kubectl rollout pause deployment/hello
  1. Verifikasi status terakhir peluncuran:
kubectl rollout status deployment/hello
  1. Anda juga dapat memverifikasinya langsung di Pod:
kubectl get pods -o jsonpath --template='{range .items[*]}{.metadata.name}{"\t"}{"\t"}{.spec.containers[0].image}{"\n"}{end}'

Melanjutkan update berkelanjutan

Peluncuran dijeda yang berarti sebagian pod sudah dalam versi baru, tetapi sebagian lagi masih dalam versi lama.

  1. Lanjutkan peluncuran ini menggunakan perintah resume:
kubectl rollout resume deployment/hello
  1. Setelah peluncuran selesai, Anda akan melihat hasil berikut saat menjalankan perintah status:
kubectl rollout status deployment/hello

Output:

deployment "hello" successfully rolled out

Melakukan roll back pada update

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.

  1. Gunakan perintah rollout untuk melakukan rollback ke versi sebelumnya:
kubectl rollout undo deployment/hello
  1. Verifikasi rollback dalam histori:
kubectl rollout history deployment/hello
  1. Terakhir, pastikan semua Pod telah di-rollback ke versi sebelumnya:
kubectl get pods -o jsonpath --template='{range .items[*]}{.metadata.name}{"\t"}{"\t"}{.spec.containers[0].image}{"\n"}{end}'

Oke. Anda telah mempelajari cara melakukan update berkelanjutan untuk deployment Kubernetes dan cara mengupdate aplikasi tanpa periode nonaktif.

Tugas 4. Deployment canary

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.

Membuat deployment canary

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.

Diagram deployment canary

  1. Pertama-tama, buat deployment canary baru untuk versi baru ini:
cat deployments/hello-canary.yaml

Output:

apiVersion: apps/v1 kind: Deployment metadata: name: hello-canary spec: replicas: 1 selector: matchLabels: app: hello template: metadata: labels: app: hello track: canary # Use ver 2.0.0 so it matches version on service selector version: 2.0.0 spec: containers: - name: hello image: kelseyhightower/hello:2.0.0 ports: - name: http containerPort: 80 - name: health containerPort: 81 ...
  1. Sekarang buatlah deployment canary:
kubectl create -f deployments/hello-canary.yaml
  1. Setelah deployment canary dibuat, Anda akan memiliki dua deployment, yaitu hello dan hello-canary. Verifikasi dengan perintah kubectl ini:
kubectl get deployments

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.

Memverifikasi deployment canary

  1. Anda dapat memverifikasi versi hello yang dilayani dengan membuat permintaan:
curl -ks https://`kubectl get svc frontend -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version
  1. Jalankan permintaan ini beberapa kali dan Anda akan melihat bahwa beberapa permintaan dilayani oleh hello 1.0.0 dan sebagian kecil (1/4 = 25%) dilayani oleh hello 2.0.0.

Menguji tugas yang sudah selesai

Klik Check my progress di bawah untuk memeriksa progres lab Anda. Jika berhasil membuat Deployment canary, Anda akan melihat skor penilaian.

Deployment Canary

Deployment canary pada fase produksi - afinitas sesi

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.

kind: Service apiVersion: v1 metadata: name: "hello" spec: sessionAffinity: ClientIP selector: app: "hello" ports: - protocol: "TCP" port: 80 targetPort: 80

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.

Tugas 5. Blue-green deployment

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.

Diagram blue-green deployment

Catatan: Kekurangan utama blue-green deployment adalah Anda harus memiliki resource setidaknya 2x lipat pada cluster yang diperlukan untuk menghosting aplikasi Anda. Pastikan Anda memiliki resource yang cukup di cluster Anda sebelum men-deploy kedua versi aplikasi sekaligus.

Layanan

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.

  • Pertama, update layanan:
kubectl apply -f services/hello-blue.yaml Catatan: Abaikan peringatan berbunyi resource service/hello is missing karena hal ini di-patch otomatis.

Melakukan update menggunakan Blue-Green deployment

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.

apiVersion: apps/v1 kind: Deployment metadata: name: hello-green spec: replicas: 3 selector: matchLabels: app: hello template: metadata: labels: app: hello track: stable version: 2.0.0 spec: containers: - name: hello image: kelseyhightower/hello:2.0.0 ports: - name: http containerPort: 80 - name: health containerPort: 81 resources: limits: cpu: 0.2 memory: 10Mi livenessProbe: httpGet: path: /healthz port: 81 scheme: HTTP initialDelaySeconds: 5 periodSeconds: 15 timeoutSeconds: 5 readinessProbe: httpGet: path: /readiness port: 81 scheme: HTTP initialDelaySeconds: 5 timeoutSeconds: 1
  1. Buat green deployment:
kubectl create -f deployments/hello-green.yaml
  1. Setelah green deployment siap dan dimulai dengan benar, pastikan versi 1.0.0 saat ini masih digunakan:
curl -ks https://`kubectl get svc frontend -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version
  1. Sekarang, update layanan agar menargetkan versi baru:
kubectl apply -f services/hello-green.yaml
  1. Setelah layanan diupdate, "green" deployment akan langsung digunakan. Sekarang Anda dapat memastikan bahwa versi baru akan selalu digunakan:
curl -ks https://`kubectl get svc frontend -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

Rollback Blue-Green

Jika perlu, Anda dapat melakukan rollback ke versi lama dengan cara yang sama.

  1. Selagi "blue" deployment masih berjalan, cukup update layanan kembali ke versi lamanya:
kubectl apply -f services/hello-blue.yaml
  1. Setelah layanan diupdate, rollback Anda akan berhasil. Sekali lagi, pastikan versi yang tepat digunakan:
curl -ks https://`kubectl get svc frontend -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

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

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 Anda. Berbekal praktik dasar ini, Anda diharapkan dapat dengan yakin menerapkan keterampilan tersebut dalam praktik DevOps Anda sendiri.

Langkah berikutnya/Pelajari lebih lanjut

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 2 April 2024

Lab terakhir diuji pada 14 Agustus 2023

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.

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