Topology spread, pod overhead và schedul...
DevOpsKubernetes

Topology spread, pod overhead và scheduling readiness

Anti-affinity cứng nhắc: mỗi node một pod, dư là treo. Topology spread mềm hơn — rải đều theo maxSkew mà vẫn cho nhiều pod mỗi node. Bài này đào ba cơ chế scheduling tinh: topologySpreadConstraints (rải uyển chuyển), pod overhead (tính thêm tài nguyên cho sandbox runtime), và schedulingGates (giữ pod chưa cho xếp lịch). Test thật cả ba trên cluster.

K
KaiMay 24, 2026
Affinity, taint và toleration
DevOpsKubernetes

Affinity, taint và toleration

Scheduler tự chọn node, nhưng nhiều khi bạn cần can thiệp: pod này phải ở node SSD, hai bản sao đừng nằm chung một máy, node kia chỉ dành riêng cho một team. Bài này đào ba công cụ điều khiển scheduler từ phía bạn — nodeAffinity (hút pod về node có nhãn), podAntiAffinity (đẩy pod xa nhau), taint/toleration (node đẩy pod ra trừ khi pod chịu được). Test thật cả pod bị treo vì affinity, pod thứ ba không chỗ vì anti-affinity, và pod bị NoExecute đuổi khỏi node đang chạy.

K
KaiMay 24, 2026
Scheduler và scheduling framework
DevOpsKubernetes

Scheduler và scheduling framework

Mỗi pod ta tạo đều có ai đó âm thầm chọn node cho nó — đó là kube-scheduler, thứ ta đã dựng ở Bài 8 mà chưa nhìn kỹ. Bài này mở Part VII bằng cách đào đúng cách nó chọn: lọc bỏ node không vừa (filter), chấm điểm node còn lại (score), rồi bind. Test thật một pod bị treo vì không node nào đủ chỗ, một pod được chọn node, và xem scoring dồn pod vào node ít tải hơn — không phải chia đều ngây thơ.

K
KaiMay 24, 2026
LimitRange và ResourceQuota
DevOpsKubernetes

LimitRange và ResourceQuota

Khi nhiều team dùng chung một cluster, không gì ngăn team A tạo 10.000 pod hay xin 64Gi RAM cho một container — trừ khi bạn đặt luật. LimitRange đặt mặc định và min/max cho từng pod trong một namespace; ResourceQuota chặn tổng tài nguyên và số object cả namespace được dùng. Bài này khép Part VI bằng cả hai: test thật cú tiêm default, cú vượt max bị 403, và cú tạo pod thứ tư bị quota chặn.

K
KaiMay 24, 2026
Node Allocatable: tài nguyên thật pod đư...
DevOpsKubernetes

Node Allocatable: tài nguyên thật pod được dùng

Bài 22 nhìn requests/limits từ phía pod. Bài này lật sang phía node: một máy 2 vCPU không cho pod xài trọn 2 vCPU đó. Kubernetes cắt bớt phần cho daemon hệ thống, cho daemon Kubernetes, và một khoản đệm chống hết RAM — phần còn lại mới là Allocatable, thứ scheduler thực sự đem chia. Bài này đào công thức Allocatable, đọc Capacity vs Allocatable trên node thật, rồi tự tay thêm reservation và xem Allocatable tụt đúng từng Ki.

K
KaiMay 24, 2026
ConfigMap và Secret
DevOpsConfigMap

ConfigMap và Secret

Đừng nướng cấu hình vào image — tách nó ra ConfigMap cho dữ liệu thường, Secret cho dữ liệu nhạy cảm, rồi tiêm vào pod qua biến môi trường hay file. Bài này mở Part VI bằng cả hai: bốn cách tiêu thụ, một khác biệt then chốt (file tự cập nhật khi sửa, env thì không), và sự thật phũ phàng rằng Secret chỉ base64 chứ không mã hóa — trừ khi bạn tự bật, mà cụm của ta thì đã bật từ Bài 5. Test thật, đào cả tận etcd.

K
KaiMay 24, 2026
Quản lý object, nhãn khuyến nghị và stor...
DevOpsKubernetes

Quản lý object, nhãn khuyến nghị và storage version

Cùng một Deployment, ta có ba cách tạo và sửa — gõ lệnh trực tiếp, create -f một file, hay apply cả thư mục — và trộn lẫn chúng là rước lỗi. Bài này khép Part V bằng ba kỹ thuật quản lý object đó (kèm vì sao apply khác create -f), bộ nhãn khuyến nghị app.kubernetes.io/* để công cụ hiểu nhau, và storage version — đào tận etcd xem một object thực sự được lưu ở phiên bản API nào.

K
KaiMay 24, 2026