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
kind-dev namespace defaultkubectl 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.
kind-dev namespace defaultMahu 3. Nampak 3. Semua okey.
dev-control-planeBukaPengurusTiada dulang di sini.
dev-workerBuka- shop·55jjq
- shop·z89h7
dev-worker2Buka- shop·5kcvh
Petunjuk
kubectl set image deployment/shop web=nginx:1.30-alpine, kemudian kubectl rollout status deployment/shop.Tengok
kind-dev namespace defaultSetiap 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.
kind-dev namespace defaultMahu 3. Nampak 4. Buang 1.
dev-control-planeBukaPengurusTiada dulang di sini.
dev-workerBuka- shop·2g4l2
- shop·v62jm
dev-worker2Buka- shop·fxdpqImagePullBackOff
- shop·57nrg
Petunjuk
kubectl rollout undo deployment/shop kembali satu revision.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.
English
Lunch rush. The new menu, nginx 1.30, is ready. If you close the stall to swap trays, hungry customers walk away. What do you want?
kubectl set image writes a new image into the order. A rolling update starts. One new tray comes in, one old tray leaves, again and again.
Your turn. Ship nginx 1.30 to the shop. Then wait for the rollout to finish.
kubectl set image deployment/shop web=nginx:1.30-alpine, then kubectl rollout status deployment/shop.Each new template gets a revision number. The old ReplicaSet stays, empty, so going back is quick.
A teammate ships nginx:1.299. That tag does not exist. What happens to the 3 old trays?
It happened. The new tray shows ErrImagePull, then ImagePullBackOff. Plain words: that image cannot be fetched. Undo the rollout.
kubectl rollout undo deployment/shop goes back one revision.Build the command that goes back to revision 1 exactly.
You can now ship a new version with no downtime, and undo a bad one.
Anda dah siapkan ini. Latihan lagi pun bagus!
Dokumentasi rasmi: Kubernetes: Updating a Deployment · kubectl rollout · kubectl set image
Anda dah belajar 25 minit. Rehat sekejap bantu otak anda.
Pecutan selesai! Fokus yang hebat. Regangkan badan seminit?