Peta dunia

 

EN: Read in English

Dunia K2: Dulang & Pesanan

Rolling update dan rollout undo

Anda akan belajar: hantar versi baharu tanpa henti, dan undur versi rosak dengan pantas.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Kubernetes 1.37 pada 31 Okt 2026

Masalahnya

Waktu puncak tengah hari. Menu baharu, nginx 1.30, sudah siap. Kalau anda tutup gerai untuk tukar dulang, pelanggan lapar akan pergi. Apa yang anda mahu?

Pilih satu jawapan.

Tengok

Anda di sini: kluster kind-dev namespace default
Selepas set image, satu pod baharu dicipta sementara 3 pod lama terus berjalan. Bila rollout tamat, ReplicaSet lama ada 0 pod dan yang baharu ada 3. Output terminal: $ kubectl set image deployment/shop web=nginx:1.30-alpine deployment.apps/shop image updated $ sleep 3 $ kubectl get pods NAME READY STATUS RESTARTS AGE shop-747bf9cf8-55jjq 1/1 Running 0 25s shop-747bf9cf8-5kcvh 1/1 Running 0 25s shop-747bf9cf8-z89h7 1/1 Running 0 25s shop-7786946f68-dhwxr 0/1 ContainerCreating 0 3s $ kubectl rollout status deployment/shop --timeout=180s Waiting for deployment "shop" rollout to finish: 1 out of 3 new replicas have been updated... Waiting for deployment "shop" rollout to finish: 2 out of 3 new replicas have been updated... Waiting for deployment "shop" rollout to finish: 1 old replicas are pending termination... deployment "shop" successfully rolled out $ kubectl get rs NAME DESIRED CURRENT READY AGE shop-747bf9cf8 0 0 0 49s shop-7786946f68 3 3 3 27s

kubectl set image tulis image baharu dalam pesanan. rolling update: Tukar salinan satu demi satu, macam tukar tukang masak seorang demi seorang. Gerai tak pernah tutup. bermula: satu dulang baharu masuk, satu dulang lama keluar, berulang-ulang.

Cuba

Giliran anda. Hantar nginx 1.30 ke kedai. Kemudian tunggu rollout tamat.

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·55jjq
  • shop·z89h7
dev-worker2Buka
  • shop·5kcvh
Masa: +0s (dipercepat)

Tengok

Anda di sini: kluster kind-dev namespace default
rollout history senaraikan revision 1 dan revision 2. Output terminal: $ kubectl set image deployment/shop web=nginx:1.30-alpine deployment.apps/shop image updated $ kubectl rollout status deployment/shop --timeout=180s Waiting for deployment "shop" rollout to finish: 1 out of 3 new replicas have been updated... Waiting for deployment "shop" rollout to finish: 2 out of 3 new replicas have been updated... Waiting for deployment "shop" rollout to finish: 1 old replicas are pending termination... deployment "shop" successfully rolled out $ kubectl rollout history deployment/shop deployment.apps/shop REVISION CHANGE-CAUSE 1 <none> 2 <none>

Setiap templat baharu dapat nombor revision: Versi bernombor templat pod sebuah Deployment. rollout undo kembali kepadanya. (semakan). ReplicaSet lama kekal, kosong, supaya mudah untuk kembali.

Teka

Rakan sepasukan hantar nginx:1.299. Tag itu tak wujud. Apa jadi pada 3 dulang lama?

Pilih satu jawapan.

Cuba

Ia berlaku. Dulang baharu tunjuk ErrImagePull, kemudian ImagePullBackOff. Maksudnya: image itu tak boleh diambil. Undur rollout.

Anda di sini: kluster kind-dev namespace default

Mahu 3. Nampak 4. Buang 1.

Mahu3tertulis pada pesanan shop
Nampak43 sedia
Buat Buang 1Kekurangan dibaiki: 0
Gerai: 3. Dulang: 4 (3 sedia). Menunggu gerai: 0.
dev-control-planeBukaPengurus

Tiada dulang di sini.

dev-workerBuka
  • shop·2g4l2
  • shop·v62jm
dev-worker2Buka
  • shop·fxdpqImagePullBackOff
  • shop·57nrg
Masa: +0s (dipercepat)

Semak

Bina arahan yang kembali tepat ke revision 1.

Ketik kepingan ikut turutan yang betul.

…

Anda berjaya!

Kini anda boleh hantar versi baharu tanpa henti, dan undur versi yang rosak.

Nak tahu lebih (pilihan)

Selepas rollout undo, kubectl cetak Warning: kluster berubah, tapi fail anda tidak. Baiki fail dalam Git juga, atau apply seterusnya bawa balik bug itu. Secara lalai, rollout tambah sehingga 25% dulang lebih dan kurangkan paling banyak 25%.

Latihan sebenar (pilihan): dalam kluster yang boleh dibuang, letak image rosak, kemudian undur.