1) 쿠버네티스란?
쿠버네티스는 컨테이너 오케스트레이션 도구의 일종이다.
컨테이너 오케스트레이션이란 시스템 전체를 통괄하고 여러 개의 컨테이너를 관리하는 일을 말한다.
2) 마스터 노드와 워커 노드
쿠버네티스는 전체적인 제어를 담당하는 - 마스터노드와 실제 동작을 담당하는 - 워커노드로 구성된다.
마스터 노드 - 컨테이너를 실행하지는 않으며 워커 노드에서 실행되는 컨테이너를 관리하는 역할 수행(엔진 설치 x)
워커 노드 - 실제 서버에 해당하는 부분으로 컨테이너가 실제 동작하는 서버(엔진 설치)
클러스터 - 마스터 노드와 워커 노드로 구성된 일군의 쿠버네티스 시스템
3) 컨트롤 플레인과 kubelet
마스터 노드는 컨트롤 플레인을 통해 워커 노드를 관리한다.
컨트롤 플레인은 아래 표에 정리된 다섯 가지의 컴포넌트로 구성된다.
1) 마스터 노드 컨트롤 플레인의 구성
항목 | 내용 |
kube-apiserver | 외부와 통신하는 프로세스, kubectl로부터 명령을 전달 받아 실행 |
kube-controller-manager | 컨트롤러를 통합 관리, 실행 |
kube-scheduler | 파드를 워커 노드에 할당 |
cloud-controller-manager | 클라우드 서비스와 연동해 서비스 생성 |
etcd | 클러스터 관련 정보 전반을 관리하는 데이터베이스 |
워커 노드에서는 kubelet과 kubeproxy가 동작한다.
2) 워커 노드의 구성
항목 | 내용 |
kube-let | 마스터 노드에 있는 kube-scheduler와 연동하여 워커 노드에 파드를 배치하고 실행한다. 실행중인 파드의 상태를 정기적으로 모니터링하며 kube-scheduler에 통지한다. |
kube-proxy | 네트워크 통신의 라우팅 메커니즘 |
4) 도커 컴포즈와 쿠버네티스의 차이점
1) 도커 컴포즈는 옵션을 지정해 수동으로 컨테이너의 수를 바꿀 수는 있어도 모니터링 기능이 없어서 컨테이너를 만들 때 외에는 관여하지 않지만 쿠버네티스는 이 상태를 유지하는 기능이 있다.
> 도커 컴포즈는 초기에 컨테이너를 생성하면 그걸로 끝이고 추가적인 모니터링이나 관리는 제공하지 않지만
쿠버네티스는 생성 모니터링 관리 모든것을 제공해준다.
2) 쿠버네티스의 정의 파일(매니페스트 파일)이 데이터베이스로 관리된다.
> 쿠버네티스가 정의 파일을 읽어들이면 그 내용이 etcd(데이터베이스)에 저장된다.
5) 쿠버네티스 구성과 관련 용어
파드 - 컨테이너와 볼륨을 함께 묶은 것으로, 기본적으로 파드 하나가 컨테이너 하나이지만 컨테이너가 여러개인 파드도 있을 수 있다.
> 파드에 포함되는 볼륨은 기본적으로 파드에 포함되는 컨테이너가 정보를 공유하기 위해 사용하는 것으로 파드에 볼륨이 없는 경우도 있다.
서비스 - 파드를 모은 것, 여러개의 파드를 이끄는 역할을 한다.
> 서비스의 역할은 쉽게 말하면 로드 밸런서(부하 분산장치)이며, 각 서비스는 자동적으로 고정된 IP 주소를 부여받으며(cluster ip) 이 주소로 들어오는 통신을 처리한다.
> 내부적으로 여러 개의 파드가 있어도 밖에서는 하나의 IP 주소(cluster IP)만 볼 수 있으며, 이 주소로 접근하면 서비스가 통신을 적절히 분배해주는 구조다.
> 서비스가 분배하는 통신은 한 워커 노드 안으로 국한되며, 여러 워커 노드 간의 분배는 실제 로드 밸런서 또는 인그레스가 담당한다.
로드밸런서, 인그레스 - 워커 노드에 요청을 분배해준다,
레플리카세트 - 파드의 수를 관리, 장애 등의 이유로 파드가 종료되었을 때 모자라는 파드의 수롤 보충하거나 정의된 파드의 수가 감소되면 파드를 감소시킨다.
레플리카 - 레플리카세트가 관리하는 동일한 구성의 파드
디플로이먼트 - 파드의 디플로이(배포)를 관리하는 요소로, 파드가 사용하는 이미지 등 파드에 대한 정보를 가지고 있다.
'도커&쿠버네티스' 카테고리의 다른 글
쿠버네티스 볼륨 개념 정리 (0) | 2025.03.05 |
---|---|
로키 리눅스 기반 쿠버네티스 설치 (0) | 2024.12.06 |
로키 리눅스 기반 도커 컴포즈 파일 작성 및 실행하기 (0) | 2024.10.28 |
로키 리눅스 기반 도커를 이용한 Nginx Reverse Proxy 서버 구축하기 (0) | 2024.10.17 |
로키 리눅스 기반 도커 이미지 만들기 (0) | 2024.10.14 |