3장 쿠버네티스

3.1 쿠버네티스 아키텍처

도커가 컨테이너와 관련된 전반적이고 추상화된 기술을 제공한다고 하면 쿠버네티스는 다량의 컨테이너를 하나의 물리적인 서버에 배치하여 이를 사용하듯이 관리해주는 역할을 한다. 쿠버네티스의 영역은 크게 노드를 하나로 묶는 클러스터를 관리하는 컨트롤 플레인 영역과 각 노드를 관리하는 노드 영역으로 나눌 수 있다.

컴포넌트 플레인 컴포넌트

컨트롤 플레인 컴포넌트는 클러스터에 관한 결정을 내리고 클러스터 이벤틀르 감지하며 반응한다.

■kube-apiserver

쿠버네티스의 모든 컴포넌트의 통신을 담당한다.

■etcd

모든 클러스터 데이터를 담는 쿠버네티스 뒷단의 저장소로 사용되는 키-벨류 저장소이다.

■kube-scheduler

노드가 배정되지 않은 새로 생성된 파트를 감지하고, 실행할 노드를 선택하는 컴포넌트이다.

■kube-controller-manager

컨트롤러를 구동하는 컴포넌트이다. 구동되는 컨트롤러 노드 컨트롤러, 레플리케이션 컨트롤러, 엔드포인트 컨트롤러, 서비스 어카운트, 토큰 컨트롤러 등이 있다.

■cloud-controller-manager

바탕을 이루는 클라우드 제공 사업자와 상호작용하는 컨트롤러를 작동 시킨다. cloud-controller-manager 바이너리는 쿠버네티스 릴리스 1.6에 도입된 알파 기능이다.

■node-component

동작 중인 파드를 유지 시키고 쿠버네티스 런타임 환경을 제공하며, 모든 노드 상에서 동작한다.

■kubelet