Master
1. etcd
- 모든 상태와 데이터 저장
- 분산 시스템을 구축하여 안전성을 높임(고가용성) -> 분산 시스템을 구축했을 경우
- 가볍고 빠르면서 정확하게 설계(일관성)
- key : value 형태로 데이터 저장
- TTL(time to live), watch 기능 제공
- 백업은 필수적으로 해야함
2. api server
- 상태를 바꾸거나 조회
- etcd와 유일하게 통신하는 모듈
- REST API 형태로 제공
- 권한을 체크하여 적절한 권한이 없을 경우 차단
- 관리자 요청뿐아니라 다양한 내부 모듈과 통신
- 수평으로 확장되도록 디자인
3. schelduler
- 새로생성할 파드 혹은 예약되지 않은 파드에 대해서 실행할 최적의 노드를 선택
- 노드의 현재 상태와 pod의 요구사항 체크
4. Controller
- 논리적으로 다양한 컨트롤러가 존재
1) 복제 컨트롤러
2) 노드 컨트롤러
3) 엔드포인트 컨트롤러
- 시스템내의 다양한 구성요소의 상태를 모니터링하고, 시스템 전체를 원하는 기능으로 제어
- 복잡성을 낮추기 위해 하나의 프로세스로 실행
Node
1. kubelet
- 클러스터의 각 노드에서 실행되는 에이전트.
- Kubelet은 파드에서 컨테이너가 확실하게 동작하도록 관리한다.
2. proxy
- kube-proxy는 클러스터의 각 노드에서 실행되는 네트워크 프록시로, 쿠버네티스의서비스 개념의 구현부이다.
- 네트워크 프록시와 부하 분산의 역할