쿠버네티스 마스터 — 실전·매니지드 K8s·CI/CD·Observability

2026-05-03확률과 통계 마스터 노트

쿠버네티스 마스터 노트 시리즈 10편 (마지막). 매니지드 K8s 3종(GKE·EKS·AKS) 비교, GitOps 패러다임과 ArgoCD/Flux 자동 배포, Prometheus + Grafana 표준 모니터링 스택, 로그 수집 (Loki·EFK), 분산 추적 (Jaeger·Tempo), 운영 환경 체크리스트, 12-Factor App 원칙까지 — 시리즈 마무리.

이 글은 쿠버네티스 마스터 노트 시리즈의 마지막 열 번째 편입니다. 1~9편이 K8s 자체였다면, 이번엔 운영 환경의 실전 — 매니지드 K8s·CI/CD·관측성.

운영 환경에서 K8s 직접 운영은 비효율. 매니지드 서비스가 표준. 그 위에 GitOps·관측성 스택을 올려야 진짜 시작.

처음 운영이 어렵게 느껴지는 이유

처음 이 단원이 어렵게 느껴지는 이유는 두 가지예요. 첫째, 너무 많은 도구가 등장합니다. ArgoCD·Prometheus·Grafana·Loki·Jaeger·Cert-Manager·External Secrets… 둘째, 무엇부터 도입할지 막연합니다.

해결법은 한 가지예요. "3 축으로 묶기" — 1) 매니지드 클러스터 (GKE·EKS), 2) GitOps 배포 (ArgoCD), 3) 관측성 (Prometheus). 시작은 이 3개. 나머지는 필요 시 추가.

매니지드 K8s — 3 옵션

서비스 클라우드 특징
GKE Google Cloud K8s 발원지·가장 매끄러움
EKS AWS 가장 큰 시장 점유
AKS Azure MS 생태계 통합

GKE 핵심

  • Autopilot Mode — 노드 관리 완전 자동
  • Standard Mode — 노드 직접 관리
  • 자동 업그레이드·자동 복구
  • Workload Identity (GCP IAM ↔ K8s SA)
  • Cloud Logging·Monitoring 자동 통합

EKS 핵심

  • 컨트롤 플레인 매니지드 (Worker는 EC2·Fargate·EKS Auto Mode)
  • IRSA (IAM Roles for ServiceAccounts) — IAM ↔ K8s SA
  • AWS Load Balancer Controller
  • VPC CNI — Pod에 ENI 직접 부여 (성능 ↑·비용 고려)

직접 vs 매니지드

여기서 정말 중요한 시험 함정 — 운영 환경 = 매니지드 권장. 직접 K8s 운영 (kubeadm·k3s·kops) = etcd 백업·인증서 갱신·노드 운영체제 패치·네트워크 설정 모두 직접. 매니지드는 컨트롤 플레인 자동.

작은 회사는 매니지드 + 노드 자동 관리 (GKE Autopilot 또는 EKS Auto Mode) 가장 효율.

GitOps — 운영 표준 패러다임

Git Repo (단일 진실)
  ↓ push
ArgoCD / Flux 감지
  ↓
K8s 클러스터 자동 동기화

특징:

  • 선언형 — Git이 desired state
  • 감사 가능 — 모든 변경이 Git 커밋
  • 롤백 자연스러움 — Git revert
  • 자동 동기화 — 수동 배포 X

ArgoCD vs Flux

측면 ArgoCD Flux
UI 강력함 (웹 대시보드) 미니멀
학습 곡선 낮음 중간
멀티 클러스터 강력 강력
인기 높음 중간

여기서 시험 함정이 하나 있어요. GitOps + Helm = 표준 조합. ArgoCD가 Git의 Helm Chart 감지·자동 적용.

ArgoCD Application

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/myorg/my-app
    targetRevision: HEAD
    path: helm-chart
    helm:
      valueFiles:
        - values-prod.yaml
  destination:
    server: https://kubernetes.default.svc
    namespace: prod
  syncPolicy:
    automated:
      prune: true              # Git에서 제거된 리소스 자동 삭제
      selfHeal: true           # 수동 변경 자동 복구

CI/CD 파이프라인

[개발자 push]
   ↓
[CI: GitHub Actions / GitLab / Jenkins]
   - 코드 체크아웃
   - 테스트
   - 이미지 빌드 (docker build)
   - 이미지 푸시 (ECR/GCR/Docker Hub)
   - Helm chart 패키지·푸시 또는 image tag 갱신
   ↓
[CD: ArgoCD / Flux]
   - Git 변경 감지
   - K8s 클러스터 sync

이미지 태그 전략

my-app:v1.2.3              # semver (안전)
my-app:abc123              # git sha (정확)
my-app:latest              # 절대 X (운영)

여기서 정말 중요한 시험 함정 — latest 태그 운영 X. 어느 버전인지 추적 X. 롤백 어려움. 명시 태그 + image pull policy IfNotPresent 표준.

Image Updater

ArgoCD Image Updater 등으로 이미지 자동 업데이트:

1. 새 이미지 푸시 → 레지스트리
2. Image Updater 감지
3. Git에 자동 commit (image tag 갱신)
4. ArgoCD 동기화

Observability — 3 축

1. Metrics — 숫자 시계열 (CPU·메모리·요청 수)
2. Logs    — 텍스트 이벤트
3. Traces  — 분산 요청 추적

1. Metrics — Prometheus + Grafana

# kube-prometheus-stack (Helm chart)
helm install monitoring prometheus-community/kube-prometheus-stack

자동 설치:

  • Prometheus — 메트릭 수집
  • Grafana — 시각화
  • Alertmanager — 알람
  • Node Exporter — 노드 메트릭
  • kube-state-metrics — K8s 상태 메트릭

Pod 메트릭 노출

spec:
  containers:
    - name: app
      ports:
        - name: metrics
          containerPort: 9100
# ServiceMonitor
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: my-app
spec:
  selector:
    matchLabels:
      app: my-app
  endpoints:
    - port: metrics

핵심 메트릭

CPU·Memory 사용률 (Pod·노드)
요청 수 (HTTP·gRPC)
요청 지연 (p50·p95·p99)
에러율
큐 길이 (Kafka·Redis)
DB 연결 풀

2. Logs — Loki·EFK·OpenSearch

Loki (가벼움)

helm install loki grafana/loki-stack

Promtail (DaemonSet) → Loki → Grafana 조회.

EFK (전통적)

  • Fluentd / Fluent Bit — 수집
  • Elasticsearch — 저장·검색
  • Kibana — UI

여기서 시험 함정이 하나 있어요. Loki는 메트릭 친화 (라벨), ES는 풀텍스트 검색. 단순 로그 조회 = Loki, 복잡 검색 = ES.

3. Traces — Jaeger / Tempo / OpenTelemetry

요청 ID로 마이크로서비스 사이 흐름 추적
지연 병목 식별

OpenTelemetry — 표준 SDK. Jaeger·Tempo·Datadog 등으로 export.

Cert-Manager — TLS 자동

helm install cert-manager jetstack/cert-manager --set installCRDs=true

Let's Encrypt 자동 발급:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
  tls:
    - hosts: [example.com]
      secretName: example-tls
  rules:
    - host: example.com
      http: ...

자동 인증서 발급·갱신.

Backup·Disaster Recovery

Velero — 클러스터 백업

velero backup create my-backup --include-namespaces=prod

velero restore create --from-backup=my-backup

K8s 객체 + PVC 데이터 (CSI 스냅샷) 백업.

etcd 백업

매니지드 = 자동. 직접 운영 = 정기 etcd snapshot 필수.

12-Factor App — K8s 친화 원칙

요소 K8s 적용
1. Codebase Git
2. Dependencies 컨테이너 이미지
3. Config ConfigMap·Secret
4. Backing Services Service·외부 DB
5. Build/Release/Run CI/CD + 이미지 태그
6. Processes Stateless Pod
7. Port Binding containerPort
8. Concurrency replicas·HPA
9. Disposability restartPolicy·SIGTERM 처리
10. Dev/Prod parity 같은 이미지·환경별 values
11. Logs stdout·stderr
12. Admin processes Job

운영 체크리스트

✓ 매니지드 K8s (GKE Autopilot·EKS Auto Mode 등)
✓ GitOps (ArgoCD·Flux)
✓ Helm Chart 또는 Kustomize
✓ 명시적 이미지 태그 (latest X)
✓ HPA + Cluster Autoscaler
✓ 3 Probes (Liveness·Readiness·Startup)
✓ Resource requests·limits
✓ NetworkPolicy default deny
✓ RBAC 최소 권한·앱별 SA
✓ SecurityContext (runAsNonRoot 등)
✓ Pod Security Standards (restricted)
✓ 외부 Secret 관리 (Vault·External Secrets)
✓ etcd 암호화
✓ Audit Log
✓ Prometheus + Grafana
✓ 중앙 로그 (Loki·EFK)
✓ 분산 추적 (OpenTelemetry)
✓ Cert-Manager (TLS 자동)
✓ Backup (Velero + etcd)
✓ Image scan (Trivy·Snyk)
✓ Multi-AZ Pod 분산 (AntiAffinity)
✓ PodDisruptionBudget
✓ 적절한 namespace 분리·ResourceQuota

시리즈 마무리 — 10편 종합

1편부터 10편까지의 흐름:

주제 한 줄
1 아키텍처 Control Plane 4 + Worker 3, Reconciliation Loop
2 Pod 최소 단위, Pause·Init·Sidecar, Ephemeral
3 Workloads Deployment·StatefulSet·DaemonSet·Job·CronJob
4 Services·Networking ClusterIP·NodePort·LoadBalancer·Ingress
5 Config·Secret 4 주입 방식, Secret base64 함정
6 Storage PV·PVC·StorageClass, AccessMode 3종
7 Scaling·Scheduling HPA·Probe 3종·Affinity·Taint
8 Security RBAC·NetworkPolicy·SecurityContext·PSS
9 Helm Chart·템플릿·환경별 values·Hooks
10 실전 매니지드·GitOps·관측성·12-Factor

K8s의 거의 모든 운영 패턴을 한 번에 통찰할 토대.

시험 직전 한 번 더 — 자주 헷갈리는 함정 모음

여기까지가 10편의 핵심입니다. 시험 직전 또는 실무에서 헷갈릴 때 다시 펼쳐 볼 수 있게 압축 노트로 마무리할게요.

  • 매니지드 3 — GKE / EKS / AKS
  • 운영 = 매니지드 권장 (직접 운영 비효율)
  • GKE Autopilot·EKS Auto Mode = 노드 자동
  • IRSA (EKS) / Workload Identity (GKE) = 클라우드 IAM ↔ K8s SA
  • GitOps = Git이 단일 진실
  • ArgoCD / Flux — Git 감지·자동 동기화
  • ArgoCD Application — automated.prune·selfHeal
  • CI/CD — 이미지 빌드·푸시 + Helm·image tag 갱신
  • 이미지 명시 태그 (semver·git sha)
  • latest 운영 X
  • Observability 3 축 — Metrics / Logs / Traces
  • Prometheus + Grafana = 표준 (kube-prometheus-stack)
  • ServiceMonitor로 메트릭 자동 수집
  • 로그 — Loki (가벼움·라벨) / EFK (전통·풀텍스트)
  • 추적 — OpenTelemetry + Jaeger·Tempo
  • Cert-Manager = Let's Encrypt 자동 TLS
  • Velero = 클러스터 백업 (객체 + PVC)
  • 매니지드 etcd = 자동 백업
  • 12-Factor — Config·Concurrency·Disposability·Logs 등 K8s 친화
  • 운영 체크 — 매니지드·GitOps·Helm·HPA·Probes·NetworkPolicy·RBAC·SecurityContext·PSS·외부 Secret·etcd 암호화·Audit·Prometheus·Loki·OpenTelemetry·Cert-Manager·Velero·이미지 스캔·AntiAffinity·PDB·ResourceQuota

시리즈 다른 편 (시리즈 마지막)

공식 문서: GKE / EKS / ArgoCD / Prometheus / 12-Factor App 에서 더 깊이.

쿠버네티스 마스터 노트는 여기서 마무리. 1편부터 10편까지의 흐름이 머리에 남으면 컨테이너 오케스트레이션의 거의 모든 운영 패턴을 손에 잡고 시작할 토대가 됩니다.

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

답글 남기기

error: Content is protected !!