Deployment: rollout và rollback
DevOpsDeployment

Deployment: rollout và rollback

Tới giờ ta toàn tạo Pod trần. Production thì không ai làm vậy — pod được giao cho Deployment quản, và Deployment không quản pod trực tiếp mà qua một lớp giữa: ReplicaSet. Bài này mở Part IV bằng cách đào đúng cơ chế đó: đổi image sinh ra ReplicaSet mới, rolling update nâng cái mới lên hạ cái cũ xuống, ReplicaSet cũ được giữ ở 0 để rollback một lệnh. Test thật từng bước trên cluster, soi cả chuỗi sở hữu Pod → ReplicaSet → Deployment.

K
KaiMay 24, 2026
Disruption và PodDisruptionBudget
DevOpsKubernetes

Disruption và PodDisruptionBudget

Pod biến mất theo hai kiểu rất khác nhau: không tự nguyện (node chết, hết RAM — không ai ngăn được) và tự nguyện (rút node đi bảo trì, nâng cấp — chủ động). PodDisruptionBudget chỉ canh đúng kiểu thứ hai: nó bảo cluster đừng rút quá nhiều bản sao cùng lúc. Bài này phân biệt hai kiểu disruption rồi kiểm chứng PDB bằng Eviction API thật — thấy tận mắt cú evict bị chặn bằng HTTP 429.

K
KaiMay 24, 2026
Requests, limits, QoS và Downward API
DevOpsKubernetes

Requests, limits, QoS và Downward API

Khai requests và limits cho container không chỉ là chuyện đặt con số. requests dẫn đường cho scheduler, limits là hàng rào kernel cưỡng chế — CPU bị bóp, bộ nhớ vượt là OOM kill. Từ bộ số đó Kubernetes xếp pod vào ba lớp QoS quyết định ai bị giết trước khi node cạn RAM. Bài này test thật cả ba lớp QoS, một cú OOMKilled, và Downward API để pod tự đọc thông tin về chính nó.

K
KaiMay 24, 2026
Ephemeral container và kubectl debug
DevOpsKubernetes

Ephemeral container và kubectl debug

Container production tốt thường không có shell — image distroless càng gọn càng ít công cụ gỡ rối, nên kubectl exec bó tay. Bài này dùng ephemeral container: nhét tạm một container công cụ vào pod đang chạy mà không phải restart hay sửa image của nó. Đào ngữ nghĩa theo tài liệu rồi kiểm chứng cả ba chế độ của kubectl debug — gắn vào pod đang chạy, nhân bản pod, và gỡ rối thẳng node — trên cluster thật.

K
KaiMay 24, 2026
Probe: liveness, readiness và startup
DevOpsKubernetes

Probe: liveness, readiness và startup

Bài 18 để lại condition Ready chưa có lời giải. Đứng sau nó là probe — cơ chế kubelet dùng để hỏi container ba câu khác nhau: mày còn sống không, mày sẵn sàng nhận lưu lượng chưa, mày khởi động xong chưa. Bài này tách bạch ba loại probe theo đúng tài liệu rồi kiểm chứng từng cái bằng pod thật: liveness làm kubelet giết và restart, readiness gỡ pod khỏi endpoint của Service, startup vô hiệu hóa hai probe kia tới khi app kịp khởi động.

K
KaiMay 24, 2026
Init Container và Sidecar Container
DevOpsKubernetes

Init Container và Sidecar Container

Một pod không chỉ có container chính. Init container chạy việc chuẩn bị tới khi xong rồi mới nhường cho app khởi động; sidecar container chạy song song app suốt đời pod. Bài này phân biệt hai loại, đào ngữ nghĩa chính xác theo tài liệu — thứ tự khởi động, cách xử lý lỗi, thứ tự tắt — và kiểm chứng bằng các pod thật trên cluster v1.36.

K
KaiMay 24, 2026
Vòng Đời Của Một Pod: Phase, Condition v...
DevOpsTroubleshooting

Vòng Đời Của Một Pod: Phase, Condition và restartPolicy

Mở phần Pods chuyên sâu bằng thứ bạn đọc mỗi ngày trong kubectl get pods mà ít khi đọc kỹ: trạng thái của một pod. Bài này tách ba lớp trạng thái — phase tổng quát, container state chi tiết, và condition như một checklist — rồi cho thấy phase thực ra được suy ra từ container state cộng với restartPolicy. Bốn pod thật minh hoạ Running, Succeeded, Failed và CrashLoopBackOff.

K
KaiMay 24, 2026