반응형
안녕하세요.
이번 글은 쿠버네티스의 클러스터 아키텍처 개념 정리입니다.
## 들어가기 전
쿠버네티스란 컨테이너 관리 도구입니다.
컨테이너를 생성하고 설정을 변경하는 것(예를 들면 port-forward), 장애 시에도 고가용성을 보장하는 구조라는 것들을 생각해볼 수 있습니다.
컨테이너를 감싼 proxy를 떠올리며
쿠버네티스의 마스터 노드에서 명령어를 받아 etcd에 내용들을 저장하고 cloud 업체(GCP, AWS)와 통신하는 cloud-controller-manager와 kube-apiserver를 통해 kubelet과 kube-proxy를 제어하는 그림을 상상해보셨으면 합니다.
## 쿠버네티스의 클러스터
여러 대의 서버가 하나의 클러스터로 연결된 구조
### 컨트롤 플레인
- 컨트롤 플레인이라 불리우는 모음은 **마스터 노드**에서 실행됩니다.
컨트롤 플레인을 구성하는 컴포넌트
- kube-apiserver
- 명령어 API를 처리
- etcd
- 저장소
- => 노드와 클러스터에 리소스와 같은 정보를 저장
- kube-scheduler
- 새로 생성된 파드를 실행할 노드를 결정
- kube-controller-manager
- deployment 와 같은 리소스 컨트롤러를 관리
- cloud-controller-manager
- 클라우드 업체와 연동하여 로드 밸런서나 디스크 볼륨과 같은 자원을 관리
**워커노드**
워커 노드는 클러스터 내에서 사용자의 워크로드를 실행
노드 컴포넌트
- kublet
- 노드에 예약된 워크로드를 실행하기 위해 컨테이너 런타임을 관리하고
- 컨테이너 상태를 모니터링한다.
- kube-proxy
- 서로 다른 노드에 있는 파드 간 통신이나 파드와 인터넷 사이의 네트워크 트래픽을 라우팅한다.
- container runtime
- 컨테이너를 시작하고 중지하며 커넽이너 간 통신을 처리한다.
- 일반적으로 도커가 사용된다.
- 쿠버네티스의 경우 rkt 나 CRI-O와 같은 다른 컨테이너 런타임도 지원한다.
반응형
'kubernetes' 카테고리의 다른 글
kubernetes localhost 연결 - sonarqube (0) | 2022.07.21 |
---|---|
k8s: yaml 파일 구조 - 2 (0) | 2022.05.31 |
k8s: minikube 클러스터 만들기 - 1 (0) | 2022.05.18 |
쿠버네티스 아키텍처 - 클러스터 (0) | 2020.06.15 |
쿠버네티스 시작하기 - RUN (0) | 2020.06.06 |