K8S deployment stratergies hay còn gọi là Chiến lược triển khai trên k8s là thuật ngữ quan trọng hay sử dụng. Nhưng mà nói thật là lý thuyết học để phỏng vấn chứ mọi người đều nắm khá chắc khi làm với k8s.
Bảng nội dung
Deployment Stratergies
1. Recreate Deployment
📌 Quy trình:
- Dừng toàn bộ pods cũ ⏩ Tạo mới toàn bộ pods mới.
🛠 Khi nào sử dụng?
- Ứng dụng stateful, nơi downtime là chấp nhận được.
- Cần cập nhật lớn và không thể chạy đồng thời 2 phiên bản.
⚠ Nhược điểm:
- ❌ Có downtime vì toàn bộ ứng dụng sẽ bị dừng trong quá trình cập nhật.
2. Rolling Update
📌 Quy trình:
- Dần dần thay thế các pods cũ bằng pods mới mà không gián đoạn dịch vụ.
🛠 Khi nào sử dụng?
- Ứng dụng stateless, yêu cầu zero-downtime.
- Triển khai bản cập nhật an toàn, tránh ảnh hưởng toàn hệ thống.
⚠ Nhược điểm:
- ❌ Nếu gặp lỗi, rollback có thể mất thời gian hơn so với Blue-Green.
3. Blue-Green Deployment
📌 Quy trình:
✔ Chạy song song 2 môi trường:
Blue
(phiên bản cũ)Green
(phiên bản mới)✔ Khi sẵn sàng, chuyển toàn bộ traffic từ Blue sang Green.
🛠 Khi nào sử dụng?
- Ứng dụng quan trọng, cần rollback nhanh nếu có lỗi.
- Dễ dàng kiểm tra phiên bản mới trước khi deploy chính thức.
⚠ Nhược điểm:
- ❌ Tốn tài nguyên gấp đôi, vì phải duy trì cả 2 môi trường cùng lúc.
4. Canary Deployment
📌 Quy trình:
- Phát hành phiên bản mới cho một nhóm nhỏ người dùng trước.
- Nếu ổn định, tiếp tục mở rộng cho toàn bộ hệ thống.
🛠 Khi nào sử dụng?
- Cập nhật có rủi ro cao, cần kiểm thử trên một nhóm nhỏ trước.
- Triển khai AI/ML models hoặc tính năng mới dần dần.
⚠ Nhược điểm:
- ❌ Cần thiết lập routing phức tạp để kiểm soát phân phối traffic.
Summary
Tóm tắt về K8S deployment stratergies hay còn gọi là chiến thuật triển khai trên k8s:
🔹 Tiêu chí | 🔹 Recreate | 🔹 Rolling Update | 🔹 Blue-Green | 🔹 Canary |
Downtime | ✅ Có | ❌ Không | ❌ Không | ❌ Không |
Triển khai nhanh | ✅ Có | 🔸 Trung bình | ❌ Không | ❌ Không |
Rollback dễ dàng | ❌ Không | 🔸 Khó hơn | ✅ Nhanh | ✅ Rất nhanh |
Tài nguyên tiêu tốn | ✅ Ít | 🔸 Trung bình | ❌ Nhiều | 🔸 Trung bình |
Kiểm thử trước khi deploy | ❌ Không | 🔸 Hạn chế | ✅ Có | ✅ Có |