쿠버네티스: 입문에서 EKS 실전까지
kubectl 첫 명령부터 GitOps · 옵저버빌리티까지, 한 권으로 끝내는 쿠버네티스
이 책이 다루는 것 #
- 기초부터 운영까지 하나의 흐름으로 연결합니다 —
kubectl get pods부터 RBAC · Admission Controller · CRD · GitOps · 옵저버빌리티 · EKS 운영까지, 쿠버네티스의 핵심 개념을 실전 운영 흐름 안에서 자연스럽게 이어 갑니다. - EKS를 중심에 둡니다 — 로컬 환경 minikube · kind도 다루지만, 책의 중심은 AWS EKS 위에서의 실전 운영입니다. 로컬 학습만으로는 이어지기 어려운 클라우드 운영 경험까지 자연스럽게 확장합니다.
- YAML만 보여주지 않습니다 — 왜 리소스가 그런 형태를 가지는지, 어떤 컨트롤러가 상태를 유지하는지, 문제가 생기면 어디서부터 진단해야 하는지를 함께 설명합니다.
- 운영까지 깊이 있게 다룹니다 — RBAC · NetworkPolicy · Admission을 통한 보안, Prometheus · Grafana · Loki · OpenTelemetry 기반의 옵저버빌리티, 디버깅, 비용 최적화, 업그레이드, 백업과 복구까지 실제 운영에 필요한 내용을 입문서의 마지막 단계에서 함께 다룹니다.
- 마지막에는 하나의 풀스택 시스템으로 완성합니다 — 6부 캡스톤에서는 리액트 책의 Next.js 앱과 모던 파이썬 책의 FastAPI 앱을 하나의 EKS 클러스터에 함께 배포합니다. 이를 통해 1~30장에서 다룬 기술들이 실제 서비스 안에서 어떻게 연결되고 운영되는지를 직접 확인할 수 있습니다.
이 책에서 다루지 않는 것 #
- 쿠버네티스 컨트리뷰션 / kubelet 내부 / etcd 운영 같은 클러스터 컴포넌트 깊이는 별도 책에서 다룹니다.
- Helm 차트 작성법 깊이 · ArgoCD ApplicationSet 패턴 · Cilium eBPF 데이터플레인 깊이는 후속 K8s 심화 책의 영역입니다. 본 책은 “쓰는 법"까지만 다룹니다.
- 멀티 클러스터 페더레이션 / 서비스 메시 (Istio / Linkerd) 깊이는 후속 책에서 다룹니다.
- EKS 외 다른 매니지드 (GKE / AKS) 별 차이 깊이는 부록에서 매핑 표 정도만 다룹니다.
이런 분께 추천합니다 #
- 컨테이너는 알지만 쿠버네티스는 처음인 분 — Docker / docker-compose까지 와 보고 “이제 k8s인가?” 단계에서 막힌 개발자입니다. 부록 A “docker-compose에서 k8s로"가 출발점이 됩니다.
- kubectl은 써봤지만 운영은 모르는 분 — Pod / Deployment / Service까지는 익숙하지만 RBAC · 옵저버빌리티 · GitOps · 비용 · 업그레이드 같은 운영 경험이 부족한 분입니다. 3~5부가 가치 흡수 구간입니다.
- AWS 환경에서 k8s를 도입해야 하는 분 — EKS 위에 production 워크로드를 올려야 하는 인프라 / 백엔드 엔지니어입니다. 4부 EKS 실전이 바로 가이드입니다.
- 인프라 운영자 / DevOps · SRE 입문 트랙 — 5부 운영·디버깅·비용 + 6부 풀스택 EKS 배포가 매뉴얼이 됩니다.
이 책의 구조 #
전체 분량은 본문 1~31장 + 부록 A 1장으로 32장입니다.
- 1부 쿠버네티스 시작 (7장) — 쿠버네티스란 · 로컬 환경 · kubectl과 첫 Pod · Deployment · Service · ConfigMap/Secret · Namespace를 다루며, 작은 클러스터를 손으로 운용할 수 있게 합니다.
- 2부 워크로드와 운영 (7장) — StatefulSet · PV/PVC · Ingress · resources · 헬스체크 · 오토스케일링 · RBAC를 다루며, 다양한 워크로드를 운영할 수 있게 합니다.
- 3부 깊이 (6장) — CNI · RBAC 깊이 · Admission Controller · CRD/Operator · 옵저버빌리티 · GitOps까지 다루며 운영자의 시야로 확장합니다.
- 4부 EKS 실전 (6장) — EKS 셋업 · 앱 배포 골격 · RDS 연동 · CI/CD · 모니터링·알람 · 운영 체크리스트를 통해 AWS 위 실전 운영의 한 사이클을 익힙니다.
- 5부 운영 · 디버깅 · 비용 (4장) — kubectl 디버깅 패턴 · 비용 최적화 · 시크릿 운영 · 업그레이드 전략으로 운영 중 마주치는 네 가지 주제를 다룹니다.
- 6부 종합 실습 (1장) — modern-python (FastAPI) + modern-react (Next.js) 앱을 한 EKS 클러스터에 Ingress · Helm · ArgoCD · 옵저버빌리티 · IRSA · External Secrets까지 적용해 함께 배포합니다.
- 부록 A (1장) —
docker-compose.yml리소스를 k8s 리소스로 옮기는 매핑 표와, 마이그레이션할 때 자주 막히는 일곱 가지 차이를 정리합니다.
책의 바탕이 된 시리즈 #
이 책은 다음 시리즈 26편을 바탕으로, 신규 5장 (5부 4 + 6부 1)과 부록 A, 그리고 전체 개정을 더해 다시 엮은 책입니다. 아래 시리즈는 지금도 사이트에 무료로 남아 있습니다.
- 쿠버네티스 기초 7편 — 1부의 컴파일 소스로, Pod / Deployment / Service / ConfigMap / Namespace를 처음 정리한 시리즈입니다.
- 쿠버네티스 중급 7편 — 2부의 컴파일 소스로, StatefulSet · PV · Ingress · 헬스체크 · 오토스케일링 · RBAC를 다룹니다.
- 쿠버네티스 고급 6편 — 3부의 컴파일 소스로, CNI · RBAC 깊이 · Admission Controller · CRD/Operator · 옵저버빌리티 · GitOps를 다룹니다.
- 쿠버네티스 실전 6편 — 4부의 컴파일 소스로, EKS 위에서 실전 운영의 한 사이클을 다룹니다.
책은 위 시리즈를 입문부터 EKS 실전까지 이어지게 다시 엮고, 운영 · 디버깅 · 비용 챕터 4개 + 풀스택 EKS capstone + docker-compose 마이그레이션 부록을 더해 한 권으로 묶었습니다. 핵심은 30% 이상 신규 / 개정 비율과 풀스택 캡스톤입니다.
함께 쓰면 좋은 도구 #
이 책의 실습은 거의 매 챕터에서 YAML 매니페스트를 손으로 적습니다. 들여쓰기 한 칸이나 따옴표 한 짝이 어긋나면 kubectl apply가 의도와 다른 에러를 뱉습니다. 매니페스트를 클러스터에 적용하기 전에 utilrepo의 YAML 검증기에 한 번 붙여 넣어 구문이 깨지지 않았는지 확인하시면, 클러스터 단에서 디버깅할 시간을 그만큼 줄일 수 있습니다. utilrepo는 브라우저에서 동작하는 가벼운 웹 유틸리티 모음으로, 비밀 정보가 외부로 나가지 않고 ---로 묶인 다중 문서 매니페스트와 탭·스페이스 혼용 같은 자주 만나는 함정까지 함께 잡아 줍니다.
이 책의 운영 #
이 책은 사이트 광고 (AdSense)와 독자 후원으로 운영됩니다. 결제 / 구매 절차는 두지 않았으며, 32장 본문 전체는 사이트에서 그대로 읽으실 수 있습니다.
책의 한 챕터가 도움이 되셨다면 Ko-fi에서 후원해 주실 수 있습니다. 후원은 다음 minor 개정과 후속 책 집필의 시간을 만들어 줍니다.
자주 묻는 질문 #
이 책은 AWS 책과 어떻게 다른가요 #
AWS 책(출시 예정)과 본 책은 자매 상품입니다. 같은 풀스택 앱 (modern-python + modern-react)을 6부 캡스톤에서 다른 플랫폼으로 배포합니다 — 본 책은 EKS, AWS는 ECS Fargate입니다. 두 책을 비교해 읽으시면 “매니지드 컨테이너 vs k8s"의 운영상 차이를 명확히 알 수 있습니다.
Kubernetes 메이저 버전이 바뀌면 책이 폐기되나요 #
핵심 모델 (Pod / Deployment / Service / Ingress / RBAC / Operator / GitOps)은 적어도 다음 2~3년의 메이저 버전 동안 그대로 유지될 것으로 봅니다. 변경된 API와 deprecated 표시는 minor 개정 (v1.x)으로 반영하고, 메이저 변경 (예: k8s 2.0 가설) 시점에는 v2 책 라인을 별도로 시작할 수 있습니다.
EKS 따라하기 비용은 얼마나 드나요 #
4부 EKS 실전 + 6부 캡스톤을 따라하시면 한 달 약 $40~$80의 EKS 클러스터 비용이 발생합니다 (t3.medium 노드 2대 + EKS 컨트롤 플레인 + ALB + RDS db.t3.micro). EKS 인프라 비용은 AWS 청구서로 직접 발생하니, 실습이 끝나면 클러스터를 즉시 삭제하실 수 있도록 각 챕터 끝에 정리 명령을 함께 정리합니다. AWS 무료 한도로 최대한 줄이는 옵션도 6부 도입부에서 안내합니다.
책의 코드는 어디서 받을 수 있나요 #
각 챕터의 매니페스트와 Terraform 코드는 본문 안 코드 블록으로 직접 적혀 있어, 손으로 따라 적으시는 학습 방식을 권장합니다. 6부 캡스톤의 13단계 완성본은 별도의 GitHub 저장소 (modern-kubernetes-capstone)로 제공될 예정입니다. 준비되면 이 책 소개 페이지에 링크를 추가합니다.
한국어 외 언어로도 볼 수 있나요 #
한국어 · 일본어 · 영어 세 언어 모두 같은 32장 구조로 공개되어 있습니다. 각 언어의 책 소개에서 바로 읽으실 수 있습니다.
책의 한 챕터가 사이트의 한 글과 70% 이상 같지 않나요 #
일부 챕터는 컴파일 소스 시리즈 글과 토픽이 같습니다. 다만 책 챕터는 (1) 책 흐름에 맞게 재서술, (2) Kubernetes 1.32 + EKS 기준으로 통일, (3) 책 안의 다른 챕터와 cross-link, (4) 연습문제와 한 줄 요약 추가로 다시 써서, 같은 토픽이라도 결과물은 다른 자료에 가깝습니다. 또한 신규 5장 (5부 4장 + 6부 캡스톤)과 부록 A는 컴파일 소스에 없습니다.
후원 / 피드백은 어떻게 보내나요 #
피드백은 블로그를 통한 댓글 또는 이메일로 환영합니다. 챕터별 오타 / 개선 제안 / 매니페스트 오류 보고는 다음 minor 개정에 빠르게 반영됩니다. 후원은 Ko-fi 채널을 두고 있으며, $1부터 자유롭게 보내주실 수 있습니다.
다음 단계 #
이 책의 ko · ja · en 32장은 모두 공개됐습니다. 앞으로의 갱신은 다음과 같이 진행됩니다.
- v1 본문 안정화 — 출시 후 4~8주 동안 독자 피드백을 받아 오타 / 매니페스트 오류 / 미흡한 설명을 minor 개정 (v1.x)으로 반영합니다. 세 언어에 같은 개정을 함께 적용합니다.
- 6부 캡스톤 GitHub 저장소 — 13단계 완성본을 별도 저장소로 정리해 이 책 소개 페이지에 링크를 추가합니다.
- Kubernetes / EKS 정기 갱신 — 4부 EKS 실전 챕터의 가격 표와 인스턴스 타입은 6개월 주기로 점검합니다. Kubernetes 메이저 변경 시점에 v2 책 라인을 시작할 수 있습니다.
새 챕터와 메이저 개정 알림은 RSS 피드로 받아보실 수 있습니다.
목차
쿠버네티스란 · 로컬 환경 · kubectl과 첫 Pod · Deployment / Service · ConfigMap / Secret · Namespace까지 입문자가 손에 익혀야 할 7개 토픽을 다룹니다.
- 1. 쿠버네티스란 왜 컨테이너 오케스트레이터가 필요한가. Docker / docker-compose까지 써 본 독자를 출발선으로 두고, 단일 컨테이너 도구의 한계 다섯 가지, 선언형 desired state + reconcile loop 모델, control plane / worker node의 큰 그림, 책의 범위까지 정리합니다.
- 2. 로컬 환경 minikube · kind · Docker Desktop k8s 중 어느 것을 쓸지 정합니다. 세 옵션의 동작 방식·장단점을 비교하고, kubectl을 설치한 뒤 kind로 첫 클러스터를 띄워 노드와 시스템 Pod를 확인하는 방식까지 한 번에 따라갑니다.
- 3. kubectl과 첫 Pod kubectl의 멘탈 모델을 잡고 첫 Pod를 띄웁니다. kubectl run의 명령형 한 사이클부터 YAML 매니페스트의 선언형, get / describe / logs / exec 일상 명령, Pod 라이프사이클과 ImagePullBackOff · CrashLoopBackOff 흔한 실패 패턴까지 다룹니다.
- 4. Deployment와 ReplicaSet 선언형 배포와 롤링 업데이트를 다룹니다. Deployment / ReplicaSet / Pod 세 단의 관계를 잡고, replicas: 3의 self-healing, RollingUpdate의 maxSurge / maxUnavailable, rollout undo 롤백, Deployment가 풀지 않는 워크로드 (StatefulSet · DaemonSet · Job)까지 한 사이클로 정리합니다.
- 5. Service Pod IP가 임시라는 문제를 푸는 추상화 — Service. 안정된 ClusterIP · selector · Endpoints / EndpointSlice · 그리고 ClusterIP · NodePort · LoadBalancer 세 타입의 선택 기준, kube-proxy의 DNAT, CoreDNS의 짧은 이름 풀이까지 한 사이클로 다룹니다.
- 6. ConfigMap과 Secret ConfigMap과 Secret으로 설정과 비밀번호를 매니페스트 본체에서 분리합니다. 12-factor의 "설정은 환경에 둔다"를 K8s에서 푸는 모양, env · envFrom · volume 세 가지 주입 방식, Secret의 base64가 암호화가 아니라는 한 줄, 그리고 설정 변경 시 Pod 재시작이 필요한 이유까지 다룹니다.
- 7. Namespace와 라벨 한 클러스터를 네임스페이스로 갈라 두는 모델과 라벨 · 셀렉터의 문법을 정리합니다. default의 한계, 시스템 네임스페이스 넷, RBAC · ResourceQuota · NetworkPolicy의 단위로서의 네임스페이스, kubens 운영 팁, app.kubernetes.io/* 표준 라벨, kubectl -l의 selector 문법까지 다루며 1부를 마무리합니다.
StatefulSet · PV/PVC · Ingress · resources · 헬스체크 · 오토스케일링 · RBAC까지 다루면서, 작은 클러스터에서 다양한 워크로드를 운영하는 단계로 옮겨갑니다.
- 8. StatefulSet / DaemonSet / Job / CronJob Deployment의 stateless 가정으로는 표현되지 않는 네 갈래 워크로드를 다루는 컨트롤러들을 정리합니다. StatefulSet의 정체성과 PVC 1:1, DaemonSet의 노드 단위 한 개, Job의 종료 모델, CronJob의 cron 스케줄링과 concurrencyPolicy · startingDeadlineSeconds의 안전장치까지 한 사이클로 다룹니다.
- 9. PV / PVC / StorageClass Pod의 생애주기 너머까지 살아남는 영속 데이터 모델을 다룹니다. PV · PVC · StorageClass의 삼각관계, 정적 · 동적 프로비저닝, accessModes (RWO · RWX · RWOP), reclaimPolicy, volumeBindingMode의 WaitForFirstConsumer, allowVolumeExpansion, StatefulSet의 volumeClaimTemplates가 그 위에서 무엇을 만드는지까지 한 사이클로 정리합니다.
- 10. Ingress와 Ingress Controller 외부 트래픽이 클러스터 안 Service로 들어오는 모델을 한 곳에 모으는 추상화입니다. Ingress 객체와 Ingress Controller의 두 층 분리, 호스트 · 경로 · pathType 기반 라우팅, TLS 종단과 cert-manager, IngressClass, 그리고 후속 표준인 Gateway API까지 한 사이클로 정리합니다.
- 11. resources.requests / limits 컨테이너가 CPU와 메모리를 어떻게 요청하고 어떻게 상한을 부여받는가의 모델을 다룹니다. requests와 limits의 분리, QoS 클래스 (Guaranteed · Burstable · BestEffort), CPU throttling과 메모리 OOMKilled의 동작 차이, JVM · Go 런타임의 cgroup 인식, LimitRange · ResourceQuota의 네임스페이스 정책, 그리고 처음 값을 정하고 조정하는 운영 사이클까지 한 사이클로 정리합니다.
- 12. Health check K8s가 컨테이너의 살아 있음과 트래픽을 받을 준비됨을 어떻게 판단하는지의 모델을 다룹니다. liveness · readiness · startup 세 probe의 역할 분리, httpGet · tcpSocket · exec 검사 방식, initialDelaySeconds · periodSeconds · failureThreshold 같은 매개변수 튜닝, liveness에 외부 의존성을 넣었을 때의 cascading failure, terminationGracePeriodSeconds와 preStop 훅의 graceful shutdown까지 한 사이클로 정리합니다.
- 13. 오토스케일링 운영 클러스터의 부하 변동을 사람의 개입 없이 흡수하는 세 차원의 자동 조정을 다룹니다. HPA (Pod 개수) · VPA (Pod 자원) · Cluster Autoscaler (노드 개수)의 역할 분리, metrics-server 전제, HPA의 autoscaling/v2 매니페스트와 비례식 알고리즘, scale up · down 비대칭의 behavior, custom metric과 KEDA, VPA의 updateMode와 HPA · VPA 충돌, Karpenter까지 한 사이클로 정리합니다.
- 14. RBAC / NetworkPolicy / ResourceQuota 한 클러스터에 여러 팀 · 환경이 같이 사는 멀티테넌트 운영의 격리를 만드는 세 정책 객체를 다룹니다. RBAC의 Role · ClusterRole · ServiceAccount · RoleBinding 모델, NetworkPolicy의 default-deny 패턴과 CNI 의존성, ResourceQuota와 LimitRange의 짝 관계까지 한 사이클로 정리하며 2부를 마무리합니다.
CNI 깊이 · RBAC 깊이 · Admission Controller · CRD/Operator · Prometheus/Grafana/Loki · GitOps를 다루면서 운영자의 시야로 확장합니다.
- 15. CNI 깊이 같은 NetworkPolicy 매니페스트가 Calico 위에서는 iptables 룰로, Cilium 위에서는 eBPF 프로그램으로 풀리는 데이터 플레인의 깊이를 다룹니다. K8s 네트워크 모델의 네 조건, CNI 인터페이스의 정체, iptables · IPVS · eBPF 세 데이터 플레인 모델, Calico와 Cilium의 비교, 그리고 CNI 선택의 실전 기준까지 한 사이클로 정리합니다.
- 16. RBAC / ServiceAccount 깊이 14장 RBAC의 기본 위에 운영 클러스터에서 마주치는 깊이를 한 층 더 얹습니다. ClusterRole을 라벨로 합치는 Aggregated ClusterRole, 다른 주체의 권한으로 호출하는 Impersonation, ServiceAccount 토큰이 영구 Secret에서 만료 · audience · rotation을 갖춘 projected token으로 바뀐 흐름, 그리고 EKS의 IRSA · GKE의 Workload Identity로 K8s ServiceAccount를 클라우드 IAM과 묶는 모델까지 한 사이클로 정리합니다.
- 17. Admission Controller K8s API 서버가 매니페스트를 etcd에 저장하기 직전 단계에서 검사 · 변형하는 admission의 모델을 다룹니다. Mutating · Validating 두 종류, 빌트인 컨트롤러 (LimitRanger · ResourceQuota · PodSecurity 등), Webhook 메커니즘, 그리고 그 위에 얹힌 두 정책 엔진 OPA Gatekeeper (Rego)와 Kyverno (YAML)의 비교까지 한 사이클로 정리합니다.
- 18. CRD와 Operator 패턴 K8s API를 사용자 도메인의 객체로 확장하는 두 축을 다룹니다. CustomResourceDefinition으로 새 객체 종류를 정의하고, controller-runtime 기반의 Operator가 1장에서 본 reconcile loop를 그 객체 위에 걸어 K8s의 선언적 모델을 도메인까지 확장합니다. ownerReference · finalizer · status subresource의 세 표준 패턴과 Kubebuilder · Operator SDK의 빌드 도구까지 한 사이클로 정리합니다.
- 19. 옵저버빌리티 운영 클러스터의 시야를 만드는 세 축 — 메트릭 (Prometheus + kube-state-metrics + node-exporter), 로그 (Loki), 트레이스 (OpenTelemetry + Tempo) — 와 시각화 (Grafana), 알람 (Alertmanager)의 표준 스택을 정리합니다. kube-prometheus-stack의 ServiceMonitor · PrometheusRule, PromQL · LogQL의 한 줄 예시, 그리고 카디널리티 · 보존 · 알람 SNR · golden signals의 운영 가드레일까지 한 사이클로 다룹니다.
- 20. GitOps 매니페스트의 source of truth를 git에 두고 클러스터 안의 컨트롤러가 git을 watch 해 자동으로 동기화하는 운영 모델을 다룹니다. push 모델과 pull 모델의 차이, GitOps의 네 원칙, ArgoCD의 Application CRD · App of Apps · Sync Wave, Flux의 GitRepository · Kustomization · HelmRelease, 디렉터리 구조 패턴, 그리고 비밀을 git에 두는 세 가지 표준 도구까지 한 사이클로 정리하며 3부를 마무리합니다.
EKS 클러스터 셋업 · 앱 배포 골격 · RDS 연동 · CI/CD · 모니터링/알람 · 운영 체크리스트로 AWS 위 실전 운영의 한 사이클을 익힙니다.
- 21. EKS 클러스터 셋업 AWS EKS 위에 진짜 운영 클러스터를 처음부터 띄우는 흐름을 다룹니다. Terraform으로 VPC · EKS 컨트롤 플레인 · 노드 그룹 · IRSA · 필수 애드온 (VPC CNI · CoreDNS · kube-proxy · EBS CSI)을 한 코드베이스로 선언하고, eksctl의 빠른 셋업 옵션, Karpenter의 노드 오토스케일링, 그리고 첫 점검 · 비용 모델까지 한 사이클로 정리합니다.
- 22. 앱 배포 골격 21장에서 띄운 비어 있는 EKS 클러스터 위에 샘플 서비스 myshop-api를 한 묶음의 매니페스트로 배포합니다. Namespace · ServiceAccount · ConfigMap · Secret · Deployment · Service · Ingress · HPA · PodDisruptionBudget의 9개 객체를 한 사이클로 정리하고, AWS Load Balancer Controller로 ALB를 자동 프로비저닝합니다. 그 묶음을 Helm 차트로 추상화해 dev / prod에 서로 다른 values로 적용하는 방식까지 한 번에 따라갑니다.
- 23. DB 연동 — RDS · External Secrets 22장에서 외부 노출까지 만든 myshop-api는 데이터 저장소가 없는 빈 껍데기입니다. 이번 챕터는 그 빈 곳을 채웁니다. RDS PostgreSQL을 Terraform으로 띄우고, 마스터 비밀번호를 AWS Secrets Manager에 두고, External Secrets Operator로 그 비밀을 K8s Secret으로 자동 동기화하고, IRSA로 정적 자격 증명 없이 권한을 부여하고, PgBouncer로 커넥션 풀을 얹고, 스키마 마이그레이션을 Helm hook 기반 Job 패턴으로 자동화하는 흐름까지 한 사이클로 정리합니다.
- 24. CI/CD 파이프라인 23장까지 갖춰진 myshop-api는 새 버전이 들어오는 과정에 여전히 사람이 많이 개입합니다. 이번 챕터는 그 과정을 자동화합니다. GitHub Actions에서 OIDC 신뢰로 정적 키 없이 AWS ECR에 컨테이너 이미지를 푸시하고, 매니페스트 repo의 Helm values를 자동 commit 하고, 20장에서 다룬 ArgoCD가 그 변경을 감지해 클러스터로 동기화하는 한 사이클을 정리합니다. PR 승인 게이트, dev / prod 분기, Argo Rollouts 카나리 배포, 이미지 태그 immutability까지 함께 다룹니다.
- 25. 모니터링·알람 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 흐름까지 한 사이클로 정리합니다.
- 26. 운영 체크리스트 4부 (EKS 실전)의 마지막 챕터입니다. 클러스터를 안정적으로 띄우는 일과 한 해 동안 안전하게 운영하는 일은 다른 결의 작업입니다. EKS 마이너 업그레이드 사이클, 노드 그룹 교체 패턴, RDS PITR과 분기 복구 훈련, Karpenter + Spot으로 비용을 잡는 길, kube-bench · Trivy · Kyverno로 보안 점검을 정기화하는 흐름까지 정리합니다. 마지막으로 4부 6장 (21~26장)의 회고와 1~4부 26장이 손에 무엇을 남겼는지를 한 묶음으로 짚습니다.
kubectl 디버깅 패턴 · 비용 최적화 · 시크릿 운영 · 업그레이드 전략을 통해 운영 중 마주치는 네 가지 주제를 다룹니다.
- 27. kubectl 디버깅 패턴 5부 (운영 · 디버깅 · 비용)의 첫 챕터입니다. 운영 클러스터에서 가장 자주 마주치는 사고 (CrashLoopBackOff, OOMKilled, ImagePullBackOff, Pending, Service가 안 닿음)의 진단 트리를 한 곳에 정리합니다. describe · events · logs의 세 명령에서 출발해 kubectl debug의 ephemeral container, 네트워크 진단 패턴, 19장 옵저버빌리티 스택과의 결합까지 신입 SRE의 첫 reference가 되는 매뉴얼로 묶습니다.
- 28. 비용 최적화 5부 두 번째 챕터입니다. 26장에서 다섯 출처로 짚었던 비용 항목을 본격적으로 다룹니다. 컴퓨트 (노드)와 부가 (LB · 스토리지 · 네트워크 · 컨트롤 플레인)의 두 축, requests의 비용 의미, VPA · Goldilocks · KRR의 right-sizing, Spot · Karpenter · Cluster Autoscaler의 결정 트리, bin packing과 descheduler, OpenCost · Kubecost의 가시화, namespace 라벨 단위 chargeback / showback, PV · 네트워크 비용까지 한 사이클로 묶고 다음 달 청구서 review 체크리스트로 마무리합니다.
- 29. 시크릿 운영 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의 감사 관점까지 본격적인 운영 매뉴얼로 묶습니다.
- 30. 업그레이드 전략 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주 체크리스트까지 한 사이클로 다룹니다.
modern-react Next.js 앱과 modern-python FastAPI 앱을 한 EKS 클러스터에 함께 배포해 1~30장의 패턴을 하나의 동작하는 시스템으로 엮습니다.
docker-compose 사용자를 위한 k8s 마이그레이션 가이드를 정리합니다.