
📍 Kubernetes(K8S)
- 컨테이너화된 애플리케이션을 배포, 관리, 확장하는 데 사용되는 오픈 소스 플랫폼.
- 컨테이너 오케스트레이션 = 컨테이너를 관리하는 도구
🚩 클러스터 → 노드 → 파드 흐름
요청이 처리되는 흐름을 단계적으로 살펴보면 다음과 같다.
1️⃣ 사용자의 요청
- 사용자가 웹 브라우저에서 웹 사이트를 방문한다고 가정
- 방문 요청을 보내고, 해당 요청은 클러스터로 전달된다.
2️⃣ 클러스터가 요청을 관리
- 마스터 노드가 요청을 받고, 해당 요청을 처리할 워커 노드에 명령을 내린다.
3️⃣ 워커 노드에서 파드 실행
- 워커 노드는 클러스터의 일부로, 요청을 처리할 수 있는 파드를 찾는다.
- 파드는 컨테이너를 통해 요청을 처리하고 사용자에게 응답한다.
[클러스터]
├─ [노드1]
│ ├─ [파드1]
│ ├─ [파드2]
│
├─ [노드2]
│ ├─ [파드3]
│ ├─ [파드4]
│
├─ [노드3]
│ ├─ [파드5]
│ ├─ [파드6]
클러스터(Cluster)
- 클러스터는 쿠버네티스의 기본 단위로, 여러 대의 컴퓨터(서버)를 묶어 하나의 시스템처럼 동작하도록 만든 환경이다.
- 애플리케이션 실행에 필요한 모든 컴퓨팅 자원(CPU, 메모리, 저장소)을 제공한다.
구성 요소
- 클러스터는 크게 마스터 노드와 워커 노드, 이렇게 두 개의 노드로 구분된다.
💡 클러스터 는 회사, 마스터 노드는 경영진, 일을 실제로 수행하는 워커 노드는 직원들
노드(Node)
- 노드는 클러스터를 구성하는 각각의 컴퓨터(서버)이다.
- 클러스터는 노드를 통해 애플리케이션을 실행할 수 있는 자원을 제공한다.
마스터 노드(Control Plane): 클러스터의 두뇌 역할을 한다.
- 클러스터 내부의 상태를 관리하고, 애플리케이션 배포, 스케일링, 장애 복구 등의 작업을 지휘
- k8s 의 주요 컴포넌트(스케줄러, 컨트롤러 매니저, API 서버 등)가 실행됨.
- 애플리케이션이 실행되는 곳은 아니며, 클러스터를 감독하고 명령을 내리는 관리자 역할.
워커 노드(Worker Nodes): 애플리케이션을 실제로 실행하는 역할.
- 각 워커 노드는 실제로 파드(Pod)가 배치되고 실행되는 장소이다.
- 워커 노드는 클러스터에 연결된 모든 컴퓨팅 자원(CPU, 메모리 등)을 k8s 에 제공.
파드(Pod)
- 파드는 쿠버네티스에서 애플리케이션을 실행하는 가장 작은 단위이다.
- 컨테이너(서비스)가 들어있는 일종의 상자로, k8s 는 파드를 통해 컨테이너를 관리한다.
컨테이너 그룹
- 파드는 보통 하나의 컨테이너를 실행하지만, 필요에 따라 여러 컨테이너를 포함하기도 한다.
- 같은 파드에 속한 컨테이너들은 하나의 IP 주소와 저장소(볼륨)를 공유한다.
일시적 존재
- 파드는 언제든 종료되거나 새로 생성될 수 있다.
- 쿠버네티스가 상태를 지속적으로 모니터링하며 파드를 복구하거나 교체한다.
💡 파드는 팀프로젝트라고 할 수 있다.
팀 내부에서는 같은 자원(IP 주소와 볼륨)을 공유하고, 팀원(컨테이너)끼리 협력하며 일을 진행한다.