728x90
반응형
아키텍처
마스터 노드
- 전체 클러스터를 컨트롤하고, 전체 클러스터 상태를 관리함
- 새로운 파드들의 스케일링, 노드/파드들의 헬스 모니터링, 수요에 따른 어플리케이션 스케일링 등 전체 클러스터에 대한 결정권을 갖는다.
- 주요 컴포넌트
- API Server
- 클러스터와ㅏ 유저/컴포넌트간의 소통을 가능하게 하는 API를 노출시켜준다.
- etcd
- 클러스터의 모든설정 데이터를 key-value 값들이 저장된다
- 모든 클러스터 상태 정보가 여기 저장된다.
- Controller Manager
- API Server를 통해 클러스터 상태를 체크하고 원하는 상태가 유지하기 위한 행동을 취한다.
- Scheduler
- 새로운 파드들을 리소스 필요량과 가용성에 따라 노드들에 배정한다.
- 이를 통해 worker 노드들에 workload들을 공평하게 분배한다.
- API Server
워커 노드
- 컨테이너(파드)가 스케쥴되고 구동되는 머신을 의미
- 클러스터의 data plane을 형성하고, 실제 workload를 실행한다.
- 워커 노드 주요 컴포넌트
- kubelet
- 각각의 워커 노드를 구동시키고 Master Node와 통신하는 역할
- 파드 명세에 적혀있는 대로 컨테이너가 구동되고 그 상태가 건강하게 하는 역할
- Container Runtime
- Docker나 containerd와 같은 복수개의 container runtimes를 지원한다
- 컨테이너 이미지를 가져오고, 컨테이너를 구동하는 역할
- Kube Proxy
- 클러스터 내에서 네트워크 소통을 하는 역할
- 서비스 네트워크 라우팅을 관리하고 Load Balancing을 수행한다.
- kubelet
상호작용 방식
- Master node와 Worker Node들은 API Server를 통해 서로 통신한다.
- 유저와 다른 컴포넌트들 역시 API Server를 통해 서로 상호 작용함
- 예시
- 새로운 어플리케이션 배포 시, 설정 파일들이 API Server를 통해 전달됨
- 그 설정들은 etcd에 저장됨
- Controller Manager는 API Server를 통해 클러스터 상태를 모니터링함
- 새로운 파드가 스케줄됐을 때, Scheduler가 적정한 Worker Node를 선정한다
- 이 선정된 내용을 API Server가 선정된 노드에게 전달한다
- 그리고 그 노드의 kubelet이 컨테이너를 실행시킨다
- 새로운 어플리케이션 배포 시, 설정 파일들이 API Server를 통해 전달됨
728x90
반응형
'데브옵스 devOps > Kubernetes' 카테고리의 다른 글
[k8s] 쿠버네티스에서 Secrets란? (1) | 2024.11.19 |
---|---|
[k8s] 쿠버네티스에서 Config Map이란? (0) | 2024.11.18 |
[k8s] 쿠버네티스에서 Service 란? (0) | 2024.11.15 |
[k8s] 메인 컴포넌트들 (1) | 2024.11.14 |
[k8s] 쿠버네티스란? (0) | 2024.11.12 |