쿠버네티스의 노드는 크게 2개로 구성되어있다.
1. 마스터 노드
클러스터에 관한 전반적인 결정을 수행하고 클러스터 이벤트를 감지하고 반응
2. 워커 노드
동작 중인 파드를 유지시키고 쿠버네티스 런타임 환경을 제공
이제 각 노드 안의 요소들에 대해 알아보자.
클러스터에 명령을 내리는 역할
API 서버와 주로 통신하므로 API 서버가 위치한 노드에 구성된다.
주로 상태값을 저장하는 etcd와 통신하지만, API 서버를 중심에 두고 통신.
구성 요소들의 상태 값이 모두 저장되는 곳
etcd의 정보만 백업돼 있으면 긴급상황에 클러스터 복구가 가능하다.
etcd는 분산 저장이 가능한 key-value 저장소이므로 복제해 여러 곳에 저장해 두면 하나의 etcd가 장애가 나더라도 시스템의 가용성을 확보할 수 있다.
👉 쿠버네티스는 선언적 시스템이다.
즉, 각 요소가 추구하는 상태를 선언하면 현재 상태와 맞는지 체크하고 선언한 상태로 유지하게 끔 되어있다.
따라서 현 요소의 상태가 어떤지 체크할 필요가 있는 것이고 그것이 etcd의 중요 역할이다.
클러스터의 오브젝트 상태를 관리한다.
컨트롤러 매니저의 종류는 다양한데 가령,
노드의 상태와 자원, 레이블, 요구 조건 등을 고려해 파드를 어떤 워커 노드에 생성할 것인지 결정하고 할당한다.
가령, 파드의 조건에 맞는 워커 노드를 지정하고 파드가 워커 노드에 할당되는 일정을 관리한다.
파드의 구성내용을 받아서 컨테이너 런타임으로 전달, 파드 안의 컨테이너들이 정상적으로 작동하는지 모니터링
파드의 생성과 상태관리 및 복구 등을 담당하는 중요한 구성요소 이다.
파드를 이루는 컨테이너의 실행 담당.
파드 안에 여러 컨테이너가 잘 작동하게 만드는 표준 인터페이스
한 개 이상의 컨테이너로 단일 목적의 일을 하기 위해서 모인 단위.
파드의 통신을 담당.