Ringkasan
Dalam lab ini, Anda akan menggunakan command line untuk mem-build cluster GKE. Anda memeriksa file kubeconfig, dan Anda menggunakan kubectl untuk memanipulasi cluster.
Tujuan
Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:
- Menggunakan
kubectl untuk membangun dan memanipulasi cluster GKE
- Menggunakan
kubectl dan file konfigurasi untuk men-deploy Pod
- Menggunakan Container Registry untuk menyimpan dan men-deploy container
Penyiapan lab
Mengakses lab Anda
Untuk setiap lab, Anda akan memperoleh project Google Cloud baru serta serangkaian resource selama jangka waktu tertentu, tanpa biaya.
-
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 yang memuat sebagai 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 melihat menu yang berisi daftar produk dan layanan Google Cloud, klik Navigation menu di kiri atas, atau ketik nama layanan atau produk di kolom Search.
Setelah Anda menyelesaikan langkah login awal, dasbor project akan muncul.

Buka Cloud Shell
Anda akan melakukan sebagian besar pekerjaan di Cloud Shell. Cloud Shell adalah lingkungan command line yang dijalankan di Google Cloud. Virtual machine berbasis Debian ini dilengkapi dengan semua alat pengelolaan yang Anda perlukan (seperti docker, gcloud,gsutil, dan kubectl) serta menyediakan direktori beranda persisten sebesar 5 GB.
- Di kolom judul Konsol Google Cloud, klik Activate Cloud Shell (
).
- Klik Continue.
Setelah penyediaan selesai, perintah Cloud Shell akan muncul:

Tugas 1. Men-deploy cluster GKE
Dalam tugas ini, Anda akan menggunakan Cloud Shell untuk men-deploy cluster GKE.
- Di Cloud Shell, ketik perintah berikut untuk menetapkan variabel lingkungan untuk nama cluster dan zona:
export my_region={{{project_0.default_region|Region}}}
export my_cluster=autopilot-cluster-1
- Di Cloud Shell, ketik perintah berikut untuk membuat cluster Kubernetes. Jika diminta, klik Authorize:
gcloud container clusters create-auto $my_cluster --region $my_region
Bentuk perintah ini menetapkan sebagian besar opsi ke defaultnya. Untuk melihat seluruh rangkaian opsi yang memungkinkan, buka referensi membuat cluster container gcloud.
Anda akan melihat sejumlah peringatan yang menandai perubahan pada setelan cluster GKE default yang diperkenalkan saat versi Kubernetes yang lebih baru diadopsi oleh GKE.
Catatan: Anda perlu menunggu beberapa menit hingga deployment cluster selesai.
Setelah deployment selesai, halaman Kubernetes Engine > Clusters di konsol Google Cloud akan terlihat seperti screenshot berikut:

Klik Periksa progres saya untuk memverifikasi tujuan.
Men-deploy cluster GKE
Tugas 2. Menghubungkan ke cluster GKE
Dalam tugas ini, Anda akan menggunakan Cloud Shell untuk mengautentikasi cluster GKE, lalu memeriksa file konfigurasi kubectl.
Autentikasi di Kubernetes berlaku baik untuk berkomunikasi dengan cluster dari klien eksternal melalui kube-APIserver yang dijalankan di master maupun untuk komunikasi container cluster di dalam cluster atau secara eksternal.
Di Kubernetes, autentikasi dapat dilakukan dalam beberapa bentuk. Untuk GKE, autentikasi biasanya ditangani dengan token OAuth2 dan dapat dikelola melalui Cloud Identity and Access Management di seluruh project secara keseluruhan dan, secara opsional, melalui role-based access control yang dapat ditentukan dan dikonfigurasi dalam setiap cluster.
Di GKE, container cluster dapat menggunakan akun layanan untuk melakukan autentikasi dan mengakses resource eksternal.
Catatan: Untuk Kubernetes versi sebelum 1.12, sertifikat klien dan autentikasi dasar tidak dinonaktifkan secara default. Metode autentikasi ini memiliki keamanan yang lebih rendah dan harus dinonaktifkan untuk meningkatkan keamanan cluster. (Untuk versi 1.12 dan yang lebih baru, kedua metode ini dinonaktifkan secara default.)
- Untuk membuat file kubeconfig dengan kredensial pengguna saat ini (untuk mengizinkan autentikasi) dan memberikan detail endpoint untuk cluster tertentu (untuk mengizinkan komunikasi dengan cluster tersebut melalui alat command line
kubectl), jalankan perintah berikut:
gcloud container clusters get-credentials $my_cluster --region $my_region
Perintah ini akan membuat direktori .kube di direktori beranda Anda jika belum ada. Di direktori .kube, perintah ini akan membuat file bernama config jika belum ada, yang digunakan untuk menyimpan informasi autentikasi dan konfigurasi. File konfigurasi biasanya disebut file kubeconfig.
- Buka file kubeconfig dengan editor teks nano:
nano ~/.kube/config
Anda sekarang dapat memeriksa semua data konfigurasi endpoint dan autentikasi yang disimpan dalam file. Informasi untuk cluster akan muncul. Informasi ini diisi selama pembuatan cluster.
- Tekan CTRL+X untuk keluar dari editor teks nano.
Catatan: File kubeconfig dapat berisi informasi untuk banyak cluster. Konteks yang saat ini aktif (cluster yang dimanipulasi oleh perintah kubectl) ditunjukkan oleh properti current-context.
Anda tidak perlu menjalankan perintah gcloud container clusters get-credentials untuk mengisi file kubeconfig bagi cluster yang Anda buat dalam konteks yang sama (pengguna yang sama di lingkungan yang sama), karena detail cluster tersebut sudah diisi saat cluster dibuat. Namun, Anda harus menjalankan perintah untuk terhubung ke cluster yang dibuat oleh pengguna lain atau di lingkungan lain. Perintah ini juga merupakan cara mudah untuk mengalihkan konteks aktif ke cluster lain.
Tugas 3. Menggunakan kubectl untuk memeriksa cluster GKE
Dalam tugas ini, Anda akan menggunakan Cloud Shell dan kubectl untuk memeriksa cluster GKE.
Setelah file kubeconfig diisi dan konteks aktif ditetapkan ke cluster tertentu, Anda dapat menggunakan alat command line kubectl untuk menjalankan perintah terhadap cluster. Sebagian besar perintah tersebut pada akhirnya memicu panggilan REST API terhadap server API master, yang memicu tindakan terkait.
- Di Cloud Shell, jalankan perintah berikut untuk mencetak konten file kubeconfig:
kubectl config view
Data sertifikat sensitif diganti dengan DATA+OMITTED.
- Di Cloud Shell, jalankan perintah berikut untuk mencetak informasi cluster untuk konteks aktif:
kubectl cluster-info
Output menjelaskan cluster konteks aktif.
Output:
Kubernetes control plane is running at https://34.133.211.75
GLBCDefaultBackend is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/default-http-backend:http/proxy
KubeDNS is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
KubeDNSUpstream is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/kube-dns-upstream:dns/proxy
Metrics-server is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
- Di Cloud Shell, jalankan perintah berikut untuk mencetak konteks aktif:
kubectl config current-context
Baris output menunjukkan cluster konteks aktif.
Output:
gke_{{{project_0.project_id|Project_ID}}}_{{{project_0.default_region|Region}}}_autopilot-cluster-1
PROJECT_ID adalah project ID Anda. Informasi ini sama dengan informasi di properti current-context file kubeconfig.
- Di Cloud Shell, jalankan perintah berikut untuk mencetak beberapa detail untuk semua konteks cluster dalam file kubeconfig:
kubectl config get-contexts
Beberapa baris output menunjukkan detail tentang cluster yang Anda buat dan menunjukkan cluster konteks aktif. Secara umum, perintah ini mencantumkan beberapa detail cluster yang ada dalam file kubeconfig pengguna, termasuk cluster lain yang dibuat oleh pengguna serta cluster yang ditambahkan secara manual ke file kubeconfig.
- Di Cloud Shell, jalankan perintah berikut untuk mengubah konteks aktif:
kubectl config use-context gke_${DEVSHELL_PROJECT_ID}_{{{project_0.default_region|Region}}}_autopilot-cluster-1
Dalam hal ini, Anda hanya memiliki satu cluster, sehingga perintah ini tidak mengubah apa pun.
Namun, pada masa mendatang Anda dapat memiliki lebih dari satu cluster dalam sebuah project. Anda dapat menggunakan pendekatan ini untuk mengganti konteks aktif saat file kubeconfig Anda sudah diisi dengan kredensial dan konfigurasi untuk beberapa cluster. Pendekatan ini memerlukan nama lengkap cluster, yang mencakup awalan gke, project ID, lokasi, dan nama tampilan, yang semuanya disambungkan dengan garis bawah.
- Di Cloud Shell, jalankan perintah berikut untuk mengaktifkan pelengkapan otomatis bash untuk
kubectl:
source <(kubectl completion bash)
Perintah ini tidak menghasilkan output.
- Di Cloud Shell, ketik kubectl, diikuti dengan spasi, lalu tekan tombol Tab dua kali.
Shell akan menampilkan semua kemungkinan perintah:

- Di Cloud Shell, ketik kubectl co, lalu tekan tombol Tab dua kali.
Shell akan menampilkan semua perintah yang dimulai dengan "co" (atau teks lain yang Anda ketik).

Tugas 4. Men-deploy Pod ke cluster GKE
Dalam tugas ini, Anda akan menggunakan Cloud Shell untuk men-deploy Pod ke cluster GKE.
Menggunakan kubectl untuk men-deploy Pod ke GKE
Kubernetes memperkenalkan abstraksi Pod untuk mengelompokkan satu atau beberapa container terkait sebagai satu entitas yang akan dijadwalkan dan di-deploy sebagai satu unit di node yang sama. Anda dapat men-deploy Pod yang merupakan satu container dari satu image container. Atau, Pod dapat berisi banyak container dari banyak image container.
- Di Cloud Shell, jalankan perintah berikut untuk men-deploy nginx sebagai Pod bernama nginx-1:
kubectl create deployment --image nginx nginx-1
Perintah ini membuat Pod bernama nginx dengan container yang menjalankan image nginx. Jika repositori tidak ditentukan, perilaku defaultnya adalah mencoba menemukan image, baik secara lokal maupun di registry publik Docker. Dalam hal ini, image diambil dari registry publik Docker.
- Di Cloud Shell, jalankan perintah berikut untuk melihat semua Pod yang di-deploy di cluster konteks aktif:
kubectl get pods
Output akan terlihat seperti contoh berikut, tetapi dengan nama Pod yang sedikit berbeda.
Catatan:Jika Anda melihat pesan bahwa server saat ini tidak dapat menangani permintaan, tunggu hingga deployment selesai dan siap.
Output:
NAME READY STATUS RESTARTS AGE
nginx-1-74c7bbdb84-nvwsc 1/1 Running 0 2m52s
- Di Cloud Shell, jalankan perintah berikut untuk melihat penggunaan resource di seluruh node cluster:
kubectl top node
Output-nya akan terlihat seperti contoh.
Output:
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
gk3-autopilot-cluster-1-pool-2-7246ae0e-4q7s 1971m 102% 1803Mi 30%
Catatan: Jika Anda menerima error sebagai metrics not available yet, jalankan kembali perintah di atas.
Perintah top lainnya (kubectl top pods) menampilkan informasi serupa di semua Pod yang di-deploy dalam cluster.
- Sekarang Anda akan memasukkan nama Pod ke dalam variabel yang akan kita gunakan di lab ini. Menggunakan variabel seperti ini dapat membantu Anda meminimalkan kesalahan manusia saat mengetik nama yang panjang. Anda harus mengetik nama unik Pod Anda sebagai pengganti
[your_pod_name]:
export my_nginx_pod=[your_pod_name]
Contoh:
export my_nginx_pod=nginx-1-74c7bbdb84-nvwsc
- Pastikan Anda telah berhasil menyetel variabel lingkungan dengan membuat shell mengembalikan nilai tersebut kepada Anda:
echo $my_nginx_pod
Output:
nginx-1-74c7bbdb84-nvwsc
- Di Cloud Shell, jalankan perintah berikut untuk melihat detail lengkap Pod yang baru saja Anda buat:
kubectl describe pod $my_nginx_pod
Output-nya akan terlihat seperti contoh. Detail Pod, serta status dan kondisinya serta peristiwa dalam siklus prosesnya, ditampilkan.
Output:
Image: nginx
Image: nginx
Image: nginx
Image ID: docker.io/library/nginx@sha256:480868e8c8c797794257e2abd88d0f9a8809b2fe956cbfbc05dcc0bca1f7cd43
Port:
Host Port:
State: Running
Started: Wed, 17 May 2023 10:47:04 +0000
Ready: True
Restart Count: 0
Limits:
cpu: 500m
ephemeral-storage: 1Gi
memory: 2Gi
Requests:
cpu: 500m
ephemeral-storage: 1Gi
memory: 2Gi
Environment:
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-ksxxr (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-ksxxr:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional:
DownwardAPI: true
QoS Class: Guaranteed
Node-Selectors:
Tolerations: kubernetes.io/arch=amd64:NoSchedule
node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 5m42s gke.io/optimize-utilization-scheduler 0/2 nodes are available: 2 Insufficient cpu, 2 Insufficient memory. preemption: 0/2 nodes are available: 2 No preemption victims found for incoming pod.
Normal Scheduled 4m15s gke.io/optimize-utilization-scheduler Successfully assigned default/nginx-1-6b7bff9fc7-t7fzk to gk3-autopilot-cluster-1-pool-1-242a3a6a-j9rh
Normal TriggeredScaleUp 5m34s cluster-autoscaler pod triggered scale-up: [{https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-02-92c260add90a/zones/{{{project_0.default_zone|Zone}}}/instanceGroups/gk3-autopilot-cluster-1-pool-1-242a3a6a-grp 0->1 (max: 1000)}]
Normal Pulling 3m30s kubelet Pulling image "nginx"
Normal Pulled 3m16s kubelet Successfully pulled image "nginx" in 13.843394735s (13.843643782s including waiting)
Normal Created 3m16s kubelet Created container nginx
Normal Started 3m15s kubelet Started container nginx
Memasukkan file ke dalam container
Untuk dapat menyajikan konten statis melalui server web nginx, Anda harus membuat dan menempatkan file ke dalam container.
- Di Cloud Shell, ketik perintah berikut untuk membuka file bernama
test.html di editor teks nano:
nano ~/test.html
- Tambahkan teks (skrip shell) berikut ke file
test.html yang kosong:
Hello world
-
Tekan CTRL+X, lalu tekan Y dan enter untuk menyimpan file dan keluar dari editor nano.
-
Di Cloud Shell, jalankan perintah berikut untuk menempatkan file ke lokasi yang sesuai dalam container nginx di Pod nginx agar dapat disajikan secara statis:
kubectl cp ~/test.html $my_nginx_pod:/usr/share/nginx/html/test.html
Perintah ini menyalin file test.html dari direktori beranda lokal ke direktori /usr/share/nginx/html pada container pertama di Pod nginx. Anda dapat menentukan container lain dalam Pod multi-container menggunakan opsi -c, diikuti dengan nama container.
Mengekspos Pod untuk pengujian
Layanan diperlukan untuk mengekspos Pod ke klien di luar cluster. Layanan dibahas di bagian lain dalam kursus ini dan digunakan secara ekstensif di lab lain. Anda dapat menggunakan perintah sederhana untuk membuat layanan guna mengekspos Pod.
- Di Cloud Shell, jalankan perintah berikut untuk membuat layanan yang mengekspos Pod nginx kita secara eksternal:
kubectl expose pod $my_nginx_pod --port 80 --type LoadBalancer
Perintah ini membuat layanan LoadBalancer, yang memungkinkan Pod nginx dapat diakses dari alamat internet di luar cluster.
- Di Cloud Shell, jalankan perintah berikut untuk melihat detail tentang layanan di cluster:
kubectl get services
Output-nya akan terlihat seperti contoh. Anda akan menggunakan alamat IP eksternal pada langkah berikutnya.
Catatan: Anda mungkin harus mengulangi perintah beberapa kali sebelum IP eksternal diisi oleh layanan baru.
Output:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.11.240.1 443/TCP 1h
nginx-1-7...wsc LoadBalancer 10.11.240.87 80:31695/TCP 3s
Layanan Kubernetes merupakan salah satu layanan default yang dibuat atau digunakan oleh cluster. Layanan nginx yang Anda buat juga ditampilkan.
Anda mungkin perlu menjalankan kembali perintah ini beberapa kali sebelum alamat IP eksternal ditampilkan.
Output:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.11.240.1 443/TCP 1h
nginx-1-7...wsc LoadBalancer 10.11.240.87 104.154.177.46 80:31695/TCP 1m
Klik Periksa progres saya untuk memverifikasi tujuan.
Men-deploy Pod ke cluster GKE
- Di Cloud Shell, jalankan perintah berikut untuk memverifikasi bahwa container nginx menyajikan file HTML statis yang Anda salin.
Anda mengganti [EXTERNAL_IP] dengan alamat IP eksternal layanan yang Anda dapatkan dari output langkah sebelumnya.
curl http://[EXTERNAL_IP]/test.html
Isi file akan muncul di output. Anda dapat membuka alamat yang sama di browser untuk melihat file yang dirender sebagai HTML.
Contoh:
Hello world
- Di Cloud Shell, jalankan perintah berikut untuk melihat resource yang digunakan oleh Pod nginx:
kubectl top pods
Output:
NAME CPU(cores) MEMORY(bytes)
nginx-1-74c7bbdb84-nvwsc 0m 2Mi
Tugas 5. Memeriksa Pod GKE
Dalam tugas ini, Anda akan terhubung ke Pod untuk menyesuaikan setelan, mengedit file, dan membuat perubahan langsung lainnya pada Pod.
Catatan: Gunakan proses ini hanya saat memecahkan masalah atau bereksperimen. Karena perubahan yang Anda buat tidak dilakukan pada image sumber Pod, perubahan tersebut tidak akan terjadi di replika mana pun.
Menyiapkan lingkungan
Cara yang lebih disukai untuk men-deploy Pod dan resource lainnya ke Kubernetes adalah melalui file konfigurasi, yang terkadang disebut file manifes. File konfigurasi biasanya ditulis dalam sintaksis YAML, yang menentukan detail resource. Dengan file konfigurasi, Anda dapat menentukan opsi kompleks secara lebih mudah daripada dengan baris panjang argumen command line.
Sintaksis YAML mirip dengan, tetapi lebih ringkas daripada, sintaksis JSON dan memungkinkan jenis penataan hierarkis objek dan properti yang sama. Repositori sumber untuk lab ini berisi file YAML sampel yang telah disiapkan untuk Anda.
- Di Cloud Shell, masukkan perintah berikut untuk membuat clone repositori ke Cloud Shell lab:
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
- Buat link simbolis sebagai pintasan ke direktori kerja:
ln -s ~/training-data-analyst/courses/ak8s/v1.1 ~/ak8s
- Ubah ke direktori yang berisi file sampel untuk lab ini:
cd ~/ak8s/GKE_Shell/
Contoh file YAML manifes untuk Pod bernama new-nginx-pod.yaml telah disediakan untuk Anda:
apiVersion: v1
kind: Pod
metadata:
name: new-nginx
labels:
name: new-nginx
spec:
containers:
- name: new-nginx
image: nginx
ports:
- containerPort: 80
- Untuk men-deploy manifes, jalankan perintah berikut:
kubectl apply -f ./new-nginx-pod.yaml
Catatan: Anda mungkin perlu menunggu beberapa menit hingga deployment pod selesai dan status berubah menjadi berjalan.
Klik Periksa progres saya untuk memverifikasi tujuan.
Men-deploy pod baru menggunakan file Yaml
- Untuk melihat daftar Pod, jalankan perintah berikut:
kubectl get pods
Output-nya akan terlihat seperti contoh.
Output:
NAME READY STATUS RESTARTS AGE
new-nginx 1/1 Running 0 9s
nginx-1-74c7bbdb84-nvwsc 1/1 Running 0 55m
Anda dapat melihat Pod nginx baru serta Pod yang kita buat sebelumnya di lab.
Menggunakan pengalihan shell untuk terhubung ke Pod
Beberapa image container menyertakan lingkungan shell yang dapat Anda luncurkan. Lingkungan shell ini mungkin lebih nyaman daripada menjalankan perintah satu per satu dengan kubectl. Misalnya, image nginx menyertakan shell bash. Dalam tugas ini, Anda akan menggunakan pengalihan shell untuk terhubung ke shell bash di pod nginx baru guna melakukan serangkaian tindakan.
- Di Cloud Shell, jalankan perintah berikut untuk memulai shell bash interaktif di container nginx:
kubectl exec -it new-nginx -- /bin/bash
Prompt shell baru akan muncul.
Output:
root@new-nginx:/#
Anda telah memulai shell bash interaktif di container Pod new-nginx. Jika Pod memiliki beberapa container, Anda dapat menentukan masing-masing container tersebut berdasarkan namanya dengan opsi -c.
Karena image container nginx tidak memiliki alat pengeditan teks secara default, Anda perlu menginstal alat pengeditan teks tersebut.
- Di Cloud Shell, pada shell bash nginx, jalankan perintah berikut untuk menginstal editor teks nano:
apt-get update
apt-get install nano
Saat muncul perintah Do you want to continue (Y/n), tekan Y untuk mengonfirmasi.
Anda perlu membuat file test.html di direktori yang disajikan statis pada container nginx.
- Di Cloud Shell, pada shell bash nginx, jalankan perintah berikut untuk beralih ke direktori file statis dan membuat file
test.html:
cd /usr/share/nginx/html
nano test.html
- Di Cloud Shell, dalam sesi nano shell bash nginx, ketik teks berikut:
Hello world
- Tekan CTRL+X, lalu tekan Y dan enter untuk menyimpan file dan keluar dari editor nano.
- Di Cloud Shell, pada shell bash nginx, jalankan perintah berikut untuk keluar dari shell bash nginx:
exit
Untuk terhubung ke dan menguji container nginx yang telah diubah (dengan file HTML statis baru), Anda dapat membuat layanan. Cara yang lebih mudah adalah menggunakan penerusan port untuk terhubung ke Pod secara langsung dari Cloud Shell.
- Di Cloud Shell, jalankan perintah berikut untuk menyiapkan penerusan port dari Cloud Shell ke Pod nginx (dari port 10081 VM Cloud Shell ke port 80 container nginx):
kubectl port-forward new-nginx 10081:80
Output-nya akan terlihat seperti contoh.
Output:
Forwarding from 127.0.0.1:10081 -> 80
Forwarding from [::1]:10081 -> 80
Ini adalah proses latar depan, jadi Anda perlu membuka instance Cloud Shell lain untuk menguji.
- Di panel menu Cloud Shell, klik ikon tanda plus (+) untuk memulai sesi Cloud Shell baru.

Sesi Cloud Shell kedua akan muncul di jendela Cloud Shell. Anda dapat beralih antar-sesi dengan mengklik judul di panel menu.
- Di sesi Cloud Shell kedua, jalankan perintah berikut untuk menguji container nginx yang telah diubah melalui penerusan port:
curl http://127.0.0.1:10081/test.html
Teks HTML yang Anda tempatkan dalam file test.html akan ditampilkan.
Hello world
Melihat log Pod
- Di panel menu Cloud Shell, klik ikon tanda plus (+) untuk memulai sesi Cloud Shell baru lainnya.
Sesi Cloud Shell ketiga akan muncul di jendela Cloud Shell. Seperti sebelumnya, Anda dapat beralih sesi dengan mengkliknya di panel menu.
- Di jendela Cloud Shell ketiga, jalankan perintah berikut untuk menampilkan log dan melakukan streaming log baru saat log tersebut tiba (dan juga menyertakan stempel waktu) untuk Pod nginx yang baru:
kubectl logs new-nginx -f --timestamps
- Anda akan melihat log ditampilkan di jendela baru ini.
- Kembali ke jendela Cloud Shell kedua dan jalankan kembali perintah curl untuk menghasilkan beberapa traffic di Pod.
- Tinjau pesan log tambahan saat muncul di jendela Cloud Shell ketiga.

- Tutup jendela Cloud Shell ketiga untuk berhenti menampilkan pesan log.
- Tutup jendela Cloud Shell asli untuk menghentikan proses penerusan port.
Mengakhiri lab Anda
Setelah Anda menyelesaikan lab, klik Akhiri Lab. Google Skills menghapus resource yang telah Anda gunakan dan membersihkan akun.
Anda akan diberi kesempatan untuk menilai pengalaman menggunakan lab. Pilih jumlah bintang yang sesuai, ketik komentar, lalu klik Submit.
Makna jumlah bintang:
- 1 bintang = Sangat tidak puas
- 2 bintang = Tidak puas
- 3 bintang = Netral
- 4 bintang = Puas
- 5 bintang = Sangat puas
Anda dapat menutup kotak dialog jika tidak ingin memberikan masukan.
Untuk masukan, saran, atau koreksi, gunakan tab Support.
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.