#쿠버네티스
141 편의 글

GitOps
매니페스트의 source of truth를 git에 두고 클러스터 안의 컨트롤러가 git을 watch 해 자동으로 동기화하는 운영 모델을 다룹니다. push 모델과 pull 모델의 차이, GitOps의 네 원칙, ArgoCD의 Application CRD · App of Apps · Sync Wave, Flux의 GitRepository · Kustomization · HelmRelease, 디렉터리 구조 패턴, 그리고 비밀을 git에 두는 세 가지 표준 도구까지 한 사이클로 정리하며 3부를 마무리합니다.

kubectl 디버깅 패턴
5부 (운영 · 디버깅 · 비용)의 첫 챕터입니다. 운영 클러스터에서 가장 자주 마주치는 사고 (CrashLoopBackOff, OOMKilled, ImagePullBackOff, Pending, Service가 안 닿음)의 진단 트리를 한 곳에 정리합니다. describe · events · logs의 세 명령에서 출발해 kubectl debug의 ephemeral container, 네트워크 진단 패턴, 19장 옵저버빌리티 스택과의 결합까지 신입 SRE의 첫 reference가 되는 매뉴얼로 묶습니다.

RBAC / NetworkPolicy / ResourceQuota
한 클러스터에 여러 팀 · 환경이 같이 사는 멀티테넌트 운영의 격리를 만드는 세 정책 객체를 다룹니다. RBAC의 Role · ClusterRole · ServiceAccount · RoleBinding 모델, NetworkPolicy의 default-deny 패턴과 CNI 의존성, ResourceQuota와 LimitRange의 짝 관계까지 한 사이클로 정리하며 2부를 마무리합니다.

RBAC / ServiceAccount 깊이
14장 RBAC의 기본 위에 운영 클러스터에서 마주치는 깊이를 한 층 더 얹습니다. ClusterRole을 라벨로 합치는 Aggregated ClusterRole, 다른 주체의 권한으로 호출하는 Impersonation, ServiceAccount 토큰이 영구 Secret에서 만료 · audience · rotation을 갖춘 projected token으로 바뀐 흐름, 그리고 EKS의 IRSA · GKE의 Workload Identity로 K8s ServiceAccount를 클라우드 IAM과 묶는 모델까지 한 사이클로 정리합니다.

모니터링·알람
24장까지 갖춰진 myshop-api는 코드부터 배포까지 자동화됐지만, 그 동작을 보지 못하면 운영이 굴러가지 않습니다. 이번 챕터는 EKS 클러스터의 옵저버빌리티 스택을 본격적으로 얹습니다. kube-prometheus-stack으로 Prometheus · Grafana · Alertmanager를 한 번에 설치하고, ServiceMonitor / PrometheusRule로 myshop-api 메트릭과 4 golden signals 알람을 표준화하고, Loki로 로그를, CloudWatch Container Insights로 AWS 결합 메트릭과 장기 보관을 함께 잡고, severity · team 라우팅으로 Slack / PagerDuty의 on-call 흐름까지 한 사이클로 정리합니다.

비용 최적화
5부 두 번째 챕터입니다. 26장에서 다섯 출처로 짚었던 비용 항목을 본격적으로 다룹니다. 컴퓨트 (노드)와 부가 (LB · 스토리지 · 네트워크 · 컨트롤 플레인)의 두 축, requests의 비용 의미, VPA · Goldilocks · KRR의 right-sizing, Spot · Karpenter · Cluster Autoscaler의 결정 트리, bin packing과 descheduler, OpenCost · Kubecost의 가시화, namespace 라벨 단위 chargeback / showback, PV · 네트워크 비용까지 한 사이클로 묶고 다음 달 청구서 review 체크리스트로 마무리합니다.

시크릿 운영
5부 세 번째 챕터입니다. K8s Secret의 base64 한계와 etcd encryption-at-rest의 의미부터 시작해, 저장 · 회전 · 주입 · 감사의 네 축으로 시크릿 라이프사이클을 다룹니다. sealed-secrets · external-secrets · SOPS 세 옵션의 비교, IRSA와 결합한 비밀번호 0 운영 (AWS API는 IRSA, DB는 RDS IAM auth), envFrom vs mount의 회전 차이, RBAC로 네임스페이스 단위 분리, Audit log와 GuardDuty의 감사 관점까지 본격적인 운영 매뉴얼로 묶습니다.

앱 배포 골격
21장에서 띄운 비어 있는 EKS 클러스터 위에 샘플 서비스 myshop-api를 한 묶음의 매니페스트로 배포합니다. Namespace · ServiceAccount · ConfigMap · Secret · Deployment · Service · Ingress · HPA · PodDisruptionBudget의 9개 객체를 한 사이클로 정리하고, AWS Load Balancer Controller로 ALB를 자동 프로비저닝합니다. 그 묶음을 Helm 차트로 추상화해 dev / prod에 서로 다른 values로 적용하는 방식까지 한 번에 따라갑니다.

업그레이드 전략
5부의 마지막 챕터입니다. K8s 마이너 릴리스 (14개월 지원)를 안전하게 따라가는 운영 매뉴얼입니다. 컨트롤 플레인 → 데이터 플레인 (노드) → 애드온의 순서, deprecated API 검출 (pluto · kubent · apiserver 메트릭), 매니페스트 / Helm / Operator CR의 API 버전 마이그레이션, EKS의 노드 그룹 / Karpenter NodePool drift 흐름, 노드 drain의 안전장치 (PDB · terminationGracePeriodSeconds), blast radius 최소화, 롤백 시나리오, RPO / RTO 별 백업 선택, 그리고 업그레이드 전 1주 / 당일 / 후 1주 체크리스트까지 한 사이클로 다룹니다.

옵저버빌리티
운영 클러스터의 시야를 만드는 세 축 — 메트릭 (Prometheus + kube-state-metrics + node-exporter), 로그 (Loki), 트레이스 (OpenTelemetry + Tempo) — 와 시각화 (Grafana), 알람 (Alertmanager)의 표준 스택을 정리합니다. kube-prometheus-stack의 ServiceMonitor · PrometheusRule, PromQL · LogQL의 한 줄 예시, 그리고 카디널리티 · 보존 · 알람 SNR · golden signals의 운영 가드레일까지 한 사이클로 다룹니다.

운영 체크리스트
4부 (EKS 실전)의 마지막 챕터입니다. 클러스터를 안정적으로 띄우는 일과 한 해 동안 안전하게 운영하는 일은 다른 결의 작업입니다. EKS 마이너 업그레이드 사이클, 노드 그룹 교체 패턴, RDS PITR과 분기 복구 훈련, Karpenter + Spot으로 비용을 잡는 길, kube-bench · Trivy · Kyverno로 보안 점검을 정기화하는 흐름까지 정리합니다. 마지막으로 4부 6장 (21~26장)의 회고와 1~4부 26장이 손에 무엇을 남겼는지를 한 묶음으로 짚습니다.

풀스택 앱 EKS 배포하기
6부 캡스톤 — 책의 마지막 챕터입니다. 리액트의 Next.js (App Router + RSC + Server Actions) 앱과 모던 파이썬의 FastAPI (SQLAlchemy 2.x + Pydantic v2) 앱을 같은 TODO 도메인 위에서 한 EKS 클러스터에 함께 배포합니다. Terraform + Karpenter + IRSA + ALB Controller + ExternalDNS + cert-manager의 클러스터 셋업부터, RDS + External Secrets + RDS IAM auth의 DB 연동, Helm + ArgoCD ApplicationSet의 환경별 배포, Prometheus + Grafana + Loki + OpenTelemetry의 옵저버빌리티, HPA + Karpenter의 오토스케일링, k6 부하 테스트 + OpenCost 비용 추정, 그리고 26장 + 30장 운영 사이클의 적용까지를 13개의 PR로 한 사이클로 다룹니다. 1~30장의 모든 도구가 한 시스템 안에서 어떻게 맞물리는지의 시야가 본 캡스톤에서 손에 들어옵니다.