Bài viết mới nhất

Tổng 1741 bài
Linux 01/09/2026 9 phút

Hồ sơ phẳng nói '99,90% CPU nằm trong hàm tinh()' — chính xác tới 0,15 điểm, và hoàn toàn vô dụng; cùng số liệu ấy tách theo đường gọi thì chỉ thẳng vào chỗ phải sửa

Một con số đúng vẫn có thể chẳng giúp được gì. Hồ sơ phẳng bảo toàn bộ CPU nằm trong một hàm tiện ích gọi từ khắp nơi — biết tên mà không biết ai gọi. Tách cùng số liệu ấy theo ngăn xếp: nén ngốn 85%, và một hàm nen() hiện ra hai lần với hai tỷ lệ khác nhau tuỳ ai gọi nó.

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

Sidecar của service mesh chỉ thêm 0,19 ms và 5 MB RAM — nhưng một pod ngoài mesh vẫn gọi thẳng vào được không mã hoá; cài mesh không tự nó chặn gì

Service mesh hứa mTLS, quan sát và điều khiển lưu lượng mà không sửa mã. Cài Linkerd lên cụm thật rồi đo: sidecar thêm ~0,19 ms (2,4 lần tương đối nhưng dưới 5% với dịch vụ thật) và chỉ 3–5 MB RAM. mTLS bật sẵn không cần khai gì. Nhưng điểm quan trọng nhất: mTLS là CƠ HỘI, không phải bắt buộc — pod ngoài mesh gọi vào vẫn chạy bình thường bằng văn bản rõ, cho tới khi bạn thêm chính sách cưỡng chế.

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 8 phút

Nâng cấp Kubernetes: bỏ PodDisruptionBudget, hạ còn đúng một bản sao, vẫn không mất một yêu cầu nào — thứ cứu được là preStop, không phải PDB

Nâng cấp Kubernetes gồm hai phần: nâng control plane (kubeadm lo) và thay từng node (việc của bạn, và là phần gây gián đoạn). Đo drain node giữa lúc phục vụ ở ba cấu hình: 2 bản + PDB + preStop = 0 lỗi, nhưng 1 bản không PDB mà VẪN có preStop cũng 0 lỗi, còn bỏ preStop + probe thì mất 3 yêu cầu mỗi lần. Cái tạo khoảng chồng lấn không phải số bản sao mà là 5 giây trì hoãn của preStop — và PDB bảo vệ một thứ hoàn toàn khác.

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ẻ.