Kubernetes/Kubernetes Basics

📌 Kubernetes 핵심 개념: Pod, Node, Cluster 에 대한 이해

ygtoken 2025. 3. 2. 20:40
728x90

 

1️⃣ Kubernetes는 어떻게 동작할까?

 

Kubernetes는 단순한 컨테이너 오케스트레이션 툴이 아닙니다.

Kubernetes는 컨테이너 애플리케이션을 효율적으로 관리하는 분산 시스템입니다.

 

“Kubernetes는 수천 개의 컨테이너를 자동으로 배포하고, 스케일링하며, 관리하는 역할을 합니다.”

 

Kubernetes의 구조를 이해하려면, Pod, Node, Cluster 개념을 먼저 파악해야 합니다.

이제 하나씩 살펴볼까요? 🚀

 


 

2️⃣ Kubernetes Cluster란?

 

Kubernetes의 기본 단위는 **클러스터(Cluster)**입니다.

 

📌 Kubernetes 클러스터의 개념

**클러스터(Cluster)**는 여러 개의 **노드(Node)**가 모여 하나의 시스템처럼 동작하는 구조입니다.

클러스터 내부에서는 컨테이너(Pod)를 실행하고, 트래픽을 관리하며, 리소스를 조정합니다.

 

📌 Kubernetes 클러스터 구성 요소

+--------------------+      +--------------------+
|   🏢 Master Node   | ---> |   🚀 Worker Node 1  |
| (Control Plane)   |      | - Pod 1            |
| - API Server      |      | - Pod 2            |
| - Controller      |      | - Pod 3            |
| - Scheduler      |      +--------------------+
+--------------------+ 
                          +--------------------+
                          |   🚀 Worker Node 2  |
                          | - Pod 4            |
                          | - Pod 5            |
                          | - Pod 6            |
                          +--------------------+

클러스터는 Master Node와 여러 개의 Worker Node로 구성됨

Worker Node가 실제 애플리케이션을 실행하는 곳

Master Node는 클러스터 전체를 관리하는 컨트롤 타워

 


 

3️⃣ Node란? (Master Node & Worker Node)

 

Kubernetes 클러스터는 Master Node와 Worker Node로 구성됩니다.

 


 

✅ 3.1 Master Node (클러스터 컨트롤 타워)

 

Master Node는 클러스터 전체를 관리하고, 컨테이너를 배포하는 역할을 합니다.

 

📌 Master Node의 핵심 컴포넌트

구성 요소역할

API Server kubectl 명령을 받아들이고, 클러스터와 통신
Scheduler 새로 생성된 Pod를 적절한 Worker Node에 배치
Controller Manager 클러스터의 상태를 지속적으로 감시하고 조정
etcd 클러스터의 모든 상태 데이터를 저장하는 key-value 저장소

 

📌 Master Node의 동작 예시

1) 사용자가 kubectl apply -f app.yml 명령을 실행

2) API Server가 명령을 받아 Scheduler에게 전달

3) Scheduler가 Pod를 적절한 Worker Node에 배치

4) Controller Manager가 Pod가 정상적으로 실행되는지 감시

 

Master Node는 클러스터의 두뇌 역할을 한다.

 


 

✅ 3.2 Worker Node (컨테이너 실행)

 

Worker Node는 애플리케이션을 실제로 실행하는 곳입니다.

 

📌 Worker Node의 핵심 컴포넌트

구성 요소역할

Kubelet Master Node와 통신하며, Pod의 상태를 관리
Kube-proxy 네트워크 트래픽을 관리하고, 서비스 연결 수행
Container Runtime 컨테이너를 실행하는 런타임 (예: Docker, containerd)

 

📌 Worker Node의 동작 예시

1) Master Node가 “Pod 3개를 실행하라!“라고 명령

2) Worker Node의 Kubelet이 컨테이너를 실행

3) Kube-proxy가 네트워크 연결을 설정하여 서비스 제공

 

Worker Node는 실제 애플리케이션을 실행하는 곳이다.

 

 


 

4️⃣ Pod란? (Kubernetes의 가장 작은 단위)

 

Pod는 컨테이너를 감싸는 Kubernetes의 최소 배포 단위입니다.

 

📌 Pod의 개념

하나 이상의 컨테이너가 포함될 수 있음

같은 Pod 내의 컨테이너들은 **같은 네트워크(IP)**를 공유함

컨테이너 간 데이터를 공유할 수 있도록 공유 볼륨(Shared Volume) 제공

 

📌 Pod 구조 예시

+-------------------------+
| 🚀 Pod (my-app)        |
| ---------------------- |
|  🐳 Container 1 (Nginx) |
|  🐳 Container 2 (Redis) |
+-------------------------+

Pod 내부 컨테이너끼리는 localhost로 통신 가능

Pod는 필요할 때마다 생성되었다가 삭제됨 (단명성 Ephemeral)

 


 

5️⃣ Kubernetes 클러스터 배포 예제

 

이제 Kubernetes 클러스터에서 Pod를 배포하는 예제를 살펴보겠습니다.

 

📌 Pod를 실행하는 기본 YAML 파일

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: nginx
    ports:
    - containerPort: 80

kubectl apply -f pod.yml 명령어로 배포 가능

✅ Nginx 컨테이너를 실행하는 단일 Pod 생성

 

📌 Pod 배포 확인 명령어

kubectl get pods
kubectl describe pod my-pod

✅ Pod가 정상적으로 실행되는지 확인 가능

 


 

📌 결론: Kubernetes의 핵심 개념 요약

 

개념설명

Cluster 여러 개의 Node가 모여서 구성된 시스템
Master Node 클러스터를 관리하고 Pod를 배포
Worker Node 실제 애플리케이션이 실행되는 곳
Pod 하나 이상의 컨테이너가 실행되는 최소 배포 단위

🔥 Kubernetes는 클러스터 기반으로 컨테이너를 효율적으로 관리하는 시스템입니다!

 

 

728x90