Desired State
1. 상태 체크(Observe) : 현재 상태 == 원하는 상태
2. 차이점 발견(Diff) : 현재 상태 != 원하는 상태
3. 조치(Act) : 현재 상태 -> 원하는 상태
- 위의 단계를 반복(Loop)
- Replication Controller, Endpoint Controller, Namespace Controller, Custom Controller, ML Controller, CI/CD Controller ...
Master 상세 > Etcd
- 모든 상태와 데이터를 저장
- 분산 시스템으로 구성하여 안전성을 높임(고가용성)
- 가볍고 빠르면서 정확하게 설계(일관성)
- Key(directory)-Value 형태로 데이터 저장
- TTL(time to live), watch 같은 부가 기능 제공
- 백업 필수!
Master 상세 > API server
- 상태를 바꾸거나 조회
- etcd와 유일하게 통신하는 모듈
- REST API 형태로 제공
- 권한을 체크하여 적절한 권한이 없을 경우 요청을 차단
- 관리자 요청 뿐 아니라 다양한 내부 모듈과 통신
- 수평으로 확장되도록 디자인
Master 상세 > Scheduler
- 새로 생성된 Pod을 감지하고 실행할 노드를 선택
- 노드의 현재 상태와 Pod의 요구사항을 체크 => 노드에 라벨 부여(ex. a-zone, b-zone 또는 gqu-enabled, ...)
Master 상세 > Controller
- 논리적으로 다양한 컨트롤러가 존재(복제 컨트롤러, 노드 컨트롤러, 엔드포인트 컨트롤러 ...)
- 끊임없이 상태를 체크하고 원하는 상태를 유지
- 복잡성을 낮추기 위해 하나의 프로세스로 실행
Node 상세 > kubelet
- 각 노드에서 실행
- Pod을 실행/중지하고 상태를 체크
- CRI(Container Runtime Interface) (docker, Containerd, CRI-O, ...)
Node 상세 > proxy
- 네트워크 프록시와 부하 분산 역할
- 성능 상의 이유로 별도의 프록시 프로그램 대신 iptables 또는 IPVS를 사용(설정만 관리)
'공부 기록 > 영상 후기' 카테고리의 다른 글
[초보를 위한 쿠버네티스 안내서] 쿠버네티스 아키텍처 3/3 (API 호출) (0) | 2023.05.23 |
---|---|
[초보를 위한 쿠버네티스 안내서] 쿠버네티스 아키텍처 2/3 (오브젝트) (0) | 2023.05.23 |
[초보를 위한 쿠버네티스 안내서] 쿠버네티스를 이용한 배포 데모 (0) | 2023.05.21 |
[초보를 위한 쿠버네티스 안내서] 쿠버네티스 소개 (0) | 2023.05.21 |
[초보를 위한 쿠버네티스 안내서] 어떤걸 배울까? (0) | 2023.05.21 |