Peta dunia

 

EN: Read in English

Dunia K1: Medan Selera

Mahu 3, Nampak 2

Anda akan belajar: cara Kubernetes pulihkan dirinya sendiri.

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
Medan selera waktu malam. Gerai dev-worker padam: statusnya NotReady. Dua dulang ada di atasnya. Output terminal: $ kubectl get nodes NAME STATUS ROLES AGE VERSION dev-control-plane Ready control-plane 6m22s v1.37.0 dev-worker NotReady <none> 6m22s v1.37.0 dev-worker2 Ready <none> 6m22s v1.37.0

Server aplikasi anda mati pukul 3 pagi. Semua orang tidur. Siapa nak baiki?

Tengok

Papan pengurus tulis Mahu 3: pesanan untuk shop minta 3 dulang.

Mahu 3. Nampak 3. Semua okey.

Mahu3tertulis pada pesanan shop
Nampak33 sedia
Buat Semua okeyKekurangan dibaiki: 0
Gerai: 3. Dulang: 3 (3 sedia). Menunggu gerai: 0.
dev-workerBuka
  • shop·d6b6z
  • shop·zbn9j
dev-worker2Buka
  • shop·gnjxm

Anda beritahu Kubernetes apa yang anda mahu: 3 salinan, sentiasa. Ini dipanggil desired state: Keadaan yang anda mahu; Kubernetes sentiasa kejar keadaan ini..

Tengok

Anda di sini: kluster kind-dev namespace default
kubectl get deployment shop tunjuk READY 3/3. Tiga dulang hijau di atas gerai. Output terminal: $ kubectl get deployment shop NAME READY UP-TO-DATE AVAILABLE AGE shop 3/3 3 3 22s

controller (pengawal) (controller): Pengurus yang periksa berulang kali: mahu 3, nampak 2, buat 1 lagi. periksa berulang kali. Mahu 3. Nampak 3. Semua okey.

Teka

Satu gerai tutup, dan satu dulang hilang. Apa jadi lepas ni?

Pilih satu jawapan.

Tengok

Anda di sini: kluster kind-dev namespace default
Satu pod shop dipadam. Serta-merta pod baharu dengan nama baharu muncul, jadi ada 3 semula. Output terminal: $ kubectl delete pod shop-747bf9cf8-d6b6z pod "shop-747bf9cf8-d6b6z" deleted from default namespace $ kubectl get pods NAME READY STATUS RESTARTS AGE shop-747bf9cf8-gnjxm 1/1 Running 0 24s shop-747bf9cf8-wrfvr 0/1 Running 0 2s shop-747bf9cf8-zbn9j 1/1 Running 0 24s

Mahu 3. Nampak 2. Buat 1 lagi. Itu sahaja rahsianya.

Cuba

Tekan “delete” pada mana-mana pod (dulang). Lihat apa Kubernetes buat.

Papan tunjuk Mahu 3, Nampak 3. Padam satu pod: Nampak 2, kemudian Buat 1 lagi. Kiraan kekurangan dibaiki naik.

Mahu 3. Nampak 3. Semua okey.

Mahu3tertulis pada pesanan shop
Nampak33 sedia
Buat Semua okeyKekurangan dibaiki: 0
Gerai: 3. Dulang: 3 (3 sedia). Menunggu gerai: 0.
dev-workerBuka
  • shop·d6b6z
  • shop·zbn9j
dev-worker2Buka
  • shop·gnjxm

Cuba

Sekarang tukar pesanan. Taip kubectl scale deployment shop --replicas=5.

Anda di sini: kluster kind-dev namespace default

Mahu 3. Nampak 3. Semua okey.

Mahu3tertulis pada pesanan shop
Nampak33 sedia
Buat Semua okeyKekurangan dibaiki: 0
Gerai: 3. Dulang: 3 (3 sedia). Menunggu gerai: 0.
dev-control-planeBukaPengurus

Tiada dulang di sini.

dev-workerBuka
  • shop·d6b6z
  • shop·zbn9j
dev-worker2Buka
  • shop·gnjxm
Masa: +0s (dipercepat)

Semak

Tekan pod yang baharu.

0 daripada 1 dijumpai

Pod baharu ada nama baharu. Kubernetes ganti pod, bukan baiki pod lama.

Anda berjaya!

Kini anda boleh terangkan cara Kubernetes pulihkan dirinya.

Nak tahu lebih (pilihan)

Gelung ini dipanggil reconciliation (penyelarasan) (reconciliation): Gelung yang terus membetulkan keadaan sebenar sehingga sama dengan papan pesanan.. Jika container sahaja yang crash, kubelet hidupkan semula dalam pod yang sama. Lihat lajur RESTARTS. Bila node mati, Kubernetes tunggu lebih kurang 5 minit. Kemudian ia ganti pod-podnya.

Anda di sini: kluster kind-dev namespace default
Satu pod dipadam. kubectl get pods -w memerhati: pod lama tunjuk Terminating, pod baharu jadi Pending, kemudian Running, kemudian sedia 1/1. Output terminal: $ kubectl delete pod shop-747bf9cf8-d6b6z --wait=false pod "shop-747bf9cf8-d6b6z" deleted from default namespace $ kubectl get pods -w NAME READY STATUS RESTARTS AGE shop-747bf9cf8-d6b6z 1/1 Terminating 0 22s shop-747bf9cf8-gnjxm 1/1 Running 0 22s shop-747bf9cf8-wrfvr 0/1 Pending 0 0s shop-747bf9cf8-zbn9j 1/1 Running 0 22s shop-747bf9cf8-wrfvr 0/1 Running 0 1s shop-747bf9cf8-d6b6z 1/1 Terminating 0 23s shop-747bf9cf8-wrfvr 1/1 Running 0 6s ^C

Misi sebenar

  1. kubectl create deployment shop --image=nginx:1.29-alpine --replicas=3
  2. kubectl get pods
  3. kubectl delete pod <nama pod shop>
  4. kubectl get pods

0 daripada 4 langkah siap · Tanda anda disimpan.