Code

로컬의 OrbStack과 GitOps 배포를 위한 ArgoCD 사용기

OrbStack을 활용한 로컬 쿠버네티스 환경 구성과 ArgoCD를 통한 선언적 배포 및 모니터링 경험 정리

그동안 다양한 백엔드와 시스템 개발을 해왔지만, 쿠버네티스(Kubernetes) 환경을 직접 세팅하거나 로컬에서 클러스터를 띄워 개발해 본 경험은 많지 않았다. 이번에 회사 프로젝트를 진행하며 로컬 환경 구성을 위한 OrbStack과 배포 모니터링을 위한 ArgoCD를 처음 사용해 보았는데, 각각의 도구가 로컬 개발과 운영 배포 단계에서 어떤 역할을 하는지 기술적인 관점에서 정리해 본다.


OrbStack으로 로컬 쿠버네티스 환경 구성하기

보통 로컬 머신에서 도커(Docker)나 쿠버네티스 클러스터를 띄울 때는 높은 메모리 점유율과 발열, 배터리 소모 같은 리소스 부담이 흔히 단점으로 언급되곤 한다.

OrbStack은 macOS의 네이티브 가상화 프레임워크를 기반으로 개발되어, 적은 메모리와 CPU 사용량으로 빠른 실행 속도를 제공하는 경량 컨테이너 및 리눅스/쿠버네티스 환경 도구다.

실제로 사용해 보니 별도의 복잡한 설정 없이도 로컬 쿠버네티스 클러스터가 즉시 활성화되었고, 프로덕션과 동일한 구성의 컨테이너 매니페스트를 올려서 테스트해 볼 수 있었다. 로컬 환경에서 서비스 간 네트워크 통신이나 환경 변수 주입이 정상적인지 미리 검증할 수 있어서, 실제 배포 단계로 넘어가기 전에 설정 오류를 잡는 데 유용했다.


ArgoCD를 활용한 GitOps 배포와 모니터링

로컬에서 검증을 마친 애플리케이션이 실제 클러스터로 배포되는 과정에서는 ArgoCD를 사용했다.

ArgoCD는 쿠버네티스를 위한 선언적 GitOps 지속적 배포(CD) 도구다. Git 저장소에 정의된 매니페스트를 단일 진실 공급원(Single Source of Truth)으로 삼아, 저장소의 변경 사항과 실제 클러스터에 배포된 상태를 지속적으로 비교하고 동기화(Sync)한다.

특히 실무에서 유용했던 부분은 웹 UI를 통한 실시간 시각화였다. 애플리케이션을 구성하는 디플로이먼트(Deployment), 파드(Pod), 서비스(Service), 인그레스(Ingress) 등의 리소스 관계가 트리 구조로 깔끔하게 연결되어 나타난다.

배포가 진행될 때 새로운 파드가 프로비저닝되고 이전 버전이 안전하게 종료되는 과정, 각 리소스의 헬스 체크 상태가 실시간으로 표시된다. 터미널에서 kubectl 명령어로 상태를 일일이 조회하지 않아도 전체 시스템의 형상과 동작 여부를 한눈에 확인할 수 있어서 모니터링과 디버깅이 수월했다.


정리

로컬에서는 OrbStack을 통해 가볍게 프로덕션과 유사한 환경을 구성해 검증하고, 배포 단계에서는 ArgoCD를 통해 선언적 관리와 시각적 모니터링을 수행하는 흐름을 경험했다.

쿠버네티스 환경이 낯설더라도 이러한 도구들을 적절히 조합하면 로컬 개발의 편의성과 운영 배포의 안정성을 효과적으로 확보할 수 있음을 확인할 수 있었다.