#쿠버네티스

136 편의 글

Certified Kubernetes Security Specialist (CKS) #4 RBAC 최소 권한 깊이 (Cluster Hardening)
10 분 소요

Certified Kubernetes Security Specialist (CKS) #4 RBAC 최소 권한 깊이 (Cluster Hardening)

Certified Kubernetes Security Specialist (CKS) 시리즈의 네 번째 글입니다. CKA에서 익힌 RBAC 위에 최소 권한 원칙을 얹어, 과도하게 넓은 Role을 어떻게 찾아내고 좁히는지를 보안 관점에서 깊게 다루겠습니다. wildcard verb/resource의 위험, default ServiceAccount 권한 제거, ClusterRoleBinding 남용을 RoleBinding으로 줄이기, aggregated ClusterRole 주의점, secrets get,pods/exec,escalate,bind,impersonate 같은 위험한 권한을 식별하고, kubectl auth can-i --as로 좁힌 권한을 검증하는 흐름까지 정리하겠습니다.

CI/CD 파이프라인
11 분 소요

CI/CD 파이프라인

23장까지 갖춰진 myshop-api는 새 버전이 들어오는 과정에 여전히 사람이 많이 개입합니다. 이번 챕터는 그 과정을 자동화합니다. GitHub Actions에서 OIDC 신뢰로 정적 키 없이 AWS ECR에 컨테이너 이미지를 푸시하고, 매니페스트 repo의 Helm values를 자동 commit 하고, 20장에서 다룬 ArgoCD가 그 변경을 감지해 클러스터로 동기화하는 한 사이클을 정리합니다. PR 승인 게이트, dev / prod 분기, Argo Rollouts 카나리 배포, 이미지 태그 immutability까지 함께 다룹니다.

CNI 깊이
15 분 소요

CNI 깊이

같은 NetworkPolicy 매니페스트가 Calico 위에서는 iptables 룰로, Cilium 위에서는 eBPF 프로그램으로 풀리는 데이터 플레인의 깊이를 다룹니다. K8s 네트워크 모델의 네 조건, CNI 인터페이스의 정체, iptables · IPVS · eBPF 세 데이터 플레인 모델, Calico와 Cilium의 비교, 그리고 CNI 선택의 실전 기준까지 한 사이클로 정리합니다.

CRD와 Operator 패턴
12 분 소요

CRD와 Operator 패턴

K8s API를 사용자 도메인의 객체로 확장하는 두 축을 다룹니다. CustomResourceDefinition으로 새 객체 종류를 정의하고, controller-runtime 기반의 Operator가 1장에서 본 reconcile loop를 그 객체 위에 걸어 K8s의 선언적 모델을 도메인까지 확장합니다. ownerReference · finalizer · status subresource의 세 표준 패턴과 Kubebuilder · Operator SDK의 빌드 도구까지 한 사이클로 정리합니다.

DB 연동 — RDS · External Secrets
13 분 소요

DB 연동 — RDS · External Secrets

22장에서 외부 노출까지 만든 myshop-api는 데이터 저장소가 없는 빈 껍데기입니다. 이번 챕터는 그 빈 곳을 채웁니다. RDS PostgreSQL을 Terraform으로 띄우고, 마스터 비밀번호를 AWS Secrets Manager에 두고, External Secrets Operator로 그 비밀을 K8s Secret으로 자동 동기화하고, IRSA로 정적 자격 증명 없이 권한을 부여하고, PgBouncer로 커넥션 풀을 얹고, 스키마 마이그레이션을 Helm hook 기반 Job 패턴으로 자동화하는 흐름까지 한 사이클로 정리합니다.

docker-compose에서 k8s로
15 분 소요

docker-compose에서 k8s로

부록 A — Docker / docker-compose까지 와 본 독자가 K8s로 옮겨갈 때 막히는 일곱 가지 차이를 한 곳에 정리합니다. docker-compose.yml의 각 키가 K8s의 어떤 리소스에 대응되는지 매핑 표로 정리하고, 작은 web + db의 docker-compose.yml을 K8s 매니페스트로 옮기는 마이그레이션 한 사이클을 풀어내고, kompose 자동 변환 도구의 한계와 그 다음 단계를 짚습니다. 책의 마지막 챕터이지만, Docker까지 와 본 독자에게는 출발점이 됩니다.

EKS 클러스터 셋업
12 분 소요

EKS 클러스터 셋업

AWS EKS 위에 진짜 운영 클러스터를 처음부터 띄우는 흐름을 다룹니다. Terraform으로 VPC · EKS 컨트롤 플레인 · 노드 그룹 · IRSA · 필수 애드온 (VPC CNI · CoreDNS · kube-proxy · EBS CSI)을 한 코드베이스로 선언하고, eksctl의 빠른 셋업 옵션, Karpenter의 노드 오토스케일링, 그리고 첫 점검 · 비용 모델까지 한 사이클로 정리합니다.

GitOps
13 분 소요

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 디버깅 패턴
12 분 소요

kubectl 디버깅 패턴

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

RBAC / NetworkPolicy / ResourceQuota
22 분 소요

RBAC / NetworkPolicy / ResourceQuota

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

RBAC / ServiceAccount 깊이
13 분 소요

RBAC / ServiceAccount 깊이

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

모니터링·알람
13 분 소요

모니터링·알람

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 흐름까지 한 사이클로 정리합니다.