No Story, No Ecstasy

쿠버네티스 클러스터 아키텍처 본문

Shallow Series

쿠버네티스 클러스터 아키텍처

heave_17 2021. 1. 9. 02:18

1. 컨트롤 플레인

  - 클러스터의 두뇌 역할을 하며 스케쥴링, 서비스 관리, API 요청 처리 등의 작업을 수행

  - 클러스터 내 마스터 노드에서 실행

  - 구성 요소

    . kube-apiserver: 컨트롤플레인의 frontend 서버로 API 요청을 처리

    . etcd: 쿠버네티스 관련 모든 메타데이터 (정보)를 저장하는 DB

    . kube-scheduler: 새로 생성된 Pod을 싱행할 노드를 결정

    . kube-controller-manager: 리소스 컨트롤러(ex. deployment) 관리

    . cloud-controller-manager: 클라우드 업체와 연동하여 로드 밸런서나 디스크 볼륨과 같은 자원 관리

 

2. 노드 컴포넌트

  - 클러스터 내 사용자의 워크로드를 실행

  - 도커 데스크톱이나 미니큐브와 같이 클러스터 크기가 매우 작은 경우를 제외하고는 마스터 노드는 일반적으로

    사용자 워크로드를 실행하지 않는다.

  - 구성 요소

    . kubelet: 노드에 예약된 워크로드를 실행하기 위해 컨테이너 런타임을 관리하고 상태 모니터링

    . kube-proxy: 서로 다른 노드에 있는 파드 간 통신이나 인터넷 사이의 네트워크 트래픽을 라우팅

    . container runtime: 컨테이너 시작 및 중지, 컨테이너 간 통신 처리 (일반적으로는 도커가 사용됨)

 

3. 고가용성 보장

  - 컨트롤 플레인은 다수의 마스터 노드로 구성되어 고가용성을 보장 (상용 클러스터는 최소 3개 마스터 노드 필요)

  - 네트워크 파티션 상황 (네트워크 장애로 일부 컴포넌트 간 통신 불가)도 처리 가능

  - etcd 데이터베이스는 여러 노드에 걸쳐 복제된다.

  - 워커 노드 장애시 해당 노드의 Pods를 다른 노드로 재조정

 

4. 관리형 쿠버네티스 서비스

  - 구글 쿠버네티스 엔진 (GKE) : 클러스터 오토 스케일링 기능 제공, 모든 면에서 최고

  - 아마존 일래스틱 쿠버네티스 서비스 (EKS)

  - 애저 쿠버네티스 서비스 (AKS)

  - 오픈시프트

  - IBM 클라우드 쿠버네티스 서비스

 

5. 쿠버네티스 자체 호스팅

  - *kops: 클러스터의 자동 프로비저닝을 위한 명령줄 도구

  - *Kubespary: 클러스터를 쉽게 배포하는 도구 (온프레미스 베어 메탈 서버에 쿠버네티스를 설치하는데 중점)

  - TK8: 클러스터 프로비저닝을 위해 사용

  - kubeadm: 쿠버네티스에서 제공하는 도구 (클러스터 설치 및 관리)

 

 

 

* 적게 실행하는 소프트웨어 (시간을 관리하고 경쟁자를 물리치는 데 도움이 되는 핵심)

  1. 표준 기술을 선택하라

  2. 차별화되지 않는 고된 일은 아웃소싱하라

  3. 지속적인 경쟁 우위를 창출하라

'Shallow Series' 카테고리의 다른 글

React 기초  (0) 2021.01.15
쿠버네티스 오브젝트 ( Kubernetes Object )  (0) 2021.01.09
Kubernetes 관련 내용  (0) 2021.01.08
Docker 관련 내용  (0) 2021.01.08
[Ubuntu 20.04] 인터넷 문제 ( Network Unclaimed ) 해결  (26) 2021.01.06