Chuyển tới nội dung chính

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ệcChi tiết kỹ thuật
1Đăng ký nodeTạo object Node trên apiserver → node xuất hiện trong kubectl get nodes
2Chạy podWatch apiserver, thấy pod có nodeName là mình → gọi containerd qua CRI để pull image và chạy container
3Theo dõi podChạy liveness/readiness probe, container chết thì restart theo restartPolicy
4Báo cáoCậ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ầnChạy dưới dạng (kubeadm)Ai quản lý
etcd, kube-apiserver, kube-scheduler, kube-controller-managerStatic podkubelet
kube-proxy, CoreDNS, CalicoPod thường (DaemonSet, Deployment)Control plane
kubeletsystemd servicesystemd
containerdsystemd servicesystemd
💡 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...)