이 글은 아래 자료를 참고하여 작성되었습니다.
Udemy [Certified Kubernetes Administrator (CKA) with Practice Tests]
1. Kubelet이란?
Kubelet은 Kubernetes 클러스터의 워커 노드에서 실행되는 핵심 에이전트다. 노드를 클러스터에 등록하고, 마스터 노드(Kubernetes API 서버)의 지시에 따라 컨테이너 및 파드를 생성, 실행, 관리하는 역할을 한다. Kubelet은 노드에서 발생하는 모든 컨테이너 활동을 모니터링하며, Kubernetes 클러스터의 다른 구성 요소와 상호작용하여 클러스터 내의 일관성을 유지한다.
2. Kubelet의 주요 역할
- 노드 등록 및 클러스터 통합:
- Kubelet은 워커 노드를 클러스터에 등록하여, 클러스터의 일원이 되도록 통합하는 역할을 한다. 이를 통해 마스터 노드(Kubernetes API 서버)와 통신이 가능해지며, 노드에서 파드가 제대로 실행될 수 있도록 준비한다.
- 컨테이너 및 파드 관리:
- 컨테이너 실행: Kubelet은 마스터 노드의 스케줄러로부터 파드 배치 명령을 받은 후, 해당 노드에 컨테이너나 파드를 실행한다. 이때 Kubelet은 컨테이너 런타임 엔진(ex: containerd)을 호출해 필요한 이미지를 다운로드하고, 파드를 실행한다.
- 자원 할당 및 실행: Kubelet은 파드가 요구하는 리소스(CPU, 메모리)를 노드 내에서 적절히 할당하고, 리소스 제약 조건을 관리한다. 이를 통해 각 파드가 필요한 환경에서 실행될 수 있도록 보장한다.
- 상태 모니터링 및 보고:
- 주기적인 상태 보고: Kubelet은 정기적으로 마스터 노드(Kubernetes API 서버)에 노드와 파드의 상태를 보고한다. 이 보고에는 노드의 리소스 사용량(CPU, 메모리), 파드의 상태(정상, 오류, 중단 등), 그리고 각 컨테이너의 상태가 포함된다. 이를 통해 마스터 노드는 클러스터 전체의 상태를 실시간으로 파악할 수 있다.
- 문제 감지 및 보고: Kubelet은 파드나 컨테이너에 문제가 발생했을 때 이를 감지하고, 즉시 마스터 노드에 보고한다. 예를 들어, 컨테이너가 크래시 상태에 빠지거나 종료되면, Kubelet은 이를 감지하여 보고하고, 자동으로 재시작하는 등의 자가 복구 작업을 수행한다.
3. Kubelet 설치 및 구성
- 설치 방법: 다른 컴포넌트들과 다르게, kubelet은 kubeadm을 이용해 배포할 수 없다. kubelet은 항상 사용자가 직접 워커노드에 Installer 다운받아 service를 실행해야 한다.
- 옵션 조회 방법:
- process 조회로 알아보기: worker node에서
ps -aux | grep kubelet
- process 조회로 알아보기: worker node에서
'Kubernetes' 카테고리의 다른 글
22. Scheduling - Manual Scheduling (0) | 2024.10.27 |
---|---|
21. Core Concepts - Kube Proxy (1) | 2024.09.25 |
19. Core Concepts - Kube Scheduler (0) | 2024.09.25 |
18. Core Concepts - Kube Controller Manager (2) | 2024.09.23 |
17. Core Concepts - Kube API Server (1) | 2024.09.20 |