[CKA] 1.5 kubelet
[CKA] 1.5 kubelet — #개발자의도구들 #kubelet #cka #쿠버네티스 Kublet 지금까지 항구 비유에서 마스터 노드의 컴포넌트를 살...
#개발자의도구들 #kubelet #cka #쿠버네티스
Kublet
지금까지 항구 비유에서 마스터 노드의 컴포넌트를 살펴봤었습니다.
- kube-apiserver: 중앙 관제탑
- kube-controller-manager: 각종 관리자들이 모인 관리 사무실
- kube-scheduler: 화물 배정담당자
이제 실제로 컨테이너를 싣고 바다를 향해하는 배로 가봅시다.
kubelet은 각 배의 선장입니다. 선장은 배에서 일어나는 모든 활동들에 대한 책임이 있습니다.
What to do?
kubelet은 다음 일을 수행합니다.
- 클러스터에 노드 등록
kubelet은 워커 노드가 시작될 때 kube-apiserver에게 자기 자신을 등록합니다. kube-apiserver는 비로소 해당 노드를 인식하여 업무를 분배합니다.
2. 컨테이너 실행
스케줄러로 부터 특정 pod를 실행하라는 명령이 떨어집니다. 이 명령은 kube-apiserver를 통해 해당 노드의 kubelet에게 전달됩니다.
kubelet은 이 지시를 받으면 컨테이너 런타임에게 요청하여 다음을 수행합니다.
- 필요한 이미지를 다운
- 컨테이너 실행
이 시점에서 드디어 실제로 컨테이너가 돌아갑니다.
3.상태 모니터링 및 보고
선장이 매일 배와 화물 상태를 상부에 보고 하듯이 kubelet도 마찬가지로 pod와 컨테이너 상태를 지속적으로 감시하고, 이 정보를 kube-apiserver에게 보고합니다.
마스터 노드와의 유일한 연결고리
kubelet은 워커노드가 마스터 노드와 연결되는 유일한 창구로 작동합니다.
설치방법 (중요)
다른 컴포넌트와 달리 kubelet은 kubeadm으로 자동으로 Pod 배포가 되지 않습니다. 그렇기에 항상 워커노드에 직접 접속하여 수동으로 설치해야합니다.
설치 및 확인 명령어
# kubelet 바이너리 다운로드 및 설치
wget https://storage.googleapis.com/kubernetes-release/release/v1.xx.x/bin/linux/amd64/kubelet
# 실행 권한 부여
chmod +x kubelet
# 서비스로 등록 및 실행
sudo mv kubelet /usr/local/bin/
sudo systemctl enable kubelet
sudo systemctl start kubelet
# 확인
ps aux | grep kubelet
정리
kubelet은 각 워커 노드에서 실행되는 에이전트로, 배의 선장 역할을 수행합니다.
주요 역할은 아래와 같습니다.
- 노드를 클러스터에 등록
- kube-apiserver의 지시를 받아 컨테이너 런타임에서 파드 실행을 요청
- 파드와 컨테이너 상태를 모니터링 하고 보고
\\중요\\
kubeadm으로 자동 배포되지 않으므로 수동 설치가 반드시 필요하다.
