EKS CI/CD 구성 프로젝트_3

duckiee·2023년 3월 27일
0
post-thumbnail

이번 포스트는 ArgoCD/Argo Rollout 환경을 구성하는 작업을 포스팅 하기로 했다.

1. ArgoCD 설치

ArgoCD는 매니페스트를 사용하여 설치하며, 아래와 같이 두개의 파일을 사용할 예정이다.

  • install.yaml : ArgoCD 서비스 설치에 필요한 CRD 매니페스트(ingress 제외)
  • ingress.yaml : ArgoCD - ALB 생성 및 연동에 필요한 ingress 매니페스트

매니페스트 파일은 아래 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

2. ArgoCD - GitHub 연동

어플리케이션 코드 레포지토리인 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 내용
  • 결과화면


3. ArgoRollout 설치

ArgoRollout 서비스 또한 매니페스트를 사용하여 구성하며
매니페스트 파일은 아래 GitHub 링크 에서도 확인 가능하다.
ArgoRollout 매니페스트

아래와 같이 install.yaml 파이를 사용하여 설치한다.

#Argo Rollout Namespace 생성
$ kubectl create namespace argo-rollouts

#Argo Rollout 설치
$ kubectl apply -f install.yaml -n argo-rollouts
profile
DevOps로 진화하기

0개의 댓글