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
Finalizer, ownerReferences và garbage co...
DevOpsKubernetes

Finalizer, ownerReferences và garbage collection

Mỗi lần xóa Deployment ở các bài trước, pod và ReplicaSet biến mất theo — ta gọi đó là garbage collection mà chưa mổ xẻ. Bài này đào cơ chế: ownerReferences nối object cha-con, garbage collector tự dọn con khi cha mất (nền, foreground, hay để mồ côi), và finalizer chặn xóa tới khi việc dọn dẹp xong. Test thật cả ba — kể cả một object kẹt ở Terminating vì finalizer.

K
KaiMay 24, 2026
Label, selector, namespace và annotation
DevOpsKubernetes

Label, selector, namespace và annotation

Ta đã gõ -l app=web hàng chục lần mà chưa dừng lại hỏi nó hoạt động ra sao. Bài này mở Part V bằng bộ công cụ tổ chức và truy vấn đối tượng: label để gắn nhãn và chọn (equality lẫn set-based), annotation để đính metadata không-định-danh, namespace để cô lập, và field selector để lọc theo trường có sẵn. Test thật từng kiểu selector trên một rổ pod gắn nhãn.

K
KaiMay 24, 2026
Job, CronJob và TTL
DevOpsKubernetes

Job, CronJob và TTL

Mọi controller tới giờ đều chạy mãi — Deployment, StatefulSet, DaemonSet giữ pod sống bất tận. Job đảo ngược: nó chạy một tác vụ tới khi xong rồi dừng, đúng cho migration, backup, batch. Bài này khép Part IV với Job (completions, parallelism, backoffLimit), CronJob chạy theo lịch cron, và TTL tự dọn Job đã xong — test thật từng cái trên cluster, kể cả bắt CronJob nổ đúng mốc phút.

K
KaiMay 24, 2026
DaemonSet: một pod trên mỗi node
DevOpsKubernetes

DaemonSet: một pod trên mỗi node

Deployment quản N bản sao đặt đâu cũng được; StatefulSet quản N pod có danh tính. DaemonSet là mô hình thứ ba và khác hẳn: không đếm bản sao mà bảo đảm đúng một pod trên mỗi node — thêm node thì thêm pod, bớt node thì pod biến mất. Đây là khuôn cho agent log, CNI, node exporter. Bài này đào cách DaemonSet ghim pod vào từng node, vì sao pod của nó chạy được cả trên node chưa sẵn sàng, và cách giới hạn nó vào một nhóm node — test thật trên hai worker.

K
KaiMay 24, 2026
StatefulSet: danh tính ổn định và thứ tự
DevOpsStorage

StatefulSet: danh tính ổn định và thứ tự

Deployment coi mọi pod như đàn cá vô danh — thay con nào cũng được. Nhưng database, message queue, etcd thì không: mỗi node cần một danh tính cố định và dữ liệu riêng. StatefulSet sinh ra cho đúng nhu cầu đó. Bài này đào bốn bảo đảm của nó — tên ổn định, DNS riêng từng pod qua headless service, tạo và xóa theo thứ tự — kiểm chứng từng cái trên cluster thật, và để dành phần volume cho phần Storage.

K
KaiMay 24, 2026