이번 포스트는 ArgoCD/Argo Rollout 환경을 구성하는 작업을 포스팅 하기로 했다.
ArgoCD는 매니페스트를 사용하여 설치하며, 아래와 같이 두개의 파일을 사용할 예정이다.
매니페스트 파일은 아래 GitHub 링크 에서도 확인 가능하다.
ArgoCD 매니페스트 파일
아래 명령어로 ArgoCD 설치를 진행한다.
#argocd 네임 스페이스 생성
$ kubectl create namespace argocd
#argocd 서비스 설치
$ kubectl apply -f install.yaml -n argocd
#argocd Ingress 설치
$ kubectl apply -f ingress.yaml -n argocd
Ingress의 ALB DNS 및 실제 도메인을 ALB DNS와 연결하여 ArgoCD 콘솔에 접속한다.
ArgoCD admin 계정의 암호는 아래 명령어로 확인 가능하다.
$ kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
ArgoCD 설치 후 콘솔 접속 및 admin 계정 암호를 변경할 수 있도록 ArgoCD CLI를 설치한다.
#ArgoCD CLI 설치 (Linux OS)
$ curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argocd/releases/latest/download/argocd-linux-amd64
$ chmod +x /usr/local/bin/argocd
#ArgoCD 로그인
$ argocd login <ArgoCD DNS 도메인명>
#ArgoCD admin 계정 암호 변경
$ argocd account update-password
어플리케이션 코드 레포지토리인 GitHub와 ArgoCD를 연동한다.
코드를 작성하고 배포할 서버에서 ed25519 알고리즘의 SSH 키를 발급한다.
$ ssh-keygen -t ed25519 -a 100 -f <SSH Key명>
#생성될때까지Enter를눌러기본값설정
#2개의Key파일생성: <SSH Key명>, <SSH Key명>.pub
자신의 GitHub 계정에 로그인 하여 SSH key를 아래와 같이 등록한다.
settings > SSH and GPG keys > New SSH key > ADD SSH key
ArgoCD에 접속하여 SSH 키를 등록한다.
settings > repositories > CONNECT REPO USING SSH
• Name : Github repository 식별 가능한 임의의 이름
• Project : 별도의 project 생성을 하지않았다면 default로
• Repository URL : 미니프로젝트 Repository의SSH 주소(git@github.com으로시작)
• SSH private key data : 생성해둔 SSH key 파일중 private key 내용
ArgoRollout 서비스 또한 매니페스트를 사용하여 구성하며
매니페스트 파일은 아래 GitHub 링크 에서도 확인 가능하다.
ArgoRollout 매니페스트
아래와 같이 install.yaml 파이를 사용하여 설치한다.
#Argo Rollout Namespace 생성
$ kubectl create namespace argo-rollouts
#Argo Rollout 설치
$ kubectl apply -f install.yaml -n argo-rollouts