쿠버네티스 아키텍처
클러스터는 하나 이상의 제어판(Control Plane) 컴포넌트와 이와 연결된 몇 개의 워커 노드로 구성됨
워커 노드
kublet이라는 프로세스가 돌가가고 있는데, 이는 다른 노드와 서로 통신하거나 컨테이너를 실행하는 등 태스크를 실행할 수 있게 함
워커 안에는 한 개 이상의 컨테이너가 자리잡고 있음, 즉 워커 노드는 실제로 애플리케이션이 실행되고 있는 곳
컨테이너, 볼륨, 작동 정보 등을 파드(Pod)라고 부름
제어판(Control Palne)
관리를 위해 필요한 프로세스들이 존재하며, 클러스터가 잘 작동할 수 있게 도움
- API 서버
- 모든 클러스터 관리의 입구로서, 명령을 내릴 수 있는 관문
- 쿠버네티스에서 제공되는 UI, CLI 등에서 클러스터 관리를 위해 명령을 내리면 API가 호출됨
- 컨트롤러 매니저
- 클러스터에서 무슨 일이 발생하는지 추적하는 역할
- 컨테이너가 죽거나 재시작되었을 경우, 컨트롤러 매니저는 이를 알 수 있음
- 스케쥴러
- 서버(노드) 리소스를 바탕으로 파드가 노드에 배치되게 만드는 역할
- 새로 생성된 컨테이너를 찾아 노드에 할당
- ETCD 데이터베이스
- key-value 저장소로 클러스터 관리에 필요한 모든 데이터를 저장하는 공간
- 인프라를 원하는 상태로 만들기 위해 관리에 필요한 메타데이터와 정상 상태에 대한 snapshot 등을 저장하는 공간
'DevOps > Kubernetes' 카테고리의 다른 글
[Kubernates] 쿠버네티스 워크로드 (1) | 2023.10.13 |
---|---|
[Kubernetes] 쿠버네티스와 컨테이너 오케스트레이션 (1) | 2023.10.13 |