Memuat…
Tidak ditemukan hasil.

Terapkan keterampilan Anda di Konsol Google Cloud

Dapatkan akses ke 700+ lab dan kursus

Mengorkestrasi Cloud dengan Kubernetes

Lab 1 jam 15 menit 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

GSP021

Logo lab mandiri Google Cloud

Ringkasan

Kubernetes adalah project open source (tersedia di kubernetes.io) yang dapat berjalan di berbagai lingkungan, dari laptop hingga cluster multi node dengan ketersediaan tinggi, dari cloud publik hingga deployment lokal, dan dari virtual machine hingga server khusus (bare metal).

Untuk lab ini, dengan menggunakan lingkungan terkelola seperti Kubernetes Engine, Anda dapat berfokus pada pengalaman menggunakan Kubernetes tanpa perlu kerepotan menyiapkan infrastruktur dasarnya. Kubernetes Engine merupakan lingkungan terkelola untuk men-deploy aplikasi dalam kontainer. Kubernetes Engine menghadirkan inovasi terbaru dalam produktivitas developer, efisiensi resource, operasi otomatis, dan fleksibilitas open source untuk mempercepat waktu penyiapan produk Anda.

Tujuan

Di lab ini, Anda akan mempelajari cara:

  • Menyediakan cluster Kubernetes lengkap menggunakan Kubernetes Engine.
  • Mendeploy dan mengelola container Docker menggunakan kubectl.
  • Memecah aplikasi menjadi beberapa microservice menggunakan Deployment dan Service Kubernetes.

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.

Google Kubernetes Engine

  1. Di lingkungan Cloud Shell, ketik perintah berikut untuk menetapkan zona:
gcloud config set compute/zone {{{project_0.default_zone|Zone}}}
  1. Aktifkan cluster yang akan digunakan di lab ini:
gcloud container clusters create io --zone {{{project_0.default_zone|Zone}}} Anda diautentikasi ke cluster secara otomatis pada saat pembuatan. Jika koneksi ke Cloud Shell terputus dengan alasan apa pun, jalankan perintah gcloud container clusters get-credentials io untuk mengautentikasi ulang. Catatan: Pembuatan cluster memerlukan waktu beberapa menit. Kubernetes Engine menyediakan beberapa Virtual Machine di balik layar yang dapat Anda gunakan untuk bereksperimen.

Tugas 1. Mendapatkan kode contoh

Untuk mendapatkan kode, salin kode contoh dari bucket Google Cloud Storage.

  1. Di Cloud Shell, salin kode sumber dari command line Cloud Shell:
gcloud storage cp -r gs://spls/gsp021/* .
  1. Buka direktori yang dibutuhkan oleh lab ini:
cd orchestrate-with-kubernetes/kubernetes
  1. Lihat daftar file untuk mengetahui file yang akan Anda kerjakan:
ls

Contoh memiliki tata letak berikut:

deployments/ /* Deployment manifests */ ... nginx/ /* nginx config files */ ... pods/ /* Pod manifests */ ... services/ /* Services manifests */ ... tls/ /* TLS certificates */ ... cleanup.sh /* Cleanup script */

Setelah Anda memiliki kodenya, mari kita coba menggunakan Kubernetes.

Tugas 2. Demo Kubernetes singkat

Cara termudah untuk memulai Kubernetes adalah dengan menggunakan perintah kubectl create.

  1. Gunakan perintah tersebut untuk meluncurkan satu instance container nginx:
kubectl create deployment nginx --image=nginx:1.27.0

Kubernetes telah membuat Deployment, dan Deployment akan dijelaskan lebih lanjut nanti. Namun, untuk saat ini, Anda hanya perlu mengetahui bahwa Deployment menjaga Pod tetap aktif dan berjalan meskipun node tempatnya berjalan tersebut gagal.

Di Kubernetes, semua container berjalan dalam Pod.

  1. Gunakan perintah kubectl get pods untuk melihat container nginx yang berjalan:
kubectl get pods
  1. Setelah status container nginx menandakan Running (berjalan), Anda dapat mengeksposnya ke luar Kubernetes menggunakan perintah kubectl expose:
kubectl expose deployment nginx --port 80 --type LoadBalancer

Jadi, apa yang baru saja terjadi? Di balik layar, Kubernetes membuat load balancer eksternal yang terhubung dengan alamat IP publik. Tiap klien yang membuka alamat IP publik tersebut akan dirutekan ke Pod di balik service. Dalam hal ini, Pod tersebut adalah Pod nginx.

  1. Sekarang, lihat daftar service menggunakan perintah kubectl get services:
kubectl get services Catatan: Mungkin perlu waktu beberapa detik hingga kolom ExternalIP untuk service Anda terisi. Hal ini wajar. Cukup jalankan kembali perintah kubectl get services tiap beberapa detik hingga kolom terisi.
  1. Tambahkan IP Eksternal ke perintah ini untuk membuka container Nginx dari jarak jauh:
curl http://<External IP>:80

Dan, berhasil! Kubernetes mendukung alur kerja yang mudah digunakan secara langsung menggunakan perintah untuk menjalankan dan mengekspos kubectl.

Menguji tugas yang sudah selesai

Klik Periksa progres saya di bawah untuk memeriksa progres lab Anda. Jika berhasil membuat cluster Kubernetes dan men-deploy container Nginx, Anda akan melihat skor penilaian.

Membuat cluster Kubernetes dan meluncurkan container Nginx

Setelah melihat tur singkat Kubernetes, sekarang saatnya mempelajari tiap komponen dan abstraksi secara mendalam.

Tugas 3. Tentang Pod

Pod merupakan inti dari Kubernetes.

Pod mewakili dan menampung kumpulan satu atau beberapa container. Umumnya, jika Anda memiliki beberapa container yang sangat bergantung satu sama lain, Anda akan menggabungkan container ini di dalam satu Pod.

Contoh berikut menunjukkan Pod yang berisi container monolit dan nginx.

Pod yang berisi container monolit dan nginx

Pod juga memiliki Volume. Volume adalah disk data yang berfungsi selama Pod berfungsi, dan dapat digunakan oleh container yang ada dalam Pod tersebut. Pod menyediakan namespace bersama untuk kontennya. Artinya, kedua container di dalam Pod pada contoh ini dapat saling berkomunikasi dan juga menggunakan volume penyimpanan yang sama.

Pod juga memiliki namespace jaringan bersama. Artinya, tiap Pod memiliki satu Alamat IP.

Selanjutnya, mari kita pelajari Pod secara lebih mendalam.

Tugas 4. Membuat Pod

Pod dapat dibuat menggunakan file konfigurasi Pod. Luangkan waktu untuk mempelajari file konfigurasi Pod fortune-app.

  1. Buka direktori:
cd ~/orchestrate-with-kubernetes/kubernetes
  1. Jalankan perintah berikut untuk melihat file konfigurasi:
cat pods/fortune-app.yaml

Output menunjukkan file konfigurasi yang terbuka:

apiVersion: v1 kind: Pod metadata: name: fortune-app labels: app: fortune-app spec: containers: - name: fortune-app image: "us-central1-docker.pkg.dev/qwiklabs-resources/gsp-021-lab-images/fortune-app:1.0.0" ports: - name: http containerPort: 8080 resources: limits: cpu: 0.2 memory: "20Mi"

Ada beberapa hal yang perlu Anda perhatikan di sini:

  • Pod Anda terdiri atas satu container (fortune-app).
  • Anda akan membuka port 8080 untuk traffic http.
  1. Buat Pod fortune-app menggunakan kubectl:
kubectl create -f pods/fortune-app.yaml
  1. Periksa Pod Anda. Gunakan perintah kubectl get pods untuk melihat daftar semua Pod yang berjalan di namespace default:
kubectl get pods Catatan: Mungkin perlu waktu beberapa detik hingga Pod fortune-app aktif dan berjalan. Image container perlu diambil dari Artifact Registry sebelum Anda dapat menjalankannya.
  1. Setelah Pod berjalan, gunakan perintah kubectl describe untuk mendapatkan informasi selengkapnya terkait Pod fortune-app:
kubectl describe pods fortune-app

Anda akan melihat berbagai informasi terkait Pod fortune-app, termasuk log peristiwa dan alamat IP Pod. Informasi ini berguna saat Anda akan memecahkan masalah.

Kubernetes mempermudah pembuatan Pod dengan menjelaskannya dalam file konfigurasi dan menampilkan informasi terkait Pod saat dijalankan. Di bagian ini, Anda sudah memiliki kemampuan untuk membuat semua Pod yang diperlukan Deployment.

Tugas 5. Berinteraksi dengan Pod

Secara default, Pod mendapatkan alamat IP pribadi yang tidak dapat dijangkau di luar cluster. Gunakan perintah kubectl port-forward untuk memetakan port lokal ke port di dalam Pod fortune-app.

Catatan: Dari titik ini, lab akan meminta Anda untuk bekerja dalam beberapa tab Cloud Shell guna menyiapkan komunikasi di antara Pod. Tiap perintah yang dieksekusi dalam shell perintah kedua atau ketiga akan disebutkan dalam petunjuk perintah.
  1. Buka terminal Cloud Shell kedua. Sekarang Anda memiliki dua terminal, satu terminal untuk menjalankan perintah kubectl port-forward dan satu lagi untuk mengeksekusi perintah curl.

  2. Di terminal kedua, jalankan perintah berikut untuk menyiapkan penerusan port:

kubectl port-forward fortune-app 10080:8080
  1. Sekarang, di terminal pertama, mulailah berinteraksi dengan Pod Anda menggunakan curl:
curl http://127.0.0.1:10080

Anda mendapatkan pesan fortune cookie dari container Anda.

  1. Sekarang gunakan perintah curl untuk mengetahui hal yang terjadi jika Anda membuka endpoint yang aman. Endpoint ini memerlukan autentikasi.
curl http://127.0.0.1:10080/secure

Anda akan menerima error "Unauthorized", yang memang diharapkan terjadi.

  1. Untuk mendapatkan kembali token autentikasi dari aplikasi, coba login:
curl -u user http://127.0.0.1:10080/login
  1. Pada perintah login, gunakan sandi yang sangat rahasia, yaitu password, untuk login.

Login akan menampilkan token JWT.

  1. Karena Cloud Shell tidak dapat menangani penyalinan string panjang dengan baik, buat variabel lingkungan untuk token.
TOKEN=$(curl -u user http://127.0.0.1:10080/login | jq -r '.token')
  1. Saat dimintai sandi host, masukkan kembali sandi yang sangat rahasia, yaitu password.

  2. Gunakan perintah ini untuk menyalin, lalu gunakan token untuk mengakses endpoint yang aman dengan curl:

curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:10080/secure

Di bagian ini, Anda seharusnya akan menerima kembali fortune dari aplikasi yang memberitahukan bahwa semuanya berjalan dengan lancar.

You have accessed the secure fortune!
  1. Gunakan perintah kubectl logs untuk melihat log untuk Pod fortune-app.
kubectl logs fortune-app
  1. Buka terminal ketiga, lalu gunakan flag -f untuk mendapatkan aliran data log yang terjadi secara real time:
kubectl logs -f fortune-app
  1. Sekarang jika Anda menggunakan curl di terminal pertama untuk berinteraksi dengan fortune-app, Anda dapat melihat log diperbarui (di terminal ketiga):
curl http://127.0.0.1:10080
  1. Gunakan perintah kubectl exec untuk menjalankan shell interaktif di dalam Pod fortune-app. Hal ini berguna saat Anda ingin memecahkan masalah dari dalam container:
kubectl exec fortune-app --stdin --tty -c fortune-app -- /bin/sh
  1. Misalnya, setelah Anda memasukkan shell ke dalam container fortune-ap, konektivitas eksternal dapat diuji menggunakan perintah ping:
ping -c 3 google.com
  1. Pastikan untuk logout setelah Anda selesai menggunakan shell interaktif ini.
exit

Seperti yang dapat Anda lihat, berinteraksi dengan Pod semudah menggunakan perintah kubectl. Jika Anda perlu membuka container dari jarak jauh, atau mendapatkan info shell login, Kubernetes menyediakan semua hal yang diperlukan untuk menyiapkan dan mengerjakan project Anda.

Tugas 6. Tentang Service

Pod tidak dirancang agar bersifat persisten. Pod dapat dimulai atau dihentikan karena berbagai alasan, misalnya pemeriksaan keaktifan dan kesiapan yang gagal, yang dapat menyebabkan masalah:

Apa yang terjadi jika Anda ingin berkomunikasi dengan kumpulan Pod? Saat dimulai ulang, pod mungkin akan memiliki alamat IP yang berbeda.

Di sinilah Service berperan. Service menyediakan endpoint stabil untuk Pod.

Service menggunakan label untuk menentukan Pod yang digunakan untuk beroperasi. Jika memiliki label yang tepat, Pod akan dideteksi dan diekspos secara otomatis oleh service.

Tingkat akses yang diberikan oleh service ke kumpulan Pod bergantung pada jenis Service. Saat ini ada tiga jenis Service:

  • ClusterIP (internal) adalah jenis default. Service ini hanya dapat dilihat di dalam cluster.
  • NodePort memberikan IP yang dapat diakses secara eksternal kepada tiap node di cluster.
  • LoadBalancer menambahkan load balancer dari penyedia cloud yang akan meneruskan traffic dari Service ke Node di dalamnya.

Sekarang Anda akan mempelajari cara:

  • Membuat Service
  • Menggunakan pemilih label untuk mengekspos kumpulan Pod terbatas secara eksternal

Tugas 7. Membuat Service

Sebelum Anda dapat membuat Service, buatlah Pod aman terlebih dahulu yang dapat menangani traffic https.

  1. Jika direktori diubah, pastikan Anda kembali ke direktori ~/orchestrate-with-kubernetes/kubernetes:
cd ~/orchestrate-with-kubernetes/kubernetes
  1. Pelajari file konfigurasi service fortune-app yang aman:
cat pods/secure-fortune.yaml
  1. Buat Pod secure-fortune dan data konfigurasinya:
kubectl create secret generic tls-certs --from-file tls/ kubectl create configmap nginx-proxy-conf --from-file nginx/proxy.conf kubectl create -f pods/secure-fortune.yaml

Setelah Anda memiliki Pod yang aman, saatnya untuk mengeksposnya secara eksternal. Untuk melakukannya, buat Service Kubernetes.

  1. Pelajari file konfigurasi service fortune-app:
cat services/fortune-app.yaml (Output): kind: Service apiVersion: v1 metadata: name: "fortune-app" spec: selector: app: "fortune-app" secure: "enabled" ports: - protocol: "TCP" port: 443 targetPort: 443 nodePort: 31000 type: NodePort </ql-code-block output> Catatan:

Ada pemilih yang digunakan untuk menemukan dan mengekspos Pod apa pun secara otomatis dengan label app: fortune-app dan secure: enabled.

Anda harus mengekspos nodeport di sini karena inilah cara meneruskan traffic eksternal dari port 31000 ke nginx (di port 443).
5. Gunakan perintah kubectl create untuk membuat service fortune-app dari file konfigurasi: kubectl create -f services/fortune-app.yaml (Output): service/fortune-app created

Menguji tugas yang sudah selesai

Klik Periksa progres saya di bawah untuk memeriksa progres lab Anda. Jika Anda berhasil membuat Pod dan service fortune-app, skor penilaian akan terlihat.

Membuat Pod dan service fortune-app

Anda akan menggunakan port untuk mengekspos service. Hal ini berarti bentrokan port dapat terjadi jika aplikasi lain mencoba terikat ke port 31000 di salah satu server Anda.

Biasanya, Kubernetes akan menangani penetapan port ini. Di lab ini, Anda akan memilih port agar health check lebih mudah dikonfigurasi nantinya.

  1. Gunakan perintah gcloud compute firewall-rules untuk mengizinkan traffic ke service fortune-app pada nodeport yang diekspos:
gcloud compute firewall-rules create allow-fortune-nodeport --allow tcp:31000

Menguji tugas yang sudah selesai

Klik Periksa progres saya di bawah untuk memeriksa progres lab Anda. Jika Anda berhasil membuat aturan firewall untuk mengizinkan traffic TCP di port 31000, skor penilaian akan terlihat.

Mengizinkan traffic ke service fortune-app pada nodeport yang diekspos

Setelah menyiapkan semuanya, Anda seharusnya dapat membuka service secure-fortune dari luar cluster tanpa perlu menggunakan penerusan port.

  1. Pertama-tama, dapatkan alamat IP eksternal untuk salah satu node.
gcloud compute instances list
  1. Coba buka service secure-fortune menggunakan curl:
curl -k https://<EXTERNAL_IP>:31000

Maaf. Waktu habis. Apa yang salah?

Catatan: Sekarang saatnya menguji pengetahuan Anda secara singkat.

Gunakan perintah berikut untuk menjawab pertanyaan di bawah ini:

kubectl get services fortune-app

kubectl describe services fortune-app

Pertanyaan:

  • Mengapa Anda tidak mendapatkan respons dari service fortune-app?
  • Berapa banyak endpoint yang dimiliki service fortune-app?
  • Label apa saja yang harus dimiliki Pod agar dapat dideteksi oleh service fortune-app?
  • Petunjuk: ada kaitannya dengan label. Anda akan memperbaiki masalah ini di bagian berikutnya.

    Tugas 8. Menambahkan label ke Pod

    Saat ini, service fortune-app tidak memiliki endpoint. Salah satu cara untuk memecahkan masalah seperti ini adalah menggunakan perintah kubectl get pods dengan kueri label.

    1. Anda dapat melihat bahwa ada Pod yang berjalan dengan label fortune-app:
    kubectl get pods -l "app=fortune-app"
    1. Namun, bagaimana dengan "app=fortune-app" dan "secure=enabled"?
    kubectl get pods -l "app=fortune-app,secure=enabled"

    Kueri label ini tidak menampilkan hasil apa pun. Sepertinya label "secure=enabled" perlu ditambahkan ke Pod tersebut.

    1. Gunakan perintah kubectl label untuk menambahkan label secure=enabled yang tidak ada ke Pod secure-fortune. Setelah itu, Anda dapat memeriksa dan melihat bahwa label telah diperbarui.
    kubectl label pods secure-fortune 'secure=enabled' kubectl get pods secure-fortune --show-labels
    1. Setelah Pod diberi label dengan benar, lihat daftar endpoint di service fortune-app:
    kubectl describe services fortune-app | grep Endpoints

    Anda berhasil membuat endpoint!

    1. Dapatkan alamat IP eksternal untuk salah satu node.
    gcloud compute instances list
    1. Coba buka service secure-fortune menggunakan curl:
    curl -k https://<EXTERNAL_IP>:31000

    Aha! Kita berhasil terhubung.

    Menguji tugas yang sudah selesai

    Klik Periksa progres saya di bawah untuk memeriksa progres lab Anda. Jika Anda berhasil menambahkan label ke Pod, skor penilaian akan terlihat.

    Menambahkan label ke Pod

    Tugas 9. Tentang Deployment

    Sasaran lab ini adalah mempersiapkan Anda melakukan penskalaan dan mengelola container dalam produksi. Di sinilah Deployment berperan. Deployment adalah cara deklaratif untuk memastikan jumlah Pod yang berjalan sama dengan jumlah Pod yang diinginkan, yang ditentukan oleh pengguna.

    Manfaat utama Deployment adalah menangani detail tingkat rendah dalam mengelola Pod. Di balik layar, Deployment menggunakan Kumpulan Replika untuk mengelola proses memulai dan menghentikan Pod. Jika Pod perlu diupdate atau diskalakan, Deployment akan menangani prosesnya. Deployment juga akan menangani proses mulai ulang Pod jika Pod terhenti karena alasan tertentu.

    Lihat contoh singkat:

    Pod terikat dengan durasi Node tempatnya dibuat. Pada contoh di atas, Node3 terhenti (diikuti dengan Pod). Alih-alih membuat Pod baru dan mencari Node untuknya secara manual, Deployment membuat Pod baru dan memulainya di Node2.

    Cukup bagus!

    Sekarang saatnya menggabungkan semua yang telah Anda pelajari terkait Pod dan Service untuk memecah aplikasi fortune-app menjadi beberapa Service yang berukuran lebih kecil menggunakan Deployment.

    Tugas 10. Membuat Deployment

    Anda akan memecah aplikasi fortune-app menjadi tiga bagian yang terpisah:

    • auth - Menghasilkan token JWT untuk pengguna yang terautentikasi.
    • fortune - Menampilkan fortune untuk pengguna yang terautentikasi.
    • frontend - Merutekan traffic ke service auth dan fortune.

    Anda siap membuat Deployment, masing-masing satu untuk tiap service. Setelah itu, Anda akan menentukan service internal untuk Deployment auth dan fortune, serta service eksternal untuk Deployment frontend. Setelah selesai, Anda dapat berinteraksi dengan microservice, sama seperti dengan monolit. Namun, kini tiap bagian dapat diskalakan dan di-deploy secara terpisah.

    1. Mulai dengan mempelajari file konfigurasi Deployment auth.
    cat deployments/auth.yaml (Output) apiVersion: apps/v1 kind: Deployment metadata: name: auth spec: selector: matchLabels: app: auth replicas: 1 template: metadata: labels: app: auth spec: containers: - name: auth image: "us-central1-docker.pkg.dev/qwiklabs-resources/gsp-021-lab-images/auth-service:1.0.0" ports: - name: http containerPort: 8080

    Deployment akan membuat 1 replika container auth.

    Saat Anda menjalankan perintah kubectl create untuk membuat Deployment auth, sebuah Pod yang sesuai dengan data dalam manifes Deployment akan dibuat. Artinya, Anda dapat menskalakan jumlah Pod dengan mengubah angka yang ditentukan dalam kolom Replicas.

    1. Lanjutkan dan buat objek Deployment Anda:
    kubectl create -f deployments/auth.yaml
    1. Sekarang saatnya membuat service untuk Deployment auth Anda. Gunakan perintah kubectl create untuk membuat service auth:
    kubectl create -f services/auth.yaml
    1. Lakukan langkah yang sama untuk membuat dan mengekspos Deployment fortune:
    kubectl create -f deployments/fortune-service.yaml kubectl create -f services/fortune-service.yaml
    1. Lakukan sekali lagi untuk membuat dan mengekspos Deployment frontend.
    kubectl create configmap nginx-frontend-conf --from-file=nginx/frontend.conf kubectl create -f deployments/frontend.yaml kubectl create -f services/frontend.yaml Catatan: Ada satu langkah lagi untuk membuat frontend karena Anda perlu menyimpan beberapa data konfigurasi menggunakan container.
    1. Berinteraksilah dengan frontend dengan mengambil IP Eksternal-nya, lalu menggunakan curl:
    kubectl get services frontend Catatan: Pembuatan alamat IP eksternal membutuhkan waktu kurang lebih satu menit. Jalankan lagi perintah sebelumnya jika status kolom EXTERNAL-IP masih tertunda. curl -k https://<EXTERNAL-IP>

    Dan Anda akan mendapatkan kembali fortune.

    Menguji tugas yang sudah selesai

    Klik Periksa progres saya di bawah untuk memeriksa progres lab Anda. Jika Anda berhasil membuat Deployment untuk auth, fortune, dan frontend, Anda akan mendapatkan skor penilaian.

    Membuat Deployment

    Selamat!

    Selamat! Anda telah berhasil mengembangkan aplikasi multi-service menggunakan Kubernetes. Dengan keterampilan yang Anda pelajari di sini, Anda dapat men-deploy aplikasi kompleks di Kubernetes menggunakan sekumpulan Deployment dan Service.

    Langkah berikutnya/pelajari lebih lanjut

    • Anda dapat mengikuti kabar terbaru terkait Kubernetes di X dan di blog komunitas.
    • Ingat bahwa Kubernetes adalah project open source (http://kubernetes.io/) yang dihosting di GitHub. Kami selalu menanti kontribusi dan masukan dari Anda.

    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 11 Agustus 2025

    Lab Terakhir Diuji pada 11 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.