본문 바로가기
IT/Kubernetes

쿠버네티스의 내부 구성

by FreeYourMind 2021. 9. 25.

 

쿠버네티스 클러스터의 개략적 구성도

 

Node(노드)

- VM(가상 머신) or 실제 물리 서버

 

Control Plane

- 클러스터를 전반적으로 관리(ex 스케줄링)하고 클러스터 이벤트를 감지하고 반응(ex 오토스케일링), 노드(워커 노드)와 클러스터 내 파드를 관리함

 

Control Plane의 구성 요소

kube-apiserver

- 쿠버네티스 컨트롤 플레인의 프론트엔드, 인스턴스 간의 트래픽을 균형 있게 조절하는 역할

etcd

- 클러스터의 모든 데이터를 담는 쿠버네티스 뒷단의 저장소

- 고가용성, 일관성의 키-값(Key-Value) 저장소

kube-scheduler

- 새로 생성된 파드를 노드에 배치

- 리소스에 대한 요구사항, 하드웨어/소프트웨어/정책적 제약, Affinity 및 Anti-Affinity 명세, 데이터 지역성, 워크로드 간 간섭, 데드라인을 고려하여 스케줄링 실행

kube-controller-manager

- 컨트롤러 프로세스를 실행

- 노드 컨트롤러: 노드 관리,

- 레플리케이션 컨트롤러: 알맞은 수의 파드를 유지,

- 엔드포인트 컨트롤러: 서비스와 파드를 연결,

- 서비스 어카운트 & 토큰 컨트롤러: 새로운 네임스페이스에 대한 기본 계정과 API 접근 토큰을 생성

- 등을 포함

>> Namespace: 쿠버네티스 클러스터 내의 논리적인 분리 단위, 네임스페이스별로 자원들을 나누어 관리, 접근 권한, 리소스 할당량 등을 설정 가능

cloud-controller-manager

- CSP의 API를 통해 리소스를 생성 및 관리

- 노드 컨트롤러: 쿠버네티스와 클라우드 상의 노드 동일성 유지,

- 라우트 컨트롤러: 쿠버네티스와 클라우드 상의 인프라 경로 동일성 유지,

- 서비스 컨트롤러: 쿠버네티스 서비스와 클라우드의 로드밸런서 리소스 동일성 유지

- 등을 포함

 

Node Component

- 동작 중인 파드를 유지시키고, 쿠버네티스 런타임 환경을 제공

 

Node Component의 구성 요소

kubelet

- 각 노드에서 실행되는 에이전트, 파드에서 컨테이너가 확실하게 동작하도록 관리

kube-proxy

- 각 노드에서 실행되는 네트워크 프록시

- 노드의 네트워크 규칙을 유지 관리, 네트워크 규칙을 통해 내부 네트워크 세션이나 클러스터 바깥에서 파드로 네트워크 통신을 가능하게 함

- OS에 가용한 패킷 필터링 계층이 있는 경우, 이를 사용, 그렇지 않으면 트래픽 자체를 포워딩함

Container Runtime

- 컨테이너 실행을 담당(Kubernetes CRI)하는 소프트웨어

 

 

출처

https://kubernetes.io/ko/docs/concepts/overview/components/

https://dalsacoo-log.tistory.com/entry/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Kubernetes

 

 

 

 

댓글