Argo CD를 로컬에서 시작해 보기
Argo CD를 로컬에서 시작해 보기
처음부터 저장소나 클라우드 환경을 갖추기 전에, 로컬에서 Argo CD가 어떻게 동작하는지 직접 눈으로 확인하고 싶다면 Kind로 가볍게 시작해 볼 수 있어요. Kind는 쿠버네티스 클러스터를 도커 컨테이너 안에서 띄워 주는 도구라서, 실무에 쓰는 것과 동일한 구조로 Argo CD를 지금 내 컴퓨터에서 경험하기 좋아요. 이 페이지에서는 Kind 설치는 물론, 클러스터 생성부터 Argo CD 설치, UI 접속과 로그인까지 한 흐름으로 따라 해 볼게요.
본문
이 가이드는 Argo CD가 기반으로 삼는 도구에 대한 기본기가 있다고 가정해요. 혹시 도구 자체가 낯설다면 understanding the basics를 먼저 읽어 보세요. Argo CD 개발 환경을 직접 구성하려면 로컬 실행 개발자 가이드도 참고할 수 있어요.
Kind 설치
Kind는 공식 quick-start 안내를 따라 설치하면 돼요.
Kind 클러스터 생성
Kind가 설치되면 아래 명령으로 쿠버네티스 클러스터를 하나 만들어요.
kind create cluster --name argocd-cluster
이렇게 하면 argocd-cluster라는 이름의 로컬 쿠버네티스 클러스터가 생성돼요.
kubectl이 Kind 클러스터를 가리키도록 설정
클러스터 생성 후에는 kubectl이 새 kind 클러스터를 사용하도록 설정해요.
kubectl cluster-info --context kind-argocd-cluster
이 명령으로 kubectl이 올바른 클러스터를 가리키는지 확인할 수 있어요.
클러스터에 Argo CD 설치
이제 kind 클러스터에 Argo CD를 설치할 준비가 됐어요. 먼저 Argo CD 매니페스트를 적용해 필요한 리소스를 만듭니다.
kubectl create namespace argocd
kubectl apply -n argocd --server-side --force-conflicts -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
여기서 --server-side --force-conflicts 플래그가 필요한 이유는, 일부 Argo CD CRD가 client-side apply를 위한 크기 제한을 초과하기 때문이에요. 자세한 내용은 getting started guide에서 확인할 수 있어요.
Argo CD API 서버 노출
기본적으로 Argo CD의 API 서버는 클러스터 바깥으로 노출되어 있지 않아요. UI에 로컬로 접근하려면 노출시켜야 하는데, 개발 목적이라면 kubectl의 port-forward를 쓰면 간편해요.
kubectl port-forward svc/argocd-server -n argocd 8080:443
이 명령은 로컬 머신의 8080 포트를 쿠버네티스 클러스터 안의 Argo CD API 서버 443 포트로 연결해 줘요.
Argo CD UI 접속
이제 브라우저를 열고 http://localhost:8080 으로 이동하면 Argo CD UI에 접근할 수 있어요.
Argo CD 로그인
Argo CD UI에 로그인하려면 기본 admin 비밀번호가 필요해요. 쿠버네티스 클러스터에서 다음과 같이 꺼내 올 수 있어요.
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d
admin 사용자 이름과 방금 얻은 비밀번호로 로그인하면 돼요. 이제 Getting Started Guide의 2단계로 넘어갈 준비가 끝났어요.