Petunjuk dan persyaratan penyiapan lab
Lindungi akun dan progres Anda. Selalu gunakan jendela browser pribadi dan kredensial lab untuk menjalankan lab ini.

Men-deploy, Menskalakan, dan Mengupdate Situs Anda di Google Kubernetes Engine

Lab 25 menit universal_currency_alt 1 Kredit show_chart Pengantar
info Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Konten ini belum dioptimalkan untuk perangkat seluler.
Untuk pengalaman terbaik, kunjungi kami dengan komputer desktop menggunakan link yang dikirim melalui email.

GSP663

Logo lab mandiri Google Cloud

Ringkasan

Menjalankan situs dan aplikasi itu tidak selalu mudah. Masalah terjadi ketika seharusnya tidak terjadi, server mengalami crash, peningkatan permintaan menyebabkan lebih banyak resource yang digunakan, dan membuat perubahan tanpa periode nonaktif dapat menjadi rumit dan membuat stres. Dengan Kubernetes, Anda dapat melakukan semua ini dan bahkan mengotomatiskan prosesnya.

Di lab ini, Anda akan berperan sebagai developer di perusahaan fiktif, Fancy Store, yang menjalankan situs e-commerce. Karena ada masalah terkait penskalaan dan pemadaman, Anda ditugaskan untuk men-deploy aplikasi Anda ke Google Kubernetes Engine (GKE).

Latihan di lab ini telah diurutkan untuk mencerminkan pengalaman developer cloud pada umumnya:

  1. Membuat cluster GKE
  2. Membuat container Docker
  3. Men-deploy container ke GKE
  4. Mengekspos container melalui layanan
  5. Menskalakan container ke beberapa replika
  6. Memodifikasi situs
  7. Meluncurkan versi baru tanpa periode nonaktif

Diagram arsitektur

Diagram arsitektur

Prasyarat

  • Sebaiknya Anda memiliki pemahaman dasar tentang Docker dan Kubernetes untuk memaksimalkan pemahaman Anda.

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 konfigurasi project dan zona default:
gcloud config set compute/zone {{{project_0.default_zone|lab zone}}}

Pelajari lebih lanjut di dokumentasi Region & Zona.

Tugas 1. Membuat cluster GKE

Anda memerlukan cluster Kubernetes untuk men-deploy situs Anda. Pertama, pastikan API yang tepat diaktifkan.

  1. Jalankan perintah berikut untuk membuat cluster GKE bernama fancy-cluster dengan 3 node:
gcloud container clusters create fancy-cluster --num-nodes 3 Catatan: Jika Anda mendapatkan error tentang region/zona yang tidak ditentukan, lihat bagian penyiapan lingkungan untuk memastikan Anda telah menetapkan zona komputasi default.

Proses pembuatan cluster akan memakan waktu beberapa menit.

  1. Sekarang jalankan perintah berikut dan lihat tiga instance worker VM cluster:
gcloud compute instances list

Output:

NAME: gke-fancy-cluster-default-pool-fb932da6-4sk6 ZONE: us-central1-f MACHINE_TYPE: e2-medium PREEMPTIBLE: INTERNAL_IP: 10.128.0.3 EXTERNAL_IP: 34.172.106.173 STATUS: RUNNING NAME: gke-fancy-cluster-default-pool-fb932da6-d6qc ZONE: us-central1-f MACHINE_TYPE: e2-medium PREEMPTIBLE: INTERNAL_IP: 10.128.0.4 EXTERNAL_IP: 34.133.99.176 STATUS: RUNNING NAME: gke-fancy-cluster-default-pool-fb932da6-ztnh ZONE: us-central1-f MACHINE_TYPE: e2-medium PREEMPTIBLE: INTERNAL_IP: 10.128.0.5 EXTERNAL_IP: 34.136.180.45 STATUS: RUNNING
  1. Temukan cluster Kubernetes dan informasi terkait di konsol.

  2. Klik Navigation menu (Ikon Navigation menu) > Kubernetes Engine > Clusters.

Anda akan melihat cluster Anda bernama fancy-cluster.

Klik Periksa progres saya untuk memverifikasi tujuan. Membuat cluster GKE

Tugas 2. Membuat clone repositori sumber

Karena ini adalah situs yang sudah ada, Anda hanya perlu meng-clone sumbernya, sehingga Anda dapat berfokus pada pembuatan image Docker dan deployment ke GKE.

  1. Jalankan perintah berikut untuk meng-clone repo git ke instance Cloud Shell Anda:
cd ~ git clone https://github.com/googlecodelabs/monolith-to-microservices.git
  1. Ubah ke direktori yang sesuai.

  2. Anda juga akan menginstal dependensi NodeJS agar dapat menguji aplikasi sebelum di-deploy:

cd ~/monolith-to-microservices ./setup.sh

Tunggu beberapa menit hingga skrip ini selesai berjalan.

  1. Pastikan Anda menjalankan Cloud Shell dengan npm versi terbaru:
nvm install --lts
  1. Pindah ke direktori yang sesuai dan uji aplikasi dengan menjalankan perintah berikut untuk memulai server web:
cd ~/monolith-to-microservices/monolith npm start

Output:

Monolith listening on port 8080!
  1. Anda dapat melihat pratinjau aplikasi dengan mengklik ikon pratinjau web dan memilih Preview on port 8080:

Preview on port 8080 disorot

Tindakan ini akan membuka jendela baru dan Anda dapat melihat Fancy Store kita beraksi.

Halaman Sambutan Fancy Store

Biarkan tab ini tetap terbuka, Anda akan kembali ke tab ini nanti di lab.

  1. Untuk menghentikan proses server web, tekan CTRL+C di Cloud Shell.

Tugas 3. Membuat container Docker dengan Cloud Build

Setelah file sumber Anda siap, saatnya untuk melakukan Dockerize pada aplikasi Anda.

Biasanya, Anda harus mengambil pendekatan dua langkah yang mencakup pembuatan container docker dan mendorongnya ke registry untuk menyimpan image agar dapat ditarik dari GKE. Cloud Build memungkinkan Anda membangun container Docker dan menempatkan image di Artifact Registry dengan satu perintah.

Google Cloud Build akan mengompresi file dari direktori dan memindahkannya ke bucket Google Cloud Storage. Proses build kemudian akan mengambil semua file dari bucket dan menggunakan Dockerfile untuk menjalankan proses build Docker. Karena Anda menentukan flag --tag dengan host sebagai gcr.io untuk image Docker, image Docker yang dihasilkan akan dikirim ke Artifact Registry.

  1. Pertama, untuk memastikan Cloud Build API diaktifkan, jalankan perintah berikut:
gcloud services enable cloudbuild.googleapis.com
  1. Jalankan perintah berikut untuk memulai proses build:
cd ~/monolith-to-microservices/monolith gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 .
  1. Proses ini akan memakan waktu beberapa menit.

Akan ada output di terminal yang mirip dengan berikut ini:

ID CREATE_TIME DURATION SOURCE IMAGES STATUS 1ae295d9-63cb-482c-959b-bc52e9644d53 2019-08-29T01:56:35+00:00 33S gs://_cloudbuild/source/1567043793.94-abfd382011724422bf49af1558b894aa.tgz gcr.io//monolith:1.0.0 SUCCESS
  1. Untuk melihat histori build atau memantau proses secara real time, klik Navigation menu, lalu scroll ke bawah ke bagian CI/CD, lalu klik Cloud Build > History. Di sini Anda dapat melihat daftar semua build sebelumnya.

  2. Klik nama build untuk melihat semua detail build tersebut, termasuk output log.

Opsional: Dari halaman Build details, klik Build summary > Execution details > Image name di bagian informasi build untuk melihat image container:

Halaman tab Execution Details dengan nama image yang disorot

Klik Periksa progres saya untuk memverifikasi tujuan. Membuat container Docker dengan Cloud Build

Tugas 4. Men-deploy container ke GKE

Setelah Anda membuat container untuk situs dan mendorong container ke Artifact Registry, sekarang saatnya men-deploy ke Kubernetes.

Untuk men-deploy dan mengelola aplikasi di cluster GKE, Anda harus berkomunikasi dengan sistem pengelolaan cluster Kubernetes. Anda biasanya melakukan ini dengan menggunakan alat command line kubectl.

Kubernetes merepresentasikan aplikasi sebagai Pod, yaitu unit yang merepresentasikan container (atau sekelompok container yang terhubung erat). Pod adalah unit terkecil yang dapat di-deploy di Kubernetes. Di lab ini, setiap Pod hanya berisi container monolit Anda.

Untuk men-deploy aplikasi Anda, buat resource Deployment. Deployment mengelola beberapa salinan aplikasi Anda, yang disebut replika, dan menjadwalkannya untuk berjalan di node individual dalam cluster Anda. Untuk lab ini, Deployment hanya akan menjalankan satu Pod aplikasi Anda. Deployment memastikan hal ini dengan membuat ReplicaSet. ReplicaSet bertanggung jawab untuk memastikan jumlah replika yang ditentukan selalu berjalan.

Perintah kubectl create deployment yang akan Anda gunakan selanjutnya akan menyebabkan Kubernetes membuat Deployment bernama monolith di cluster Anda dengan 1 replika.

  • Jalankan perintah berikut untuk men-deploy aplikasi Anda:
kubectl create deployment monolith --image=gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 Catatan: Sebagai praktik terbaik, sebaiknya gunakan file YAML dan sistem kontrol sumber seperti GitHub untuk menyimpan perubahan tersebut. Pelajari lebih lanjut resource ini dari dokumentasi Deployment.

Klik Periksa progres saya untuk memverifikasi tujuan. Men-deploy container ke GKE

Verifikasi deployment

  1. Pastikan Deployment berhasil dibuat:
kubectl get all

Jalankan kembali perintah hingga status pod Running.

Output:

NAME READY STATUS RESTARTS AGE pod/monolith-7d8bc7bf68-htm7z 1/1 Running 0 6m21s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.27.240.1 443/TCP 24h NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE deployment.apps/monolith 1 1 1 1 20m NAME DESIRED CURRENT READY AGE replicaset.apps/monolith-7d8bc7bf68 1 1 1 20m

Output ini menunjukkan beberapa hal:

  • Deployment, yang saat ini
  • ReplicaSet dengan jumlah pod yang diinginkan sebanyak 1
  • Pod yang sedang berjalan

Sepertinya semuanya berhasil dibuat.

Catatan: Anda juga dapat melihat deployment Kubernetes melalui Konsol dengan membuka Navigation menu > Kubernetes Engine > Workloads. Catatan: Jika Anda melihat error atau status yang tidak diharapkan, Anda dapat men-debug resource dengan perintah berikut untuk melihat informasi detail tentang error atau status tersebut:

kubectl describe pod monolith

kubectl describe pod/monolith-7d8bc7bf68-2bxts

kubectl describe deployment monolith

kubectl describe deployment.apps/monolith

Di bagian akhir output, Anda akan melihat daftar peristiwa yang menyebabkan error dan informasi mendetail tentang resource Anda.

Opsional: Anda juga dapat menjalankan perintah ke deployment Anda secara terpisah:

# Show pods kubectl get pods # Show deployments kubectl get deployments # Show replica sets kubectl get rs #You can also combine them kubectl get pods,deployments

Untuk melihat manfaat penuh Kubernetes, simulasikan crash server dengan menghapus pod dan lihat apa yang terjadi.

  1. Salin nama pod dari perintah sebelumnya, lalu gunakan saat Anda menjalankan perintah berikut untuk menghapusnya:
kubectl delete pod/<POD_NAME>

Anda dapat melihat penghapusan dari halaman Workloads.

  1. Klik nama workload (akan terjadi dengan cepat).

  2. Jika cukup cepat, Anda dapat menjalankan get all lagi, dan Anda akan melihat dua pod: satu menghentikan dan yang lainnya membuat atau menjalankan:

kubectl get all

Output:

NAME READY STATUS RESTARTS AGE pod/monolith-7d8bc7bf68-2bxts 1/1 Running 0 4s pod/monolith-7d8bc7bf68-htm7z 1/1 Terminating 0 9m35s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.27.240.1 443/TCP 24h NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE deployment.apps/monolith 1 1 1 1 24m NAME DESIRED CURRENT READY AGE replicaset.apps/monolith-7d8bc7bf68 1 1 1 24m

Apa penyebabnya? ReplicaSet melihat bahwa pod sedang dihentikan dan memicu pod baru untuk mempertahankan jumlah replika yang diinginkan. Nanti Anda akan melihat cara melakukan penyebaran skala untuk memastikan ada beberapa instance yang berjalan, sehingga jika salah satunya tidak berfungsi, pengguna tidak akan mengalami periode nonaktif.

Tugas 5. Mengekspos deployment GKE

Anda telah men-deploy aplikasi di GKE, tetapi tidak ada cara untuk mengaksesnya di luar cluster. Secara default, container yang Anda jalankan di GKE tidak dapat diakses dari Internet karena tidak memiliki alamat IP eksternal. Anda harus mengekspos aplikasi Anda secara eksplisit ke traffic dari Internet melalui resource Service. Service menyediakan dukungan networking dan IP untuk Pod aplikasi Anda. GKE membuat IP eksternal dan Load Balancer untuk aplikasi Anda.

  • Jalankan perintah berikut untuk mengekspos situs Anda ke Internet:
kubectl expose deployment monolith --type=LoadBalancer --port 80 --target-port 8080

Mengakses layanan

GKE menetapkan alamat IP eksternal ke resource Service, bukan Deployment.

  1. Jika Anda ingin mengetahui IP eksternal yang disediakan GKE untuk aplikasi Anda, Anda dapat memeriksa Service dengan perintah kubectl get service:
kubectl get service

Output:

NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE monolith 10.3.251.122 203.0.113.0 80:30877/TCP 3d

Jalankan kembali perintah hingga layanan Anda memiliki alamat IP eksternal.

  1. Setelah menentukan alamat IP eksternal untuk aplikasi Anda, salin alamat IP, lalu arahkan browser Anda ke URL (seperti "http://203.0.113.0") untuk memeriksa apakah aplikasi Anda dapat diakses.

Anda akan melihat situs yang sama dengan yang Anda uji sebelumnya. Sekarang situs Anda berjalan sepenuhnya di Kubernetes.

Klik Periksa progres saya untuk memverifikasi tujuan. Mengekspos Deployment GKE

Tugas 6. Menskalakan deployment GKE

Sekarang setelah aplikasi Anda berjalan di GKE dan diekspos ke internet, bayangkan situs Anda menjadi sangat populer. Anda memerlukan cara untuk menskalakan aplikasi ke beberapa instance agar dapat menangani semua traffic ini. Selanjutnya, Anda akan mempelajari cara menskalakan aplikasi hingga 3 replika.

  1. Di Cloud Shell, jalankan perintah berikut untuk menskalakan deployment Anda hingga 3 replika:
kubectl scale deployment monolith --replicas=3
  1. Pastikan Deployment berhasil diskalakan:
kubectl get all

Output:

NAME READY STATUS RESTARTS AGE pod/monolith-7d8bc7bf68-2bxts 1/1 Running 0 36m pod/monolith-7d8bc7bf68-7ds7q 1/1 Running 0 45s pod/monolith-7d8bc7bf68-c5kxk 1/1 Running 0 45s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.27.240.1 443/TCP 25h service/monolith LoadBalancer 10.27.253.64 XX.XX.XX.XX 80:32050/TCP 6m7s NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE deployment.apps/monolith 3 3 3 3 61m NAME DESIRED CURRENT READY AGE replicaset.apps/monolith-7d8bc7bf68 3 3 3 61m

Sekarang Anda akan melihat 3 instance pod Anda berjalan. Perhatikan bahwa deployment dan set replika Anda sekarang memiliki jumlah yang diinginkan sebanyak 3.

Klik Periksa progres saya untuk memverifikasi tujuan. Menskalakan deployment GKE

Tugas 7. Membuat perubahan pada situs

Skenario: Tim pemasaran telah meminta Anda mengubah halaman beranda situs Anda. Menurut mereka, halaman ini harus lebih informatif terkait apa perusahaan Anda dan apa yang sebenarnya Anda jual.

Tugas: Anda akan menambahkan teks ke beranda agar tim pemasaran merasa senang. Sepertinya salah satu developer telah membuat perubahan itu dengan nama file index.js.new. Anda cukup menyalin file ini ke index.js dan perubahannya akan diterapkan. Ikuti petunjuk di bawah ini untuk melakukan perubahan yang sesuai.

  1. Jalankan perintah berikut untuk menyalin file yang telah diperbarui itu ke nama file yang benar:
cd ~/monolith-to-microservices/react-app/src/pages/Home mv index.js.new index.js
  1. Cetak kontennya untuk memverifikasi perubahan:
cat ~/monolith-to-microservices/react-app/src/pages/Home/index.js

Kode yang dihasilkan akan terlihat seperti ini:

/* Copyright 2019 Google LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. \*/ import React from "react"; import { makeStyles } from "@material-ui/core/styles"; import Paper from "@material-ui/core/Paper"; import Typography from "@material-ui/core/Typography"; const useStyles = makeStyles(theme => ({ root: { flexGrow: 1 }, paper: { width: "800px", margin: "0 auto", padding: theme.spacing(3, 2) } })); export default function Home() { const classes = useStyles(); return (
Fancy Fashion & Style Online
Tired of mainstream fashion ideas, popular trends and societal norms? This line of lifestyle products will help you catch up with the Fancy trend and express your personal style. Start shopping Fancy items now!
); }

Komponen React telah diupdate, tetapi aplikasi React perlu dibangun untuk menghasilkan file statis.

  1. Jalankan perintah berikut untuk membangun aplikasi React dan menyalinnya ke direktori publik monolith:
cd ~/monolith-to-microservices/react-app npm run build:monolith

Setelah kode diperbarui, Anda perlu membangun ulang container Docker dan memublikasikannya ke Artifact Registry. Gunakan perintah yang sama seperti sebelumnya, kecuali kali ini perbarui label versi.

  1. Jalankan perintah berikut untuk memicu build cloud baru dengan versi image yang diupdate 2.0.0:
cd ~/monolith-to-microservices/monolith gcloud builds submit --tag gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:2.0.0 .

Di bagian berikutnya, Anda akan menggunakan image ini untuk mengupdate aplikasi tanpa periode nonaktif.

Klik Periksa progres saya untuk memverifikasi tujuan. Membuat perubahan pada situs

Tugas 8. Mengupdate situs tanpa periode nonaktif

Perubahan telah selesai dan tim pemasaran puas dengan pembaruan Anda. Saatnya mengupdate situs tanpa mengganggu pengguna.

Mekanisme update berkelanjutan GKE memastikan aplikasi Anda tetap berjalan dan tersedia meskipun sistem mengganti instance image container lama Anda dengan yang baru di semua replika yang berjalan.

  • Beri tahu Kubernetes bahwa Anda ingin mengupdate image untuk deployment Anda ke versi baru dengan perintah berikut:
kubectl set image deployment/monolith monolith=gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:2.0.0

Verifikasi deployment

  1. Anda dapat memvalidasi update deployment dengan menjalankan perintah berikut:
kubectl get pods

Output:

NAME READY STATUS RESTARTS AGE monolith-584fbc994b-4hj68 1/1 Terminating 0 60m monolith-584fbc994b-fpwdw 1/1 Running 0 60m monolith-584fbc994b-xsk8s 1/1 Terminating 0 60m monolith-75f4cf58d5-24cq8 1/1 Running 0 3s monolith-75f4cf58d5-rfj8r 1/1 Running 0 5s monolith-75f4cf58d5-xm44v 0/1 ContainerCreating 0 1s

Di sini Anda akan melihat 3 pod baru dibuat dan pod lama Anda dimatikan. Anda dapat mengetahui mana yang baru dan mana yang lama berdasarkan usianya. Pada akhirnya, Anda hanya akan melihat 3 pod lagi yang akan menjadi 3 pod yang diperbarui.

  1. Uji aplikasi dengan menjalankan perintah berikut untuk memulai server web:
npm start
  1. Untuk memverifikasi perubahan, kembali ke tab halaman web aplikasi dan refresh halaman. Perhatikan bahwa aplikasi Anda telah diupdate.

Situs Anda sekarang akan menampilkan teks yang baru saja Anda tambahkan ke komponen halaman beranda.

Halaman Beranda Fancy Store

  1. Untuk menghentikan proses server web, tekan CTRL+C di Cloud Shell.

Klik Periksa progres saya untuk memverifikasi tujuan. Mengupdate situs tanpa periode nonaktif

Tugas 9. Pembersihan

Meskipun semua resource akan dihapus saat Anda menyelesaikan lab ini, di lingkungan Anda sendiri, sebaiknya hapus resource yang tidak lagi Anda perlukan.

  1. Menghapus repositori git:
cd ~ rm -rf monolith-to-microservices
  1. Menghapus image Artifact Registry:
# Delete the container image for version 1.0.0 of the monolith gcloud container images delete gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:1.0.0 --quiet # Delete the container image for version 2.0.0 of the monolith gcloud container images delete gcr.io/${GOOGLE_CLOUD_PROJECT}/monolith:2.0.0 --quiet
  1. Menghapus artefak Google Cloud Build dari Google Cloud Storage:
# The following command will take all source archives from all builds and delete them from cloud storage # Run this command to print all sources: # gcloud builds list | awk 'NR > 1 {print $4}' gcloud builds list | grep 'SOURCE' | cut -d ' ' -f2 | while read line; do gsutil rm $line; done
  1. Menghapus Layanan GKE:
kubectl delete service monolith kubectl delete deployment monolith
  1. Menghapus Cluster GKE:
gcloud container clusters delete fancy-cluster {{{project_0.default_region | lab region}}}
  1. Ketik Y untuk mengonfirmasi tindakan ini. Perintah ini mungkin memerlukan waktu beberapa saat.

Selamat!

Anda telah berhasil men-deploy, menskalakan, dan mengupdate situs Anda di GKE. Anda kini memiliki pengalaman menggunakan Docker dan Kubernetes.

Langkah berikutnya/Pelajari lebih lanjut

Panduan Terakhir Diperbarui pada 26 April 2024

Lab Terakhir Diuji pada 21 Februari 2024

Hak cipta 2026 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

Menggunakan jendela Samaran atau browser pribadi adalah cara terbaik 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.