Blog
Thoughts on engineering, design, and building great products.
Leader Election, Addon và Node Autoscaling
Cụm chạy ba control plane, nhưng controller-manager và scheduler thì chỉ một bản được hoạt động tại một thời điểm — nếu cả ba cùng làm, chúng giẫm chân nhau. Bài này xem cơ chế giữ điều đó: leader election qua Lease, và chứng minh failover thật bằng cách hạ leader xuống rồi xem một controller khác giành quyền. Rồi khép Part XIII bằng hai mảnh vận hành còn lại — cách cụm tự dựng quản addon, và node autoscaling tự thêm bớt máy theo tải.
Kiến Trúc Logging
kubectl logs nghe đơn giản, nhưng phía sau là một chuỗi: container ghi stdout/stderr ra file trên node, kubelet đọc file đó trả về, và xoay nó khi đầy. Bài này lần theo một dòng log thật từ kubectl xuống đúng file trên đĩa worker, xem định dạng CRI và symlink, rồi tách hai loại log của cụm tự dựng — log container và log thành phần hệ thống qua journald — và vì sao cụm không tự gom log mà cần một agent.
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.
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.
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.