반응형
쿠버네티스(Kubernetes) 클러스터가 어떤식으로 구성되어 있는지 간략하게 알아보자.
쿠버네티스는 수많은 노드로 구성될 수 있으나, 노드는 크게 두가지 유형으로 나뉜다.
1. 마스터 노드
쿠버네티스 컨트롤 플레인을 실행하는 노드이다. 컨트롤 플레인은 쿠버네티스 클러스터 전체를 제어하고 관리하는 역할을 하는 구성 요소들로 이루어져 있다.
2. 워커 노드
실제 컨테이너들이 배포되는 노드이다. 워커 노드에 애플리케이션 컨테이너들이 구동된다. 마스터 노드도 컨트롤 플레인을 제외하면 하나의 워커 노드로서 기능할 수 있다.
다음은 마스터/워커 노드를 구성하는 요소들에 대한 간략한 설명이다.
컨트롤 플레인의 구성 요소
- API 서버 : 워커노드, 컨트롤 플레인의 구성 요소들과 통신한다.
- 스케쥴러 : 애플리케이션 컨테이너들의 배포를 스케쥴링한다. 컨테이너들을 워커 노드에 할당하고 이들의 구동을 관리한다.
- ETCD : 현재 클러스터가 구성된 정보들을 저장하고 있는 데이터 저장소 역할을 한다.
- 컨트롤러 매니저 : 구성 요소들의 복제본, 워커노드에 대한 추적, 노드 장애 처리 등과 같은 클러스터단에 필요한 기능들을 담당한다.
노드 구성요소
- 컨테이너 런타임 : docker, rkt 등 컨테이너를 실행하는 런타임 (k8s 클러스터의 구성 요소라고 볼 수는 없다.)
- Kubelet : 컨트롤 플레인의 API 서버와 통신하며 각 노드의 컨테이너를 관리한다.
- Kube proxy : 애플리케이션 구성 요소들의 네트워크를 로드밸런싱 해주는 쿠버네티스 서비스 프록시이다.
반응형