Blog
Thoughts on engineering, design, and building great products.
kubelet: Đưa Worker Vào Cluster
kubelet là tiến trình duy nhất trên worker nói chuyện với api-server và ra lệnh cho containerd. Bài này phân phối certificate cho từng node, viết KubeletConfiguration trỏ vào socket containerd, dựng systemd unit, rồi xem hai worker đăng ký vào cluster — và hiểu vì sao chúng hiện ra ở trạng thái NotReady chứ chưa phải Ready.
Container Runtime và CRI: Cài containerd Trên Worker
kubelet không tự chạy container — nó ủy thác việc đó cho một container runtime qua một giao diện chuẩn tên là CRI. Bài này giải thích CRI là gì, ai trong chồng kubelet → containerd → runc làm việc gì, rồi cài containerd v2.3 cùng runc trên hai worker, chỉnh cgroup driver cho khớp kubelet, và kiểm chứng bằng crictl.
HAProxy Gom Ba API Server và kubectl Từ Xa
Ba api-server đang chạy nhưng client phải biết gọi cái nào. Bài này dựng HAProxy trên lb-0 để gom chúng thành một địa chỉ duy nhất ở chế độ TCP passthrough — giữ nguyên mTLS đầu-cuối, rồi cấu hình kubectl trên laptop trỏ qua Elastic IP và thiết lập RBAC để api-server gọi được xuống kubelet.
controller-manager và scheduler: Control Loop và Leader Election
Hai thành phần biến trạng thái mong muốn thành hành động: kube-controller-manager chạy hàng chục control loop, kube-scheduler chọn node cho pod. Bài này dựng cả hai trên ba controller, giải thích cách scheduler lọc và chấm điểm node, rồi xem leader election hoạt động thật — ba bản chạy nhưng chỉ một làm việc.
kube-apiserver: Cổng Vào Cluster và Dây Chuyền Xử Lý Request
Thành phần ngồi ngay trước etcd và là cổng vào duy nhất của cluster. Bài này đi sâu vào dây chuyền authn → authz → admission mà mọi request phải qua, rồi dựng kube-apiserver trên cả ba controller: nối vào etcd bằng TLS, bật mã hóa Secret, và kiểm chứng thật rằng Secret đã được mã hóa khi đọc thẳng bytes trong etcd.
etcd: Quorum, Raft và Dựng Cluster Ba Node
Thành phần đầu tiên của control plane, và là nền móng cho mọi thứ phía trên: etcd. Bài này giải thích etcd lưu gì, vì sao nó cần số node lẻ và quorum nghĩa là gì qua thuật toán Raft — rồi dựng một cluster etcd ba node trên các controller với TLS, và kiểm chứng leader cùng sức khỏe cluster.
Gói Cert Thành kubeconfig và Cấu Hình Mã Hóa Secret
Certificate đã có, nhưng các binary Kubernetes đọc chúng qua một dạng file gói sẵn: kubeconfig. Bài này sinh kubeconfig cho admin, controller-manager, scheduler, kube-proxy và từng kubelet — giải thích mô hình cluster/user/context và vì sao control plane trỏ về 127.0.0.1 còn worker trỏ qua load balancer. Cuối bài tạo file mã hóa Secret at rest cho etcd.