Project: Shoong-Delivery

[아키텍처] K8S 클러스터 아키텍처 구축기

2-30 2026. 5. 18. 21:52

Kubernetes Architecture Design Log

v0.1 - 초기 구조

구성 요소

  • EKS Control Plane (ETCD, Cloud Controller Manager, Controller Manager, K8s API Server, Scheduler)
  • 워커 노드 3개 (az a, az b, az c)
  • Ingress ALB
  • Namespace: argocd, todo-app
  • todo-app: frontend, auth, projects, tasks, notification
  • Istio 사이드카 인젝션 적용 (todo-app 네임스페이스)

문제점

  • ArgoCD가 감지할 GitOps Repository 연결 안됨
  • ArgoCD -> todo-app 배포 흐름 표현 안됨

v0.2 - GitOps 연결

구성 요소

  • GitOps Repository (GitHub) 추가

문제점

  • 백엔드 서비스(projects, tasks 등)의 Amazon RDS 연결 표현 안됨

v0.3 - RDS 연결 추가

구성 요소

  • Amazon RDS 추가 (클러스터 외부)

문제점

  • HPA 적용 여부가 구성도에 명시되지 않음

v0.4 - HPA 구성

구성 요소

  • HPA 아이콘 추가 (오토스케일링 적용 명시)

문제점

  • 컨테이너 이미지 저장소(Amazon ECR) 및 이미지 풀 흐름이 표현되지 않음
  • Secret/Config 관리(AWS Secrets Manager, Parameter Store, External Secrets) 구성 누락
  • 영구 볼륨(EBS) 및 EBS CSI Driver 구성 표현 안됨
  • IRSA(IAM Roles for Service Accounts) 권한 위임 구조 미표시
  • ArgoCD, Istio, 모니터링, kube-system 등 네임스페이스 내부 컴포넌트가 추상화되어 있음
  • ALB ↔ Service 연결 방식(TargetGroupBinding) 명시 안됨
  • RDS 연결 시 통신 프로토콜/포트(TLS 5432) 표현 누락

v0.5-1 - 클러스터 내부 컴포넌트 상세화

구성 요소

  • Amazon ECR: 컨테이너 이미지 저장소, Worker Node로 이미지 풀
  • Amazon RDS: TLS 5432 포트로 백엔드 서비스와 연결
  • AWS Secrets Manager / Systems Manager Parameter Store: 시크릿/설정 외부 저장소
  • Amazon EBS: 영구 볼륨 스토리지 (EBS CSI Driver 연동)
  • IRSA: ALB Controller, EBS CSI Controller, External Secrets 등에 IAM 권한 위임
  • shoong 네임스페이스: shoong-order, shoong-kitchen, shoong-delivery, shoong-notification, shoong-batch
  • argocd 네임스페이스: argocd-server, argocd-dex-server, argocd-repo-server, argocd-notifications-controller, argocd-application-controller
  • monitoring 네임스페이스: prometheus, grafana, node-exporter, alertmanager, kube-state-metrics, promtail, loki, otel-collector, tempo, prometheus-operator
  • istio-system 네임스페이스: istiod, istio-ingressgateway, kiali-server
  • kube-system 네임스페이스: aws-load-balancer-controller, aws-node, coredns, kube-proxy, ebs-csi-node, ebs-csi-controller
  • external-secrets 네임스페이스: external-secrets-controller, external-secrets-webhook, cert-controller
  • TargetGroupBinding: ALB ↔ Kubernetes Service 직접 바인딩
  • shoong-gitops Repository: ArgoCD가 pull 방식으로 매니페스트 감지

문제점

(투 비 컨티뉴...ㅠ)