kubelet?
앞선 포스팅에서 언급된것 처럼 kubelet은 Cluster를 구성하는 모든 워커노드에 설치됩니다. 이후 Pod배치, Pod상태 조회 요청 등 kube-apiserver의 요구를 받아 Pod의 설치, 삭제, 조회 등 실제적인 작업을 워커노드에서 수행합니다.
Pod의 설치가 요청되면
kube-scheudlerPod가 설치될 노드들을 파악 후,Node1에 Pod생성을 요청합니다.kube-scheduler의 요청을 받은kube-apiserver해당 Pod설치 정보를Node1의kubelet에 요청합니다.kubelet은 해당 워커노드의 runtime-engine을 통해 Pod를 생성합니다.- 작업완료 후
kubelet은 작업완료 내용을kube-apiserver에 알립니다.
kubelet은 kube-apiserver, kube-scheduler와 달리 Vanilla kubernetes에 포함되어 있지 않습니다. (쿠버네티스 설치 포스팅)[https://moo-woong.github.io/posts/kubernetes/kubernetes/]에 기술된 바와 같이 kubelet은 설치될 워커노드에 먼저 설치되어 있어야 합니다.
워커노드에 설치된 kubelet은 프로세스로 목록으로 확인할 수 있습니다.
hugh@worker1:~$ ps -ef | grep kubelet
root 2499 1 0 Jan17 ? 00:56:47 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --pod-infra-container-image=registry.k8s.io/pause:3.9
hugh 387121 387081 0 05:37 pts/0 00:00:00 grep --color=auto kubelet