devops 쿠버네티스 계층형 아키텍처

쿠버네티스 계층형 아키텍처

쿠버네티스 아키텍처를 이해하는 가장 좋은 방법은 사용자의 요청이 물리적 인프라에서 실제 데이터까지 어떻게 흘러가는지 계층(Layer)별로 뜯어보는 것입니다.

devops 쿠버네티스 계층형 아키텍처

핵심 포인트 요약

  • 인그레스 vs 서비스: 인그레스는 “어디로(URL)” 갈지 정하고, 서비스는 “누구에게(Pod)” 보낼지 결정합니다.
  • 포트포워딩의 위치: 아키텍처 그림에 나타나지 않는 ‘비밀 통로’입니다. 인그레스나 서비스를 거치지 않고 개발자가 파드에 직접 터널을 뚫어 접속하는 방식입니다.
  • KinD와 EKS의 차이: 이 모든 구조는 동일하지만, KinD는 이 모든 것이 내 컴퓨터의 Docker 컨테이너 안에서 일어나고, EKSAWS의 실제 장비 위에서 일어난다는 점이 다릅니다.

1. 진입 계층 (External Access Layer)

클러스터 외부의 사용자가 가장 먼저 만나는 지점입니다.

  • Ingress: HTTP/HTTPS 요청을 도메인이나 경로에 따라 적절한 서비스로 라우팅하는 ‘스마트한 문지기’입니다.
  • Load Balancer: 클라우드(EKS) 환경에서는 실제 AWS ALB/NLB가 생성되어 트래픽을 클러스터 내부로 안전하게 전달합니다.

2. 서비스 계층 (Internal Discovery Layer)

클러스터 내부의 내비게이션 역할을 합니다.

  • Service (L4): 파드(Pod)들은 언제든 죽고 새로 뜰 수 있어 IP가 계속 변합니다. 서비스는 이러한 파드들에게 변하지 않는 고정된 이름(DNS)과 IP를 부여하여 안정적인 통신을 보장합니다.

3. 실행 계층 (Workload Layer)

실제 비즈니스 로직이 돌아가는 곳입니다.

  • Pod: 쿠버네티스에서 배포할 수 있는 가장 작은 단위입니다. 하나 이상의 컨테이너(App, Redis 등)가 포함되어 실제로 사용자 요청을 처리합니다.

4. 저장 계층 (Persistence Layer)

데이터가 사라지지 않게 보관하는 곳입니다.

  • PV / PVC: 파드가 삭제되어도 데이터는 남아야 합니다. 물리적인 디스크(EBS, 로컬 디스크 등)를 추상화하여 파드에 연결해 주는 역할을 합니다.