DevOps 01/09/2026 8 phút

Trần thật của một node Kubernetes không phải RAM mà là con số 110 — node to gấp đôi không cho gấp đôi số pod, và cụm kind báo 62,4 GiB trên một máy chỉ có 15,6

Đo chi phí bên trong một cụm: bao nhiêu tài nguyên biến mất trước khi ứng dụng đầu tiên chạy. kubelet + containerd 207 MB mỗi node cố định; một pod rỗng tốn 0,44 MB. Nhưng con số đảo ngược trực giác nhất là trần 110 pod/node — độc lập với kích thước node, nên node 16 GB xếp đầy chỉ còn 145 Mi mỗi pod, và pod nhỏ chạm trần SỐ LƯỢNG trước khi chạm trần RAM. Cẩn thận: đo trên kind lạc quan gấp bốn lần vì mỗi node container thấy RAM của cả máy.

DevOps 01/09/2026 9 phút

python:3.12 có 2.889 lỗ hổng, bản alpine cùng Python đó có 25 — ít hơn 115 lần mà không sửa một dòng mã; và đổi ảnh trên cùng một thẻ làm chữ ký biến mất sạch

Pod Security Standards kiểm soát pod LÀM GÌ; bài này lùi một bước, kiểm soát cái NẰM TRONG pod. Quét sáu ảnh: python:3.12 Debian 2.889 lỗ hổng so với python:3.12-alpine chạy cùng Python chỉ 25 — chênh 115 lần chỉ vì mọi thứ đi kèm. Và phép đo quan trọng nhất: chữ ký gắn với digest chứ không với thẻ, nên đổi ruột ảnh dưới cùng một thẻ v1 làm chữ ký mất hoàn toàn. Dùng digest, không dùng thẻ.

DevOps 01/09/2026 8 phút

Tăng 20 lần số đối tượng làm một lệnh kubectl get chậm gấp 85 lần — nhưng tạo pod vẫn mất đúng một giây; cụm không chậm nói chung, chỉ LIST chậm

Tài liệu nói Kubernetes chịu 5.000 node và 150.000 pod. Bài này đo cụm thật bắt đầu chậm ở đâu và chậm ở CÁI GÌ: 20.001 ConfigMap làm LIST mất 6,79 giây (85 lần so với 1.001), nhưng tạo pod vẫn ~1 giây. Cái vỡ không phải thao tác điểm mà là LIST/WATCH và bộ nhớ controller — informer giữ toàn bộ đối tượng trong RAM. Kèm hai trần kích thước khác nhau: 1 MB với create, chỉ 262 KB với apply.

DevOps 01/09/2026 8 phút

Sửa tay trên cụm Kubernetes bị Argo CD hoàn tác sau 2 giây — nhưng một commit mới trong Git phải chờ 159 giây, vì Argo theo dõi cụm còn Git thì nó chỉ quét

Helm không chống được trôi cấu hình. Bài này cài Argo CD lên cụm thật rồi đo hai độ trễ chênh nhau gần trăm lần: sửa trực tiếp trên cụm bị kéo về sau 2,1 giây (Argo watch cụm), còn commit mới phải chờ tới 159 giây (Argo poll Git, mặc định 180s). selfHeal nhanh nhưng có giải lui khi tranh với controller khác, và quyền ghi Git giờ chính là quyền ghi cụm.

DevOps 01/09/2026 8 phút

Cùng một ứng dụng: Compose khởi động 0,9 giây, Kubernetes 1,2 giây — và Kubernetes trần trụi vẫn mất yêu cầu khi cập nhật y hệt Compose

Câu hỏi 'Kubernetes hay chỉ Docker Compose' thường được trả lời bằng niềm tin. Dựng cùng một ứng dụng hai container bằng cả hai rồi đo song song: bốn chỉ số đầu gần hoà (K8s không chậm hơn, không tốn RAM container hơn), nhưng K8s mang 743 MB hạ tầng cố định. Khác biệt thật ở cập nhật: K8s một bản không probe mất yêu cầu y như Compose; chỉ nhiều bản + readinessProbe + preStop mới cho 0 lỗi. Kubernetes không tặng uptime, nó tặng cơ chế.

DevOps 01/09/2026 7 phút

Sáu mươi phép đo Kubernetes gom thành một danh sách kiểm trước khi lên production — cùng ba lần tôi công bố sai rồi tự phát hiện lúc chạy lại

Sáu mươi phần, mỗi phần một phép đo trên cụm dựng bằng kind rồi xoá đi, gom lại thành thứ dùng được: mười con số đáng nhớ nhất, ba dạng lỗi lặp lại nhiều nhất, một danh sách kiểm trước khi lên chạy thật mà mỗi dòng dẫn về một phép đo cụ thể, và ba lần tôi viết sai rồi phải sửa. Bài học còn lại không phải sáu mươi mẹo, mà một thói quen: đo trước khi tin, kể cả tài liệu chính thức.