
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create a Kubernetes cluster and launch Nginx container
/ 25
Create Monolith pods and service
/ 25
Allow traffic to the monolith service on the exposed nodeport
/ 5
Adding Labels to Pods
/ 20
Creating Deployments (Auth, Hello and Frontend)
/ 25
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 repot-repot menyiapkan infrastrukturnya. 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.
Di lab ini, Anda akan mempelajari cara:
kubectl
.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:
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:
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.
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
Anda juga dapat menemukan Username di panel Lab Details.
Klik Next.
Salin Password di bawah dan tempel ke dialog Welcome.
Anda juga dapat menemukan Password di panel Lab Details.
Klik Next.
Klik halaman berikutnya:
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
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.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:
gcloud
adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
Klik Authorize.
Output Anda sekarang akan terlihat seperti ini:
Output:
Output:
Contoh output:
gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
gcloud container clusters get-credentials io
untuk mengautentikasi ulang.
Contoh memiliki tata letak berikut:
Setelah Anda memiliki kodenya, mari kita coba menggunakan Kubernetes.
Cara termudah untuk memulai Kubernetes adalah dengan menggunakan perintah kubectl create
.
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.
kubectl get pods
untuk melihat container nginx yang berjalan:kubectl expose
:Jadi, apa yang baru saja terjadi? Di balik layar, Kubernetes membuat Load Balancer eksternal yang dilengkapi dengan alamat IP publik. Tiap klien yang membuka alamat IP publik tersebut akan dirutekan ke pod di belakang service. Dalam hal ini, pod tersebut adalah pod nginx.
kubectl get services
:ExternalIP
untuk service Anda terisi. Hal ini wajar. Cukup jalankan kembali perintah kubectl get services
tiap beberapa detik hingga kolom terisi.
Dan, berhasil! Kubernetes mendukung alur kerja yang siap pakai menggunakan perintah kubectl
untuk menjalankan dan mengekspos.
Klik Check my progress di bawah untuk memeriksa progres lab Anda. Jika Anda berhasil membuat cluster Kubernetes dan men-deploy container Nginx, skor penilaian akan terlihat.
Setelah melihat tur singkat Kubernetes, sekarang saatnya mempelajari tiap komponen dan abstraksi secara mendalam.
Pod merupakan inti dari Kubernetes.
Pod mewakili dan menampung kumpulan dari satu atau beberapa container. Umumnya, jika Anda memiliki beberapa container yang sangat bergantung satu sama lain, Anda menggabungkan container ini di dalam satu pod.
Dalam contoh ini, ada 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. Hal ini berarti kedua container di dalam pod pada contoh ini dapat saling berkomunikasi, dan juga memiliki volume terpasang yang sama.
Pod juga memiliki namespace jaringan bersama. Artinya, tiap pod memiliki satu Alamat IP.
Selanjutnya, mari kita pelajari pod secara lebih mendalam.
Pod dapat dibuat menggunakan file konfigurasi pod. Luangkan waktu untuk mempelajari file konfigurasi pod monolit.
Output menunjukkan file konfigurasi yang terbuka:
Ada beberapa hal yang perlu Anda perhatikan di sini. Anda akan melihat bahwa:
kubectl
:kubectl get pods
untuk melihat daftar semua pod yang berjalan di namespace default:kubectl describe
untuk mendapatkan informasi selengkapnya tentang pod monolit:Anda akan melihat berbagai informasi tentang pod monolit, termasuk alamat IP dan log aktivitas Pod. Informasi ini dapat berguna saat memecahkan masalah.
Kubernetes mempermudah pembuatan pod dengan menjelaskannya dalam file konfigurasi dan melihat informasi saat pod dijalankan. Di bagian ini, Anda sudah memiliki kemampuan untuk membuat semua pod yang diperlukan deployment.
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 monolit.
Buka terminal Cloud Shell kedua. Sekarang Anda memiliki dua terminal, satu terminal untuk menjalankan perintah kubectl port-forward
dan satu lagi untuk menjalankan perintah curl
.
Di terminal kedua, jalankan perintah berikut untuk menyiapkan penerusan port:
curl
:Ya! Container mengirimkan respons "hello" kepada Anda.
curl
untuk melihat apa yang terjadi jika Anda membuka endpoint yang aman:Maaf.
password
untuk login.Proses login akan mencetak token JWT.
Saat dimintai sandi host, masukkan kembali sandi yang sangat rahasia, yaitu password
.
Salin perintah ini, lalu gunakan token untuk membuka endpoint yang aman dengan curl
:
Di bagian ini, Anda seharusnya menerima respons dari aplikasi yang memberitahukan bahwa semuanya berjalan dengan lancar.
kubectl logs
untuk melihat log Pod monolit
.-f
untuk mendapatkan aliran data log yang terjadi secara real time:curl
di terminal pertama untuk berinteraksi dengan monolit, Anda dapat melihat log diperbarui (di terminal ketiga):kubectl exec
untuk menjalankan shell interaktif di dalam Pod Monolit. Hal ini dapat berguna saat Anda ingin memecahkan masalah dari dalam container:ping
: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.
Pod tidak dirancang untuk persisten. Pod dapat dimulai atau dihentikan karena berbagai alasan, misalnya pemeriksaan keaktifan dan kesiapan yang gagal, dan hal ini 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) -- jenis default yang berarti Service ini hanya dapat dilihat di dalam cluster,NodePort
memberikan IP yang dapat diakses secara eksternal kepada setiap node di cluster, sertaLoadBalancer
menambahkan load balancer dari penyedia cloud yang akan meneruskan traffic dari service ke Node di dalamnya.Sekarang Anda akan mempelajari cara:
Sebelum Anda dapat membuat service, buatlah pod aman terlebih dahulu yang dapat menangani traffic https.
~/orchestrate-with-kubernetes/kubernetes
:Setelah Anda memiliki pod yang aman, saatnya untuk mengekspos Pod secure-monolith secara eksternal. Untuk melakukannya, buat service Kubernetes.
(Output):
* Ada pemilih yang digunakan untuk menemukan dan mengekspos pod apa pun secara otomatis dengan label `app: monolith` dan `secure: enabled`.
* Sekarang, Anda harus mengekspos nodeport di sini karena inilah cara meneruskan traffic eksternal dari port 31000 ke nginx (di port 443).
kubectl create
untuk membuat service monolit dari file konfigurasi service monolit:(Output):
Klik Check my progress di bawah untuk memeriksa progres lab Anda. Jika Anda berhasil membuat pod dan service Monolit, skor penilaian akan terlihat.
Anda menggunakan port untuk mengekspos service. Hal ini berarti bentrokan port dapat terjadi jika aplikasi lain mencoba mengikat ke port 31000 di salah satu server Anda.
Umumnya, Kubernetes akan menangani penugasan port ini. Di lab ini, Anda akan memilih port untuk memudahkan konfigurasi health check nanti.
gcloud compute firewall-rules
untuk mengizinkan traffic ke service monolit pada nodeport yang diekspos:Klik Check my progress di bawah untuk memeriksa progres lab Anda. Jika Anda berhasil membuat aturan firewall untuk mengizinkan traffic TCP di port 31000, skor penilaian akan terlihat.
Setelah menyiapkan semuanya, Anda seharusnya dapat membuka service secure-monolith dari luar cluster tanpa perlu menggunakan penerusan port.
curl
: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 monolith
kubectl describe services monolith
Pertanyaan:
Petunjuk: ada kaitannya dengan label. Anda akan memperbaiki masalah ini di bagian berikutnya.
Saat ini service monolit tidak memiliki endpoint. Salah satu cara untuk memecahkan masalah seperti ini adalah menggunakan perintah kubectl get pods
dengan kueri label.
Kueri label ini tidak menampilkan hasil apa pun. Sepertinya label "secure=enabled" perlu ditambahkan ke pod tersebut.
kubectl label
untuk menambahkan label secure=enabled
yang tidak ada ke Pod secure-monolith. Setelah itu, Anda dapat memeriksa dan melihat bahwa label telah diperbarui.Anda berhasil membuat endpoint!
Aha! Kita berhasil terhubung.
Klik Check my progress di bawah untuk memeriksa progres lab Anda. Jika Anda berhasil menambahkan label ke pod monolit, skor penilaian akan terlihat.
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 tentang Pod dan Service untuk memecah aplikasi monolitik menjadi beberapa Service yang berukuran lebih kecil menggunakan Deployment.
Anda akan memecah aplikasi monolitik menjadi tiga bagian yang terpisah:
Deployment siap dibuat untuk tiap service. Setelah itu, Anda akan menentukan service internal untuk deployment auth dan hello, serta service eksternal untuk deployment frontend. Setelah selesai, Anda dapat berinteraksi dengan setiap microservice, sama seperti dengan Monolit. Namun, kini tiap bagian dapat diskalakan dan di-deploy secara terpisah.
(Output)
Deployment membuat 1 replika, dan Anda menggunakan container auth versi 2.0.0.
Saat Anda menjalankan perintah kubectl create
untuk membuat deployment auth, sebuah pod yang sesuai dengan data dalam manifes Deployment akan dibuat. Hal ini berarti Anda dapat menskalakan jumlah Pod dengan mengubah angka yang ditentukan dalam kolom Replicas.
kubectl create
untuk membuat service auth:EXTERNAL-IP
masih tertunda.Anda akan mendapatkan respons balik hello.
Klik Check my progress di bawah untuk memeriksa progres lab Anda. Jika Anda berhasil membuat deployment Auth, Hello, dan Frontend, skor penilaian akan terlihat.
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.
...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 29 April 2024
Lab Terakhir Diuji pada 29 April 2024
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.
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
One lab at a time
Confirm to end all existing labs and start this one