안전한 쿠버네티스 운영 — GitOps와 ArgoCD
토스 서버 플랫폼 팀의 김영록 엔지니어가 '실수 없이 안전하게 쿠버네티스 운영하기'를 연다. 이 세션은 네트워크나 모니터링 같은 기능적 운영이 아니라, 엔지니어가 어떻게 하면 더 안전하게 실수 없이 작업할 수 있는지 그 환경 구성에 초점을 맞춘다. 컨테이너는 격리로 높은 보안성을 가진다고 여겨지지만, 클러스터 내 얽힌 수많은 서비스의 복잡도가 오히려 가시성을 떨어뜨려 휴먼 에러나 보안 구멍의 기회를 만든다. 본인은 실수하지 않더라도 새 팀원은 계속 생기므로 '실수하지 않기를 바라는 것'에는 늘 비용이 따른다. 그래서 토스는 가시성과 휴먼 에러 방지를 위해 GitOps와 OPA(Open Policy Agent) 두 가지를 도입했다. 토스는 테스트베드·데브·라이브 세 종류의 클러스터를 운영하며, Istio 버전 업그레이드처럼 테스트베드 → 개발환경에서 검증한 뒤 라이브에 점진 적용한다.
토스는 멀티 데이터센터·멀티 클러스터를 액티브-액티브로 운영해 트래픽 조절로 사이드 이펙트를 손쉽게 제거하지만, 인프라 튜닝·벤치마킹이 쉬운 만큼 양쪽 클러스터의 ArgoCD·Prometheus 설정이 서로 달라지는 형상 드리프트가 생기곤 한다. 계열사 인프라까지 더해지며 효율적인 멀티 클러스터 형상 관리가 절실해졌고, 그 해법이 GitOps다. GitOps는 애플리케이션을 단일 진실 소스로 보고 생성·삭제·수정 등 배포 관점의 모든 작업을 Git을 통해 적용한다는 의미다. 토스는 오픈소스 ArgoCD를 사용하는데, Git의 쿠버네티스 배포 정보(Helm 차트, Kustomize 등)를 커스텀 리소스로 표현하고 실제 배포 상태와 동기화하는 오퍼레이터 패턴 도구로, API 서버·Repository 서버·Controller 서버 세 컴포넌트로 구성된다.