GSP021

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
-
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
-
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.
-
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.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
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.
-
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.
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.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
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.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (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
- Di lingkungan Cloud Shell, ketik perintah berikut untuk menetapkan zona:
gcloud config set compute/zone {{{project_0.default_zone|Zone}}}
- 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.
- Di Cloud Shell, salin kode sumber dari command line Cloud Shell:
gcloud storage cp -r gs://spls/gsp021/* .
- Buka direktori yang dibutuhkan oleh lab ini:
cd orchestrate-with-kubernetes/kubernetes
- 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.
- 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.
- Gunakan perintah kubectl get pods untuk melihat container nginx yang berjalan:
kubectl get pods
- 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.
- 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.
- 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 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.
- Buka direktori:
cd ~/orchestrate-with-kubernetes/kubernetes
- 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.
- Buat Pod fortune-app menggunakan kubectl:
kubectl create -f pods/fortune-app.yaml
- 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.
- 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.
-
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.
-
Di terminal kedua, jalankan perintah berikut untuk menyiapkan penerusan port:
kubectl port-forward fortune-app 10080:8080
- 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.
- 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.
- Untuk mendapatkan kembali token autentikasi dari aplikasi, coba login:
curl -u user http://127.0.0.1:10080/login
- Pada perintah login, gunakan sandi yang sangat rahasia, yaitu
password
, untuk login.
Login akan menampilkan token JWT.
- 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')
-
Saat dimintai sandi host, masukkan kembali sandi yang sangat rahasia, yaitu password
.
-
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!
- Gunakan perintah kubectl logs untuk melihat log untuk Pod fortune-app.
kubectl logs fortune-app
- Buka terminal ketiga, lalu gunakan flag -f untuk mendapatkan aliran data log yang terjadi secara real time:
kubectl logs -f fortune-app
- 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
- 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
- Misalnya, setelah Anda memasukkan shell ke dalam container fortune-ap, konektivitas eksternal dapat diuji menggunakan perintah ping:
ping -c 3 google.com
- 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.
- Jika direktori diubah, pastikan Anda kembali ke direktori ~/orchestrate-with-kubernetes/kubernetes:
cd ~/orchestrate-with-kubernetes/kubernetes
- Pelajari file konfigurasi service fortune-app yang aman:
cat pods/secure-fortune.yaml
- 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.
- 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.
- 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.
- Pertama-tama, dapatkan alamat IP eksternal untuk salah satu node.
gcloud compute instances list
- 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.
- Anda dapat melihat bahwa ada Pod yang berjalan dengan label fortune-app:
kubectl get pods -l "app=fortune-app"
- 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.
- 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
- Setelah Pod diberi label dengan benar, lihat daftar endpoint di service fortune-app:
kubectl describe services fortune-app | grep Endpoints
Anda berhasil membuat endpoint!
- Dapatkan alamat IP eksternal untuk salah satu node.
gcloud compute instances list
- 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.
- 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.
- Lanjutkan dan buat objek Deployment Anda:
kubectl create -f deployments/auth.yaml
- Sekarang saatnya membuat service untuk Deployment auth Anda. Gunakan perintah kubectl create untuk membuat service auth:
kubectl create -f services/auth.yaml
- Lakukan langkah yang sama untuk membuat dan mengekspos Deployment fortune:
kubectl create -f deployments/fortune-service.yaml
kubectl create -f services/fortune-service.yaml
- 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.
- 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.