본문

K8s 운영의 완성, GitOps Bridge Pattern

1. GitOps Bridge Pattern

테라폼으로 기반을 닦고, ArgoCD로 꽃을 피우기 위해 그 사이의 통로를 만드는 기술

 

테라폼(IaC)과 ArgoCD(GitOps) 사이의 '정보 전달의 가교(Bridge)' 역할을 하는 디자인 패턴입니다. 테라폼이 생성한 클라우드 리소스의 메타데이터(예: IAM Role ARN, 로드밸런서 주소 등)를 ArgoCD가 인식할 수 있는 형태로 전달하여, 인프라와 쿠버네티스 리소스를 통합 관리할 수 있게 해줍니다.

 

2. 왜 사용하게 되었을까?

  • 설정 불일치(Drift) 해결: 테라폼이 만든 인프라 정보와 ArgoCD가 배포하는 앱 설정이 서로 수동으로 관리될 때 발생하는 정보 불일치 문제를 해결하기 위해 등장했습니다.
  • 관심사의 분리: "인프라는 테라폼이, 앱은 ArgoCD가"라는 명확한 역할 분담을 유지하면서도 두 도구가 유연하게 협업하기 위함입니다.

 

3. 어떨 때 사용하나?

  • 복잡한 애드온 설치: Karpenter, Load Balancer Controller 등 AWS 자원 권한(IAM)이 필수적인 애드온을 구축할 때 사용합니다.
  • 멀티 클러스터 환경: 여러 개의 EKS 클러스터에 동일한 운영 환경(애드온, 보안 정책)을 표준화하여 배포해야 할 때 유용합니다.

 

4. 사용 시 좋은 점

  • 완전자동화 부트스트래핑: 클러스터 생성부터 필수 운영 도구 설치까지 사람의 개입 없이 한 번에 완료할 수 있습니다.
  • 보안성 강화: 자격 증명을 수동으로 주입하지 않고, 테라폼이 생성한 IRSA 정보를 ArgoCD가 안전하게 전달받아 사용하므로 보안 사고 위험이 줄어듭니다.
  • 유지보수 편의성: 인프라 정보가 변경되어도 브릿지를 통해 자동으로 앱 설정에 반영되므로 운영 공수가 획기적으로 줄어듭니다.

 멀티 계정 EKS 환경을 위한 GitOps Bridge 운영 흐름

1. 인프라 준비 (Terraform의 역할)

  • 클러스터 생성: 테라폼이 AWS 상에 EKS 클러스터와 네트워크(VPC)를 구축합니다.
  • 메모 남기기 (핵심): 테라폼은 인프라를 만든 후, 생성된 리소스 정보(IAM Role ARN 등)를 쿠버네티스 내부의 'Secret'이라는 공간에 메타데이터로 기록해 둡니다.

2. 정보 전달 (Bridge 역할)

  • 데이터 읽기: ArgoCD는 테라폼이 남겨놓은 'Secret' 메모(메타데이터)를 자동으로 읽어 들입니다.
  • 가교 형성: 이를 통해 인프라 도구(Terraform)와 배포 도구(ArgoCD) 사이의 정보 간극이 메워지며, 두 시스템이 하나처럼 연결됩니다.

3. 자동 배포 (ArgoCD의 역할)

  • 운영 도구 설치: 읽어온 정보를 바탕으로 로드밸런서 컨트롤러, ExternalDNS 같은 필수 애드온을 클러스터에 자동으로 설치합니다.
  • 워크로드 실행: 최종적으로 사용자의 애플리케이션(Workloads)까지 Git에 정의된 상태 그대로 클러스터에 배포하고 동기화합니다.

이 내용은 EKS Blueprints와 함께 연동하여 사용할 때 그 진가가 드러납니다. 다음 포스팅에서는 실제 구현 코드를 통해 어떻게 메타데이터가 흐르는지 상세히 다뤄보겠습니다.

공유

댓글

Cloud & AI Engineering | 임승한

design by tokiidesu. powerd by AXZ.