소소한 IT이야기/CKA

Cluster Architecture 정리

Klaus 2025. 12. 27. 09:00

Kubernetes Cluster Architecture 

Kubernetes Cluster Architecture는 클러스터가 어떻게 구성되고, 요청이 어떻게 처리되며, 각 컴포넌트가 어떤 역할을 하는지를 설명한다.
CKA 시험에서 가장 기본이면서도 가장 많이 연결되는 영역이다.

 

1. Kubernetes Cluster 구성 개요

Kubernetes 클러스터는 크게 두 영역으로 나뉜다.

🔹 Control Plane (Master Node)

  • 클러스터 관리·제어
  • 상태 판단 및 의사결정

🔹 Data Plane (Worker Node)

  • 실제 애플리케이션(Pod) 실행

2. Control Plane (Master Node)

클러스터의 두뇌 역할
직접 컨테이너를 실행하지 않음

 

구성 요소 정리

2-1. kube-apiserver

  • 모든 요청의 단일 진입점
  • 인증(Authentication), 인가(Authorization), 검증(Validation) 수행
  • etcd와 통신하는 유일한 컴포넌트

📌 핵심:

  • kubectl → kube-apiserver → etcd

2-2. etcd

  • 분산 Key-Value 저장소
  • 클러스터의 모든 상태 정보 저장
    • Nodes, Pods, ConfigMaps, Secrets, RBAC 등

📌 특징:

  • Strong Consistency (RAFT)

장애 시 클러스터 치명적


2-3. kube-scheduler

  • 새로 생성된 Pod를 어느 Worker Node에 배치할지 결정
  • 기준:
    • 리소스(CPU, Memory)
    • Taints/Tolerations
    • Affinity/Anti-Affinity

📌 실행은 하지 않고 결정만 한다


2-4. kube-controller-manager

  • 클러스터 상태 감시
  • Desired State ≠ Current State → 자동 복구

대표 컨트롤러:

  • Node Controller
  • Deployment / ReplicaSet Controller
  • Job / CronJob Controller

3. Worker Node

실제 컨테이너가 실행되는 노드

 

구성 요소 정리

3-1. kubelet

  • Worker Node의 핵심 에이전트
  • 역할:
    • Node 등록
    • Pod 생성
    • Pod 상태를 kube-apiserver에 보고

📌 kubelet이 없으면 Pod 실행 불가


3-2. Container Runtime

  • 컨테이너 실행 담당
  • 예:
    • containerd
    • CRI-O

3-3. kube-proxy

  • Service 네트워크 담당
  • Service IP → Pod IP로 트래픽 전달
  • iptables / ipvs 규칙 생성

📌 특징:

  • 모든 Worker Node에서 실행
  • DaemonSet 형태
  • 직접 트래픽 처리 ❌ (규칙만 설정)

 

4. 요청 흐름 (kubectl → Pod 생성)

아키텍처 이해의 핵심 흐름

  1. 사용자가 kubectl apply
  2. kube-apiserver
    • 인증 / 인가 / 검증
  3. etcd에 상태 저장
  4. kube-scheduler가 노드 선택
  5. kubelet이 Pod 생성
  6. 상태를 kube-apiserver에 보고

📌 kube-apiserver 중심 구조


5. Service & Networking 구조

  • Pod IP는 휘발성
  • Service는 고정된 접근 지점

역할 분리

  • CNI: Pod ↔ Pod 통신
  • kube-proxy: Service ↔ Pod 연결

6. Master vs Worker 요약 비교

구분 Master worker
역할 관리/제어 실행
Pod 실행
kube-apiserver
etcd
kubelet
kube-proxy

7. Cluster Architecture 한 줄 요약

Kubernetes는 모든 판단은 Control Plane에서,
모든 실행은 Worker Node에서 이루어지는 구조다.

 

8. 실습 명령어 기준 정리

# 클러스터 / 노드
kubectl get nodes
kubectl get nodes -o wide

# Control Plane 컴포넌트
kubectl get pods -n kube-system
kubectl describe pod -n kube-system kube-apiserver-<master-name>
cat /etc/kubernetes/manifests/kube-apiserver.yaml

# etcd
kubectl get pods -n kube-system | grep etcd
kubectl exec -n kube-system etcd-<master-name> -- \
etcdctl get / --prefix --keys-only

ETCDCTL_API=3 etcdctl snapshot save snapshot.db
ETCDCTL_API=3 etcdctl snapshot status snapshot.db

# Scheduler / Pending Pod
kubectl get pods
kubectl describe pod <pod-name>

# Worker Node / kubelet
systemctl status kubelet
ps -ef | grep kubelet

# Container Runtime
kubectl describe node <node-name> | grep -i runtime
crictl info

# kube-proxy
kubectl get pods -n kube-system | grep kube-proxy
kubectl get daemonset kube-proxy -n kube-system

# Service / Networking
kubectl get svc
kubectl get endpoints
kubectl get endpointslices

# Pod 생성 흐름
kubectl apply -f pod.yaml
kubectl get pods
kubectl describe pod <pod-name>