쿠버네티스에 GitOps 도구 설치하기 ArgoCD 🐙

쿠버네티스에 도커 이미지를 자동 배포해주는 CI/CD를 구축해봅시다.

ArgoCD의 마스코트는 문어입니다. 아마도 쿠버네티스의 컨테이너 오케스트레이션을 상징하는 것 같습니다. 🐙


개요


argocd는 쿠버네티스 전용 CI/CD 도구입니다. helm 소스가 저장된 git repogitory 기반으로 합니다.

helm의 소스를 기반으로 하기 때문에, 쿠버네티스안의 모든 요소를 코드 기반으로 관리할 수 있습니다.

jenkins등 다른 CI/CD 도구가 코드 기반으로 된 프로젝트에 사용된다면,

코드 + 도커 이미지로 이루어진 프로젝트에 사용되는 CI/CD 도구입니다.

본 포스트는 argocd의 설명보다는 쿠버네티스(aws eks)에 설치하고 초기 설정하는 법을 다룹니다.


argo-cli 설치하기


argocd의 명령어를 입력할 수 있는 cli(커맨드 라인 인터페이스) 설치해봅시다.

터미널에서 argocd의 명령어를 입력할 수 있게 해줍니다.

일단 아래 링크로 들어가 argo-cli 다운로드 합니다.

참고로, 공식적으로는 windows를 지원하지 않으나, 본 포스트의 내용의 windows를 지원하도록 쓰여졌습니다.

👉 argo-cli 다운로드 링크

<u>argo-cli 윈도우를 지원하지 않음</u>

다운로드 후, 압축을 해제한 뒤 파일을 확인해 봅니다.

<u>argo-cli 파일확인</u>

환경 변수에 압축 푼 파일 위치를 등록해줍니다.

<u>환경변수 등록</u>

터미널에서 명령어가 사용가능한지 확인해봅시다.

argocd

<u>터미널 확인</u>


argoCD 설치


본격적으로 설치를 진행해봅니다.

kubectl 명령어를 이용하여, 클러스터에 설치가 가능한 노드가 있는지 확인합니다.

kubectl get node

argocd가 설치될 네임스페이스를 생성해줍니다.

kubectl create namespace argocd

생성한 네임스페이스에 공식 yaml을 이용해 가장 최신 버전으로 설치해줍시다.

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

설치가 완료되었는 지 확인하려면, 다음 명령어를 통해 알 수 있습니다.

kubectl get pod -n argocd

<u>설치중</u>

<u>설치완료</u>


argoCD 초기 설정


설치가 완료되었으면, 로드밸런서 설정을 통해 외부에서 접근이 가능하게 해야합니다.

아래 명령어는 linux명령어 이므로 windows라면 Gitbash에서 입력해주세요.

kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'

<u>외부접근</u>

로브밸런서 설정이 변경되었으면,

로그인을 위해 랜덤 설정된 최초 비밀번호을 확인해봅시다.

참고로, 아이디는 admin으로 고정입니다.

아래 명령어는 linux명령어 이므로 windows라면 Gitbash에서 입력해주세요.

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

<u>최초 비밀번호 확인</u> 이제 브라우저를 통해 접속해봅시다.

로드밸런서 설정이 완료되었다면, 호스트는 다음 명령어로 알 수 있습니다.

<u>호스트 확인</u>

정상적으로 설치되었다면, 다음 화면을 볼 수 있습니다,.

<u>접속</u>

로그인 후에 다음 화면을 볼 수있습니다.

<u>로그인</u>


선택사항(비밀번호 변경, cli에 컨텍스트 등록)


터미널에서 로그인을 하고, 비밀번호를 업데이트 합니다.

argocd login 서버명 #로그인 명령어
argocd account update-password #비밀번호 변경

<u>비밀번호 변경</u>

쿠버네티스 context에 추가합니다.

kubectl config get-contexts -o name
argocd cluster add 컨텍스트이름


참고문헌


더 자세한 정보는 공식 가이드를 참조하세요.

🐙🐙🐙

👉 argo-cd guide