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, Serverless | CKA 이후. 프로덕션 환경의 고급 주제 |
📐 시리즈 구성 철학
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: 기초
| # | 제목 | 상태 |
|---|---|---|
| 1 | Kubernetes Overview | ✅ |
| 2 | Cluster Architecture | ✅ |
Phase 2: 핵심 오브젝트
| # | 제목 | 상태 |
|---|---|---|
| 3 | Pod & Workload Resources | ✅ |
| 4 | Service & Networking | ✅ |
| 5 | Storage — PV, PVC, StorageClass | ✅ |
| 6 | ConfigMap, Secret & Configuration | ✅ |
Phase 3: 보안 & 운영
| # | 제목 | 상태 |
|---|---|---|
| 7 | RBAC & Security | ✅ |
| 8 | Scheduling & Resource Management | ✅ |
| 9 | Observability — 로깅 & 모니터링 | ✅ |
| 10 | Cluster Administration | ✅ |
Phase 4: 에코시스템
| # | 제목 | 상태 |
|---|---|---|
| 11 | Helm & Package Management | ✅ |
| 12 | CI/CD & GitOps | ✅ |
📚 심화편 목차 (#13~#18) — 프로덕션 고급
| # | 제목 | 상태 |
|---|---|---|
| 13 | Service Mesh — Istio & Linkerd | ✅ |
| 14 | Operator Pattern & CRD | ✅ |
| 15 | 보안 심화 — OPA, Falco, Supply Chain | ✅ |
| 16 | 멀티클러스터 & Federation | ✅ |
| 17 | FinOps — K8s 비용 최적화 | ✅ |
| 18 | Serverless 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 & Configuration | 25% | #1, #2, #10 |
| Workloads & Scheduling | 15% | #3, #8 |
| Services & Networking | 20% | #4 |
| Storage | 10% | #5 |
| Troubleshooting | 30% | #9, #10 |
💡 기본편(#1~#12)만으로 CKA 이론을 100% 커버. 심화편은 CKA 이후 프로덕션 운영에 필요한 고급 주제.
🔗 선행 학습
- Docker Series — Docker 기초 (이 시리즈 전에 Docker를 알아야 함)
- Container Virtualization — 컨테이너 개념, VM과 비교
- Linux Kernel Overview — 네임스페이스, cgroups
🔗 관련 문서
- Proxmox VE Series — VM 위에 K8s 배포 시
- Ansible — K8s 노드 설정 자동화
- Certification — CKA — CKA 자격증 로드맵
- AI 인프라 — K8s + GPU Operator
- MLOps — K8s 위 ML 파이프라인