Deployment: Rollout
Versi Bahasa Indonesia. Baca dalam Bahasa Inggris
Rollout terjadi ketika Deployment atau StatefulSet memperbarui Pod-nya ke versi baru. Kubernetes secara bertahap mengganti Pod lama dengan yang baru, mengikuti strategi yang ditentukan.
- Memastikan Zero Downtime: Pod baru dibuat sebelum Pod lama dihentikan.
- Mendukung Rollback: Dapat kembali ke versi sebelumnya jika diperlukan.
- Pembaruan Terkontrol: Menggunakan strategi untuk membatasi dampak.
Secara default, ketika objek deployment diterapkan, Kubernetes akan melakukan rollout update ke pod yang ada.
Rollout Restart
Kapan pun kita ingin me-restart pod karena image terbaru tersedia atau untuk mengambil konfigurasi terbaru dari ConfigMap atau Secret, kita dapat melakukan rollout restart.
β kubectl rollout restart deployment simple-go
deployment.apps/simple-go restartedDan ketika Anda memeriksa pod segera setelah rollout restart, Anda akan melihat proses rollout. Controller manager akan membuat 1 pod baru dan segera setelah pod baru siap, ia akan mematikan 1 pod lama hingga semua pod baru siap.
β kubectl get pods
NAME READY STATUS RESTARTS AGE
simple-go-764bc77644-grfhg 1/1 Running 0 3h31m
simple-go-764bc77644-snb8n 1/1 Running 0 3h31m
simple-go-7cf4d4d6df-hgjv8 1/1 Running 0 5s
simple-go-7cf4d4d6df-hj7sk 0/1 ContainerCreating 0 2sSeperti yang kita lihat di bawah, setelah beberapa waktu semua pod lama telah digantikan oleh kumpulan pod baru.
β kubectl get pods
NAME READY STATUS RESTARTS AGE
simple-go-7cf4d4d6df-5ck9n 1/1 Running 0 30s
simple-go-7cf4d4d6df-hgjv8 1/1 Running 0 36s
simple-go-7cf4d4d6df-hj7sk 1/1 Running 0 33sRiwayat Rollout
Untuk menampilkan daftar riwayat deployment, kita dapat menggunakan perintah rollout history deployment <name>.
β kubectl rollout history deployment simple-go
deployment.apps/simple-go
REVISION CHANGE-CAUSE
1 <none>
2 <none>
3 <none>Di sini CHANGE-CAUSE kosong karena kita perlu secara eksplisit menentukan pesan di metadata.annotations.
Rollout Undo
rollout undo akan mengembalikan deployment yang ada ke versi sebelumnya.
β kubectl rollout undo deployment simple-goKita juga dapat menentukan revisi berdasarkan riwayat rollout menggunakan --to-revision.
β kubectl rollout undo deployment simple-go --to-revision=2Referensi
- https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#updating-a-deployment
- https://kubernetes.io/docs/reference/kubectl/generated/kubectl_rollout/
- https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
Last updated on