GC, cgroup v2, Swap và Tắt Node Có Trật ...
DevOpsKubernetes

GC, cgroup v2, Swap và Tắt Node Có Trật Tự

Kubelet làm nhiều việc ở tầng node mà ta hiếm khi nhìn tới khi mọi thứ chạy ổn. Bài này soi bốn việc đó trên worker thật: dọn image cũ khi đĩa đầy, đặt mỗi pod vào đúng nhánh cgroup v2 và ép limit qua memory.max/cpu.max, vì sao swap mặc định bị chặn, và graceful node shutdown — thứ quyết định pod bị giật hay được dừng tử tế khi node tắt.

K
KaiMay 24, 2026
Nâng Cấp và Version Skew
DevOpsKubernetes

Nâng Cấp và Version Skew

Nâng cấp Kubernetes không phải đổi hết một lượt mà đi theo thứ tự, vì các thành phần được phép lệch phiên bản nhau trong giới hạn nghiêm ngặt — kubelet được cũ hơn apiserver tới ba minor nhưng tuyệt đối không mới hơn. Bài này soi version skew của cụm, giải thích vì sao apiserver phải nâng trước, rồi diễn tập phần khó nhất khi nâng một node: cordon, drain, uncordon — trên worker-0 thật, có thể hoàn tác.

K
KaiMay 24, 2026
Sao Lưu etcd và Xoay Certificate
DevOpsKubernetes

Sao Lưu etcd và Xoay Certificate

etcd cất toàn bộ trạng thái cụm; mất nó là mất cụm. Part XIII mở đầu ở đúng chỗ đáng sợ nhất khi hỏng. Ta chụp một snapshot etcd, kiểm nó hợp lệ, và khôi phục ra một thư mục dữ liệu mới để chứng minh snapshot dùng được — tất cả mà không đụng etcd đang chạy. Rồi soi hạn của bộ certificate dựng từ Bài 4 và bàn việc xoay chúng trước khi hết hạn.

K
KaiMay 24, 2026
Device Plugin và Extended Resources
DevOpsKubernetes

Device Plugin và Extended Resources

Pod xin được CPU và memory, nhưng GPU, NIC tốc độ cao hay FPGA thì sao? Device plugin là cách node quảng bá phần cứng ngoài CPU/memory thành extended resource để pod xin và scheduler chia. Bài này dựng một device plugin thật, bắt trọn luồng gRPC nó dùng để đăng ký với kubelet và quảng bá thiết bị, xem kubelet gọi Allocate khi pod chạy, rồi dùng cơ chế extended resource bên dưới để thấy scheduler chia nó y như CPU.

K
KaiMay 24, 2026
API Aggregation: Gắn API Server Thứ Hai
DevOpsKubernetes

API Aggregation: Gắn API Server Thứ Hai

CRD thêm kiểu mới do chính API server chính lưu trong etcd. API aggregation đi xa hơn: gắn hẳn một API server thứ hai vào sau API server chính, phục vụ một nhóm API mà nó tự lưu, tự tính, theo cách riêng. Cụm ta đã chạy một ví dụ từ Bài 39 — metrics-server. Bài này soi nó như một API aggregated: APIService đăng ký, request được proxy tới đâu, và vì sao số liệu CPU/memory trả về mà không hề nằm trong etcd.

K
KaiMay 24, 2026
Operator: CRD Cộng Vòng Lặp Reconcile
DevOpsKubernetes

Operator: CRD Cộng Vòng Lặp Reconcile

CRD cho ta một kiểu dữ liệu mới, nhưng tạo một custom resource thì chưa có gì xảy ra. Operator ghép CRD với một controller chạy vòng lặp: theo dõi custom resource và hành động để đưa thực tế về khớp mong muốn. Bài này dựng một operator thật từ đầu — một CRD Echo và một controller chạy trong pod — rồi xem nó tự tạo Deployment khi ta tạo Echo, tự scale khi ta sửa replicas, và để Deployment bị dọn khi ta xóa Echo.

K
KaiMay 24, 2026
Admission Webhook: Chen Vào Đường Ghi
DevOpsKubernetes

Admission Webhook: Chen Vào Đường Ghi

Bài 54 dùng admission có sẵn (Pod Security). Bài này tự viết một admission của riêng mình: một dịch vụ HTTPS mà API server gọi tới trước khi lưu mỗi object, trả về cho hay không cho. Ta dựng một validating webhook thật bằng Python — tự ký cert cho service, để API server tin qua caBundle, và bắt mọi pod phải có label team. Pod thiếu label bị API server từ chối ngay; pod ở namespace ngoài phạm vi thì không bị đụng.

K
KaiMay 24, 2026