Skip to main content

Kubernetes Series

컨테이너 오케스트레이션의 표준 — 아키텍처 이론부터 심화 운영까지


🎯 시리즈 목적

왜 Kubernetes인가

Docker로 컨테이너를 실행할 수 있지만, 수십~수천 개의 컨테이너를 관리하려면 오케스트레이션이 필요함. Kubernetes(K8s)는 컨테이너 오케스트레이션의 사실상 표준임.

  • CNCF 졸업 프로젝트, 모든 주요 클라우드(AWS EKS, Azure AKS, GCP GKE) 지원
  • 인프라 엔지니어의 필수 역량 — CKA 자격증이 업계 표준
  • Docker(단일 호스트) → Kubernetes(클러스터) → 서비스 메시/GitOps로 이어지는 학습 경로

시리즈 구성

구분범위대상
기본편 (#1~#12)K8s 아키텍처, 핵심 오브젝트, 네트워크, 스토리지, 운영CKA 범위. K8s를 이해하고 운영하기 위한 필수 지식
심화편 (#13~#18)Service Mesh, Operator, 보안 강화, 멀티클러스터, FinOps, ServerlessCKA 이후. 프로덕션 환경의 고급 주제

📐 시리즈 구성 철학

flowchart TD
subgraph Core["기본편 (#1~#12) — CKA 범위"]
subgraph P1["Phase 1: 기초"]
K1["#1 Overview"]
K2["#2 Cluster Architecture"]
end
subgraph P2["Phase 2: 핵심 오브젝트"]
K3["#3 Pod & Workload"]
K4["#4 Service & Networking"]
K5["#5 Storage"]
K6["#6 Configuration"]
end
subgraph P3["Phase 3: 보안 & 운영"]
K7["#7 RBAC & Security"]
K8["#8 Scheduling"]
K9["#9 Observability"]
K10["#10 Cluster Admin"]
end
subgraph P4["Phase 4: 에코시스템"]
K11["#11 Helm"]
K12["#12 CI/CD & GitOps"]
end
P1 --> P2 --> P3 --> P4
end

subgraph Advanced["심화편 (#13~#18) — 프로덕션 고급"]
K13["#13 Service Mesh"]
K14["#14 Operator & CRD"]
K15["#15 보안 심화"]
K16["#16 멀티클러스터"]
K17["#17 FinOps"]
K18["#18 Serverless"]
end

Core --> Advanced

📚 기본편 목차 (#1~#12) — CKA 범위

Phase 1: 기초

#제목상태
1Kubernetes Overview
2Cluster Architecture

Phase 2: 핵심 오브젝트

#제목상태
3Pod & Workload Resources
4Service & Networking
5Storage — PV, PVC, StorageClass
6ConfigMap, Secret & Configuration

Phase 3: 보안 & 운영

#제목상태
7RBAC & Security
8Scheduling & Resource Management
9Observability — 로깅 & 모니터링
10Cluster Administration

Phase 4: 에코시스템

#제목상태
11Helm & Package Management
12CI/CD & GitOps

📚 심화편 목차 (#13~#18) — 프로덕션 고급

#제목상태
13Service Mesh — Istio & Linkerd
14Operator Pattern & CRD
15보안 심화 — OPA, Falco, Supply Chain
16멀티클러스터 & Federation
17FinOps — K8s 비용 최적화
18Serverless on K8s — Knative

✅ = 작성 완료 / 📋 = 목차 확정, 미작성


📋 기본편 상세 목차

#1 Kubernetes Overview ✅

1. K8s란 (역사, 설계 원칙, 해결하는 문제)
2. 아키텍처 전체 그림 (Control Plane, Worker Node)
3. 핵심 오브젝트 맵
4. 배포판/관리형 서비스 비교
5. Docker → K8s 대응표
6. CKA 시험 매핑

#2 Cluster Architecture

1. Control Plane 컴포넌트
- API Server — REST API, 인증/인가, Admission Control
- etcd — Raft 합의, 스냅샷 백업/복원
- kube-scheduler — 필터링 → 스코어링
- kube-controller-manager — 컨트롤 루프 모음
- cloud-controller-manager

2. Worker Node 컴포넌트
- kubelet — CRI를 통해 Container Runtime 호출
- kube-proxy — iptables/IPVS
- Container Runtime — containerd, CRI-O

3. 통신 흐름 (kubectl → API → etcd → kubelet → Runtime)

4. etcd 심화 (Raft, 클러스터, 백업/복원, stacked vs external)

5. HA 구성 (Control Plane HA, etcd HA, Worker 장애 처리)

6. Proxmox/VMware 위에 K8s 배포 (VM 설계, kubeadm 설치)

#3 Pod & Workload Resources

1. Pod (생명주기, Multi-container 패턴, Init Container, Probe, PDB)
2. ReplicaSet
3. Deployment (롤링 업데이트, 롤백, 배포 전략)
4. StatefulSet (안정적 ID, 순차 생성, Headless Service)
5. DaemonSet
6. Job & CronJob

#4 Service & Networking

1. K8s 네트워킹 모델 (Pod IP, CNI)
2. Service (ClusterIP, NodePort, LoadBalancer, ExternalName, kube-proxy)
3. DNS (CoreDNS)
4. Ingress (Nginx/Traefik, TLS, 경로/호스트 라우팅)
5. NetworkPolicy (Ingress/Egress 규칙)
6. CNI 비교 (Flannel, Calico, Cilium, Weave)

#5 Storage

1. K8s 스토리지 모델 (Volume → PV → PVC → StorageClass)
2. Volume 유형 (emptyDir, hostPath, NFS, Ceph)
3. PV & PVC (Access Mode, Reclaim Policy)
4. StorageClass & Dynamic Provisioning
5. CSI (Container Storage Interface)
6. StatefulSet + PVC 패턴

#6 ConfigMap, Secret & Configuration

1. ConfigMap (환경변수, 볼륨 마운트, CLI 인자)
2. Secret (유형, Base64, etcd 암호화, External Secrets)
3. 환경변수 주입 패턴
4. Resource Requests & Limits (QoS, LimitRange, ResourceQuota)

#7 RBAC & Security

1. 인증 (X.509, Service Account, OIDC)
2. RBAC (Role/ClusterRole, RoleBinding/ClusterRoleBinding)
3. Service Account
4. Pod Security (PSS, Security Context, PSA)
5. NetworkPolicy
6. 이미지 보안 (스캐닝, 서명, Private Registry)

#8 Scheduling & Resource Management

1. kube-scheduler (필터링 → 스코어링)
2. nodeSelector, Node Affinity, Pod Affinity/Anti-Affinity
3. Taint & Toleration (전용 노드 패턴)
4. HPA, VPA, Cluster Autoscaler
5. Priority & Preemption

#9 Observability

1. Metrics Server, Prometheus, Grafana, kube-state-metrics
2. 로깅 (kubectl logs, 중앙 집중: EFK, Loki)
3. 트레이싱 (Jaeger, Tempo, OpenTelemetry)
4. 디버깅 (describe, logs, exec, ephemeral container)

#10 Cluster Administration

1. kubeadm 클러스터 설치
2. 클러스터 업그레이드 (drain → upgrade → uncordon)
3. etcd 백업/복원
4. 인증서 관리/갱신
5. 트러블슈팅 (NotReady, CrashLoopBackOff, DNS 등)
6. 노드 관리 (cordon/drain/uncordon)

#11 Helm & Package Management

1. Helm 핵심 (Chart, Release, Repository, values.yaml)
2. 실전 (공개 Chart, 커스텀 Chart, 환경별 values)
3. Kustomize (base + overlay, kubectl apply -k)

#12 CI/CD & GitOps

1. K8s CI/CD 패턴 (이미지 빌드 → 매니페스트 → 배포)
2. GitOps 개념 (Git = Single Source of Truth, Pull 기반)
3. ArgoCD (Application CRD, Sync, Health)
4. Flux (비교)

📋 심화편 상세 목차

#13 Service Mesh — Istio & Linkerd

1. Service Mesh란
- 마이크로서비스 간 통신의 복잡성 (서비스 디스커버리, 로드밸런싱, 재시도, 서킷 브레이커)
- 애플리케이션 코드에서 네트워크 로직을 분리 → 인프라 레이어로 이동
- Sidecar Proxy 패턴 — 각 Pod에 프록시(Envoy)를 주입

2. Istio 아키텍처
- Control Plane: istiod (Pilot, Citadel, Galley 통합)
- Data Plane: Envoy Proxy (Sidecar)
- Traffic Management — VirtualService, DestinationRule
- mTLS — 서비스 간 자동 TLS 암호화
- Observability — 분산 트레이싱, 메트릭, Kiali 대시보드

3. 트래픽 제어
- 카나리 배포 (가중치 기반 트래픽 분할)
- A/B 테스트 (헤더 기반 라우팅)
- 서킷 브레이커, 재시도, 타임아웃
- 장애 주입 (Fault Injection) — 카오스 엔지니어링

4. Linkerd
- Istio보다 경량, Rust 기반 프록시
- Istio vs Linkerd 비교 (복잡도, 성능, 기능)

5. Service Mesh가 필요한/필요 없는 상황
- 서비스 10개 미만 → 오버킬
- 서비스 수십 개+ → mTLS, 관찰성, 트래픽 제어 필요
- Ingress만으로 충분한 경우 vs Service Mesh가 필요한 경우

#14 Operator Pattern & CRD

1. CRD (Custom Resource Definition)
- K8s API를 확장하는 방법
- Custom Resource = K8s 네이티브 오브젝트처럼 관리되는 사용자 정의 리소스
- kubectl로 CRUD 가능

2. Operator 패턴
- CRD + Custom Controller = Operator
- "운영자의 지식을 코드로" — DB 백업, 스케일링, 업그레이드를 자동화
- Reconciliation Loop (현재 상태 → 원하는 상태)

3. 대표 Operator 사례
- Prometheus Operator — 모니터링 자동 설정
- Cert-Manager — TLS 인증서 자동 발급/갱신
- PostgreSQL Operator (Zalando/CrunchyData)
- Rook-Ceph Operator — Ceph 스토리지를 K8s 네이티브로

4. Operator 개발
- Operator SDK (Go, Ansible, Helm 기반)
- Kubebuilder
- Operator 성숙도 모델 (Level 1~5)

5. Operator Hub — 공개 Operator 검색

#15 보안 심화 — OPA, Falco, Supply Chain

1. Policy as Code — OPA/Gatekeeper
- OPA (Open Policy Agent) — 범용 정책 엔진
- Gatekeeper — OPA의 K8s 네이티브 구현
- ConstraintTemplate → Constraint로 정책 정의
- 예: 특정 레지스트리만 허용, 리소스 제한 필수, 레이블 필수

2. 런타임 보안 — Falco
- 시스템 콜 모니터링으로 비정상 행위 탐지
- 규칙 기반 알림 (컨테이너 내 셸 실행, 민감 파일 접근 등)
- SIEM 연동

3. Supply Chain Security
- 이미지 스캐닝 (Trivy, Grype)
- 이미지 서명/검증 (Cosign, Sigstore)
- SBOM (Software Bill of Materials)
- Admission Controller로 미서명/미스캔 이미지 차단

4. 네트워크 보안 심화
- Cilium NetworkPolicy (L7 정책)
- eBPF 기반 관찰/보안
- mTLS (Service Mesh 연계)

5. CIS Benchmark for Kubernetes
- kube-bench로 자동 검사

#16 멀티클러스터 & Federation

1. 왜 멀티클러스터인가
- 장애 격리 (블래스트 반경 제한)
- 지역/규정 분리 (데이터 주권)
- 환경 분리 (dev/staging/prod)
- 팀 분리 (독립적 클러스터)

2. 멀티클러스터 관리 도구
- Rancher — 웹 UI 기반 멀티클러스터 관리
- ArgoCD (멀티클러스터 GitOps)
- Cluster API — K8s로 K8s 클러스터를 관리
- vCluster — 가상 K8s 클러스터

3. Federation
- KubeFed (Kubernetes Federation v2)
- 멀티클러스터 Service, DNS

4. 멀티클러스터 네트워킹
- Submariner — 클러스터 간 Pod 네트워크 연결
- Istio 멀티클러스터

5. 멀티클러스터 전략 패턴
- Active-Active vs Active-Standby
- 클러스터 간 워크로드 분배

#17 FinOps — K8s 비용 최적화

1. K8s 비용 구조
- 클라우드 K8s: 노드(VM) 비용 + 네트워크 + 스토리지 + 관리 비용(EKS 등)
- 온프레미스: 하드웨어 + 전력 + 운영 인력

2. 비용 가시성
- Kubecost — K8s 네이티브 비용 모니터링
- OpenCost — CNCF 오픈소스 비용 모니터링
- 네임스페이스/팀/서비스별 비용 할당

3. 리소스 최적화
- requests/limits 적정값 설정 (VPA 추천)
- 미사용/과할당 리소스 탐지
- Spot/Preemptible 인스턴스 활용
- Cluster Autoscaler + Karpenter (AWS)

4. 스케줄링 최적화
- Bin Packing — 노드를 빈틈없이 채움
- 비피크 시간 스케일다운
- CronJob 기반 스케줄링 (야간 배치)

5. FinOps 문화
- 팀별 비용 책임 (Chargeback/Showback)
- 비용 알림 (예산 초과 시)
- 주기적 리뷰

#18 Serverless on K8s — Knative

1. Serverless란 — 서버 관리 없이 코드 실행
- FaaS (Function as a Service) 개념
- K8s 위에서 Serverless를 구현하는 이유

2. Knative
- Knative Serving — HTTP 요청 기반 자동 스케일링 (0까지)
- Knative Eventing — 이벤트 기반 아키텍처
- Scale-to-Zero — 트래픽 없으면 Pod 0개

3. 기타 Serverless 프레임워크
- OpenFaaS
- KEDA (Kubernetes Event-Driven Autoscaling)

4. Serverless가 적합한/부적합한 워크로드
- 적합: 간헐적 트래픽, 이벤트 처리, 웹훅
- 부적합: 상시 트래픽, 콜드 스타트가 문제되는 경우

🔄 CKA 시험 매핑

CKA 도메인비중기본편
Cluster Architecture, Installation & Configuration25%#1, #2, #10
Workloads & Scheduling15%#3, #8
Services & Networking20%#4
Storage10%#5
Troubleshooting30%#9, #10

💡 기본편(#1~#12)만으로 CKA 이론을 100% 커버. 심화편은 CKA 이후 프로덕션 운영에 필요한 고급 주제.


🔗 선행 학습

🔗 관련 문서


📝 참고 자료