kubelet
1. kubelet là thuyền trưởng
kubelet giống thuyền trưởng của một con tàu (node). Thuyền trưởng:
- Điều hành mọi hoạt động trên node.
- Lo thủ tục để node gia nhập cluster.
- Là đầu mối liên lạc duy nhất với master.
- Cho container lên/xuống tàu theo chỉ thị từ master.
- Gửi báo cáo định kỳ về tình trạng node và các container.
2. kubelet làm gì?
| # | Việc | Chi tiết kỹ thuật |
|---|---|---|
| 1 | Đăng ký node | Tạo object Node trên apiserver → node xuất hiện trong kubectl get nodes |
| 2 | Chạy pod | Watch apiserver, thấy pod có nodeName là mình → gọi containerd qua CRI để pull image và chạy container |
| 3 | Theo dõi pod | Chạy liveness/readiness probe, container chết thì restart theo restartPolicy |
| 4 | Báo cáo | Cập nhật status pod và node, gửi heartbeat (object Lease, khoảng 10 giây/lần) |
3. Cài đặt
Quan trọng
kubeadm KHÔNG cài kubelet giùm bạn. Phải tự cài kubelet trên mọi node và chạy nó như một systemd service.
apt-get install -y kubelet
kubelet phải có trước, sau đó kubeadm init hoặc kubeadm join mới chạy được.
| Thành phần | Chạy dưới dạng (kubeadm) | Ai quản lý |
|---|---|---|
| etcd, kube-apiserver, kube-scheduler, kube-controller-manager | Static pod | kubelet |
| kube-proxy, CoreDNS, Calico | Pod thường (DaemonSet, Deployment) | Control plane |
| kubelet | systemd service | systemd |
| containerd | systemd service | systemd |
💡 Ghi nhớ
kubelet chạy các static pod của control plane bằng cách đọc file trong /etc/kubernetes/manifests/. Đó là lý do sửa file trong thư mục này thì pod tự được tạo lại.
4. Xem cấu hình và xử lý sự cố
ps -aux | grep kubelet # xem option đang chạy
systemctl status kubelet
journalctl -u kubelet | tail -50 # xem log
cat /var/lib/kubelet/config.yaml # file cấu hình (staticPodPath, clusterDNS...)