Kubernetes Cluster 구성도

2023. 4. 7. 20:46Kubernetes

본 글은 Udemy 의 CKA 강의를 정리한 글입니다.
 
CKA : Certified Kubernetes Administrator
https://github.com/mmumshad/kubernetes-the-hard-way
강의노트:  https://github.com/kodekloudhub/certified-kubernetes-administrator-course 
 
쿠버네티스 클러스터는 노드 세트로 구성되는데, 
가상 ,온프레미스 또는 클라우드일수 있고, 컨테이너 형태의 응용 프로그램 호스트 일수 있다.
 
Worker node는 컨테이너를 로딩할 수있는 배다. 
 
선박에 컨테이너를 적재, 관리, 식별하는 작업이 필요하다. 
 
컨트롤하는 선박은 쿠버네티스의 Master Node다. 
Mater node 는 노드에 대한 정보 저장 , 컨테이너가 어디로 갈지 , 노드와 컨테이너의 모니터링  
 
어떤 컨테이너가 어떤 선박에 있고, 몇시에 적재됐는지는 
ETCD Cluster라는 DB에 고가용 키값 스토어에 저장된다. 
 
크레인(Kube-scheduler)이 선박에 실을 컨테이너를 식별한다. 
선박의 크기와 적재용량 선박에 실린 컨테이너 수와 기타 조건들을 기준으로 
선박의 목적지와 실을 수 있는 컨테이너 종류들을 결정한다. 
= 컨테이너를 설치하기 위해 올바른 노드를 식별한다. 컨테이너 리소스 요구사항이나, 워커노드 용량, 정책이나 제약조건 등
 
부두(Docker)에는 여러 사무실이 있고 각각 업무나 부서로 배정된다. 
운영팀은 선박관리나 교통 관제등을 담당한다. 파손문제나 선박의 항로들을 처리한다.
화물팀은 컨테이너가 손상되거나 파손되면 새 컨테이너를 준비해둔다. 
서비스 사무실이 있어 IT와 다른 선박간의 통신을 관리한다.
 
이와 유사하게 쿠버네티스에는 컨트롤러가 있다. 
node controller 는 노드 관리 : 새노드 클러스터에 온보
Replication controller (복제컨트롤러)는 복제 관리를 한다. 
 
각 사무실간의 연결은 Kube apiserver를 통해서 한다. 
Kube API 는 클러스터내에서 모든 작업을 오케스트레이션 한다. 
 
모든게 컨테이너 형태로 관리된다. 
그래서 컨테이너를 실행할 소프트웨어가 필요하다. 그게 컨테이너 런타임 엔진이다. 
= Docker 다.
 
Docker 는 클러스터의 모든 노드에 설치돼있다. (마스터 노드포함)
근데, 꼭 docker 일 필요는 없다. 쿠버네티스는 컨테이너드나 로켓등 다른 런타임 엔진을 지원한다. 
 
모든 배에는 선장이 있다. 
선장은 배의 모든 활동을 관리할 책임이 있다. 
주요 선박들과 연락을 주고받는 일을 맡았다. 합류할 의사가 있다고 주 선박에 알리고, 선박에 실을 컨테이너에 대한 정보를 받고, 필요한 만큼 적재하고  해당 선박의 컨테이너 상태를 주선장에게 보고했다. 
= Kubelet 
클러스터의 각노드에서 실행되는 Agent 다. 
Kube API 서버의 지시를 듣고 필요한 대로 노드에서 컨테이너를 배포하거나 파괴한다. 
 
Kube API 서버는 주기적으로 Kublet으로 부터 상태보고를 받는다. 컨테이너의 상태를 모니터하기 위해서.
 
A 노드의 컨테이너 B와 
C노드의 컨테이너 D 간의 통신은 Kube Proxy 를 통해서도 가능하다. 
Kube Proxy 는 Worker node 에 필요한 규칙이 실행되도록 한다. 
 
정리하자면, 
Master Node 와 Worker node 가 있다. 
 
Master Node 에는 
- ETCD Cluster : 클러스터에 대한 정보를 저장하는 DB
- Kube Scheduler : 노드의 응용 프로그램이나 컨테이너의 스케줄을 짠다. 
- Kube Controller Manager : Node Controller, Replication Controller 등을 다룬다. 
- Kube API Server : 클러스터 내의 모든 작업을 오케스트레이션한다.
 
Worker Node 에서는 
- Kubelet : Kube API 서버의 지시를 듣고 컨테이너와 Kube Proxy 를 관리한다.  , 클러스터 내부간의 통신을 가능하게 한다. 

출처: Kodekloud

 

'Kubernetes' 카테고리의 다른 글

Kube Controller Manager  (0) 2023.04.08
[Watch API] kube-scheduler 가 API server를 모니터링하는 방식  (0) 2023.04.08
Kube API server  (0) 2023.04.08
Docker 와 Container-D 이야기  (0) 2023.04.07
쿠버네티스 CKA 시험 정보  (0) 2023.04.07