Peta dunia

 

EN: Read in English

Dunia K5: Waktu Puncak

Tangga nyahpepijat

Anda akan belajar: cara tenang, langkah demi langkah, untuk cari kenapa pod tak berfungsi.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Kubernetes 1.37 pada 31 Okt 2026

Masalahnya

Anda di sini: kluster kind-dev namespace default
Dua pod menu, kedua-duanya Running, tapi READY tunjuk 0/1 untuk setiap satu. Output terminal: $ kubectl get pods NAME READY STATUS RESTARTS AGE menu-69f7b954d7-fkv44 0/1 Running 0 32s menu-69f7b954d7-pswnv 0/1 Running 0 32s

Kedua-dua pod (dulang) menu kata Running. Tapi READY kata 0/1. Pelanggan tak dapat apa-apa. Nak mula dari mana?

Tengok

Jangan teka. Panjat tangga nyahpepijat (debug ladder): Naik satu anak tangga setiap kali: get, describe, logs, events, exec, debug., satu anak tangga setiap kali. Setiap anak tangga tunjuk lebih sedikit. Susun anak tangga, dari bawah.

Anak tangga paling bawah di atas. Susun ikut turutan. Guna anak panah, atau seret.

  • describe: apa pod itu kata tentang dirinya?
  • debug: bawa kotak alat sendiri
  • get: apa statusnya?
  • logs: apa yang aplikasi cetak?
  • exec: cuba dari dalam pod
  • events: apa yang Kubernetes tampal?

Cuba

Anak tangga 1 kata 0/1. Sekarang anak tangga 2: describe pod menu. Baca Events di bahagian bawah.

Anda di sini: kluster kind-dev namespace default
Gerai: 3. Dulang: 2 (0 sedia). Menunggu gerai: 0.
  • menu0/2 sedia tiada dulang sedia
dev-control-planeBukaPengurus

Tiada dulang di sini.

dev-workerBuka
  • menu·fkv44Running
dev-worker2Buka
  • menu·pswnvRunning
Masa: +0s (dipercepat)

Semak

Events kata: Readiness probe failed: HTTP probe failed with statuscode: 404. Apa maksudnya?

Pilih satu jawapan.

Tengok

Anda di sini: kluster kind-dev namespace default
Log tunjuk kube-probe minta GET /ready dan dapat 404. Dari dalam pod, wget localhost/ready juga dapat 404 Not Found. Output terminal: $ kubectl logs menu-69f7b954d7-fkv44 --tail=2 10.244.1.1 - - [31/Oct/2026:01:00:24 +0000] "GET /ready HTTP/1.1" 404 153 "-" "kube-probe/1.37" "-" 10.244.1.1 - - [31/Oct/2026:01:00:29 +0000] "GET /ready HTTP/1.1" 404 153 "-" "kube-probe/1.37" "-" $ kubectl exec menu-69f7b954d7-fkv44 -- wget -qO- localhost/ready wget: server returned error: HTTP/1.1 404 Not Found command terminated with exit code 1

Anak tangga 3 dan 5 setuju. Log tunjuk probe minta /ready. Dari dalam, /ready pun beri 404. Aplikasi cuma layan /.

Cuba

menu-fixed.yaml semak / pula. Apply fail itu. Tunggu sehingga kedua-dua pod sedia.

Anda di sini: kluster kind-dev namespace default
Gerai: 3. Dulang: 2 (0 sedia). Menunggu gerai: 0.
  • menu0/2 sedia tiada dulang sedia
dev-control-planeBukaPengurus

Tiada dulang di sini.

dev-workerBuka
  • menu·fkv44Running
dev-worker2Buka
  • menu·pswnvRunning
Masa: +0s (dipercepat)

Tengok

Anak tangga teratas: sesetengah image tiada shell dan tiada alat. kubectl debug tambah container kotak alat sementara ke dalam pod. Bina arahannya.

Ketik kepingan ikut turutan yang betul.

…

Anda berjaya!

Kini anda boleh panjat tangga nyahpepijat, bukan meneka.

Nak tahu lebih (pilihan)

kubectl debug node/dev-worker -it --image=busybox:1.37 buka kotak alat pada gerai itu sendiri. Container debug kekal sehingga pod dipadam. Tersekat pada satu masalah? Pusat Bantuan Ship It ada aliran langkah demi langkah.

Latihan sebenar (pilihan): rosakkan probe pada kluster kind, kemudian panjat tangga itu.