ACK 아키텍처

ACK 아키텍처 An architecture diagram generated by Archify. Kubernetes 사용자 / 운영자 · kubectl apply · Architecture component Kubernetes 사용자 / 운영자 kubectl apply Custom Resources · Kubernetes의 spec / status · Kubernetes 클러스터 Custom Resources Kubernetes의 spec / status Custom Resource Definitions · AWS 리소스의 Kubernetes API 정의 · Kubernetes 클러스터 Custom Resource Definitions AWS 리소스의 Kubernetes API 정의 ACK 서비스 컨트롤러 · AWS 서비스별 전용 컨트롤러 · Kubernetes 클러스터 ACK 서비스 컨트롤러 AWS 서비스별 전용 컨트롤러 AWS API · 서비스 API 호출 · AWS 클라우드 AWS API 서비스 API 호출 AWS 리소스 · S3, RDS, DynamoDB 등 · AWS 클라우드 AWS 리소스 S3, RDS, DynamoDB 등 YAML 적용 CR 변경 알림 API schema 생성 / 업데이트 / 삭제 관리 AWS 응답 status 갱신 Kubernetes 클러스터 AWS 클라우드 Legend 백엔드 서비스 클라우드 서비스 외부 시스템

주요 구성 요소

  • • 서비스 컨트롤러: 각 AWS 서비스에 대한 전용 컨트롤러
  • • CRD: AWS 리소스를 Kubernetes API로 정의
  • • CR: AWS 리소스의 원하는 상태와 관찰된 상태
  • • 조정 루프: 원하는 상태와 실제 상태의 차이를 감지하고 해결

작동 방식

  • • 1. 사용자가 YAML 매니페스트를 적용하여 AWS 리소스를 정의
  • • 2. ACK 컨트롤러가 CR 변경 사항을 감지
  • • 3. 컨트롤러가 AWS API를 호출하여 리소스를 생성, 업데이트, 삭제
  • • 4. 컨트롤러가 AWS 리소스 상태를 모니터링하고 Kubernetes 리소스 상태를 업데이트

권한과 준비 상태

  • • Kubernetes RBAC와 controller의 AWS IAM 권한은 별도
  • • CR 생성 / ResourceSynced가 app readiness를 증명하지 않음
  • • 기본 감시 범위는 cluster이며 namespace 분리만으로 격리되지 않음