ExampleCorp: ACK + KRO 통합 예제

마지막 업데이트: 2026년 2월 21일

시나리오 개요

ExampleCorp의 Order API를 Kubernetes에 배포하는 end-to-end 예제입니다. ACK가 AWS 인프라(NLB, Aurora PostgreSQL, Route 53)를 프로비저닝하고, KRO가 애플리케이션 리소스(Deployment, Service, TargetGroupBinding, ConfigMap)를 단일 Custom Resource로 관리합니다.

ACK (AWS 인프라)          KRO (앱 배포)
─────────────────       ─────────────────
NLB + TargetGroup  ←──  TargetGroupBinding
Aurora PostgreSQL  ←──  ConfigMap (endpoints)
Route 53 Record         Deployment + Service

ACK는 ACK 문서에서 설명한 ELBv2, Route 53, RDS 컨트롤러를 사용하여 인프라를 생성하고, KRO는 이 인프라를 참조하는 애플리케이션 리소스를 단일 CR로 관리합니다.

아키텍처 다이어그램

spinner

Step 1: ACK로 인프라 프로비저닝

ACK 컨트롤러(elbv2, route53, rds)를 사용하여 다음 인프라를 프로비저닝합니다. 각 리소스의 상세 YAML은 ACK 리소스 예제를 참조하세요.

  • NLB + TargetGroup + Listener: 애플리케이션 트래픽 수신

  • Route 53 DNS Record: app.example.com → NLB 매핑

  • Aurora PostgreSQL: DBSubnetGroup + DBCluster + Writer + 2 Reader + Custom Endpoint

Step 2: KRO ResourceGraphDefinition

입력 필드 설명

필드
설명

appName

애플리케이션 이름 (레이블, 셀렉터에 사용)

image

컨테이너 이미지 URI

replicas

Deployment 레플리카 수

port

컨테이너 및 서비스 포트

targetGroupARN

ACK가 생성한 Target Group ARN

aurora.writerEndpoint

ACK DBCluster의 Writer 엔드포인트

aurora.readerEndpoint

ACK DBCluster의 Reader 엔드포인트

aurora.port

Aurora 포트 (기본 5432)

aurora.dbName

데이터베이스 이름

Step 3: 앱 배포

ACK가 생성한 인프라의 출력값(Target Group ARN, Aurora 엔드포인트)을 KRO CR의 spec에 주입합니다.

Step 4: 검증

운영 패턴

새 서비스 추가

기존 인프라를 재사용하여 새로운 WebApp CR만 추가하면 됩니다:

Aurora 스케일링

ACK DBInstance를 추가하여 Read Replica를 수평 확장합니다:

Blue/Green 배포

KRO CR을 교체하여 무중단 배포를 수행합니다. 새로운 버전의 CR을 적용하면 KRO가 자동으로 Deployment를 업데이트합니다.

참고 문서

마지막 업데이트