DevOps/Kubernetes

쿠버네티스 컴포넌트

beomzh 2023. 7. 18. 13:05
728x90
반응형

쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션(Orchestration) 툴로서, 컨테이너 기반 애플리케이션을 관리하기 위한 다양한 컴포넌트를 제공합니다.

 

쿠버네티스를 배포하면 클러스터가 생성된다.

 

컨트롤플레인 컴포넌트(Master)

- 클러스터 전체를 관리 기능 실행

 

1. Kubernetes API 서버: 쿠버네티스 클러스터의 중심 컴포넌트로서, 쿠버네티스 클러스터 전체의 상태와 구성을 관리합니다. API 서버는 RESTful API를 제공하며, 다른 모든 쿠버네티스 컴포넌트와 상호작용합니다.

- 사용자와 컨트롤 플레인과 통신하는 쿠버네티스 API

 

2. etcd: 쿠버네티스 클러스터의 구성 정보를 저장하는 분산 데이터 저장소입니다. 모든 쿠버네티스 노드에서 실행되며, 클러스터 전체의 구성 정보를 저장하고 유지합니다.

- 클러스터 구성을 저장하는 분산 데이터 스토리지  

 

3. kube-scheduler: 쿠버네티스 클러스터 내의 새로운 파드(pod)가 어떤 노드에서 실행될지 결정합니다. 이는 파드가 실행되기 위한 최적의 노드를 선택하는 작업을 수행합니다.

- 애플리케이션을 예약하는 스케줄러로배포 가능한 각 구성 요서에 워커 노드 할당을 담당

 

4. kube-controller-manager: 쿠버네티스 클러스터에서 다양한 컨트롤러를 실행합니다. 예를 들어, 레플리케이션 컨트롤러는 파드의 복제본을 관리하며, 노드 컨트롤러는 노드의 상태를 감시하고 필요에 따라 새로운 노드를 추가하거나 기존 노드를 제거합니다.

- 컨트롤러에게 pod 복제/배포 명령을 수행하는것

 

 

node컴포넌트

-컨테이너화된 애플리케이션을 실행하는 시스템으로 서비스 실행,모니터링을 제공

-ex)VM 같이 가상머신이나 물리적인 서버머신

 

1. kubelet: 각 노드에서 실행되는 에이전트로서, 쿠버네티스 클러스터에서 실행 중인 파드를 관리합니다. kubelet은 파드가 실행될 때 해당 노드에서 컨테이너를 실행하고 모니터링합니다.

-노드에서 컨테이너가 동작하도록 관리해 주는 핵심 요소

 

2. kube-proxy: 네트워크 프록시로서, 쿠버네티스 클러스터 내에서 서비스를 노출하고 파드 간의 통신을 관리합니다.

- 쿠버네티스 클러스터 내부에서 네트워크 요청을 전달하는 역할

 

3. Container runtime: 컨테이너를 실행하는 런타임 환경으로서, 대표적으로 Docker, containerd, CRI-O 등이 있습니다.

- 파드에 포함된 컨테이너 실행을 실질적으로 담당하는 애플리케이션

728x90
반응형

'DevOps > Kubernetes' 카테고리의 다른 글

EKS 오류시 해결 방법 및 클러스터 삭제 방법  (0) 2023.07.18
retry (재시작) 설정  (0) 2023.07.18
빌드배포 자동화 CI/CD  (0) 2023.07.18
Kibana  (0) 2023.07.18
Fluentd  (0) 2023.07.18