쿠버네티스 (Kubernetes)
- 컨테이너 오케스트레이션 도구
- 여러 대의 컨테이너가 여러 대의 물리적 서버에 걸쳐 실행되는 것을 전제로 함
쿠버네티스 노드 (Kubernetes Node)
마스터 노드 (Master Node)
- 전체적인 제어를 담당
- kubernetes, CNI, etcd를 설치해야 함
- 컨트롤 플레인 (Control Plain) 구성
항목 |
내용 |
kube-apiserver |
외부와 통신하는 프로세스, kubectl로부터 명령을 전달받아 실행 |
kube-controller-manager |
컨트롤러를 통합 관리, 실행 |
kube-scheduler |
파드를 워커 노드에 할당 |
cloud-controller-manager |
클라우드 서비스와 연동해 서비스를 생성 |
etcd |
클러스터 관련 정보 전반을 관리하는 데이터베이스 |
워커 노드 (Worker Node)
- 실제 동작을 담당
- kubernetes, CNI, container engine (ex. Docker)을 설치해야 함
- 구성
항목 |
내용 |
kube-let |
마스터 노드에 있는 kube-scheduler와 연동하며 워커 노드에 파드를 배치하고 실행 |
실행 중인 파드의 상태를 정기적으로 모니터링하며 kube-scheduler에 통지 |
|
kube-proxy |
네트워크 통신의 라우팅 메커니즘 |
kubectl
- Kubernetes 클러스터를 관리하기 위한 명령줄 도구이며 관리자 컴퓨터에 설치해야 함
CNI
컨테이너 네트워크를 설정하고 관리하는 표준 인터페이스 및 플러그인 시스템
쿠버네티스 클러스터에서 Pod 간 통신, 외부와의 통신, IP 할당 등을 담당하는 네트워크 모듈
리소스 (Resource)
파드 (Pod)
- 컨테이너와 볼륨을 함께 묶은 것
- 기본적으로 파드 하나가 컨테이너 하나지만 컨테이너가 여러개인 파드도 있을 수 있음
서비스 (Service)
- 여러 개의 파드를 관리하며 파드로의 요청을 배분
- 서비스가 관리하는 파드는 모두 동일한 구성을 갖음
- 자동적으로 고정된 IP 주소를 부여받음 (cluster IP)
- 서비스가 분배하는 통신은 한 워커 노드 안으로 국한됨
- 여러 워커 노드 간의 분배는 실제 로드 밸런서 또는 인그레스가 담당

레플리카세트 (ReplicaSet)
- 파드의 수를 관리
- 레플리카(replica)란 레플리카세트가 관리하는 동일한 구성의 파드를 말함
디플로이먼트 (Deployment)
- 파드의 배포를 관리
- 파드가 사용하는 이미지 등 파드에 대한 정보를 갖고 있음

그 외
리소스 이름 |
내용 |
파드템플릿 (podtemplate) |
배포 시 파드의 형틀 역할 |
레플리케이션컨트롤러 (replicationcontroller) |
레플리케이션을 제어 |
리소스쿼터 (resourcequota) |
쿠버네티스 리소스의 사용량 제한을 설정 |
비밀값 (secret) |
키 정보를 관리 |
서비스어카운트 (serviceaccount) |
리소스를 다루는 사용자를 관리 |
데몬세트 (daemonset) |
워커 노드마다 하나의 파드를 생성 |
스테이트풀세트 (statefulset) |
파드의 배포를 상태를 유지하며 관리 |
크론잡 (cronjob) |
지정된 스케줄대로 파드를 실행 |
잡 (job) |
파드를 한번 실행 |
출처: 오가사와라 시게타카, 「그림과 실습으로 배우는 도커 & 쿠버네티스」, 위키북스