GitOps / ArgoCD

codelab·2023년 10월 2일
0

GitOps

목록 보기
3/4

ArgoCD ?

Argo CD - Declarative GitOps CD for Kubernetes

출처: https://argo-cd.readthedocs.io


이미지 저장소(컨테이너 레지스트리) 만들기

DockerHub를 이용할 수 있지만 사설(비공개) 저장소 1개까지만 무료고 초과분은 유료라 OCI 등 클라우드 서비스의 무료 서비스를 이용합니다.

이미지 저장소 생성은 각 클라우드 서비스마다 다르므로 도큐먼트를 참고하도록 합니다.

GCP 예시

### Google Container Registry
gcloud auth configure-docker us-east4-docker.pkg.dev
gcloud auth login
gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
--location=us-central1 --description="Docker repository"
gcloud artifacts repositories list
gcloud auth configure-docker us-central1-docker.pkg.dev
docker build -t gcp .
docker tag gcp us-central1-docker.pkg.dev/vigilant-router-398710/quickstart-docker-repo/quickstart-image:tag1
docker push us-central1-docker.pkg.dev/vigilant-router-398710/quickstart-docker-repo/quickstart-image:tag1
docker run  -p 3000:3000 -e PORT=3000 -d --name gcp us-central1-docker.pkg.dev/vigilant-router-398710/quickstart-docker-repo/quickstart-image:tag1

컨테이너 레지스트리 시크릿 생성

ArgoCD 배포 시 각 마이크로서비스의 컨테이너 이미지가 필요하기 때문에 컨테이너 레지스트리에 접근 정보(컨테이너 url, 사용자이름, 비밀번호)를 쿠버네티스 클러스터의 네임스페이스 내에 시크릿으로 미리 등록해 둡니다.

# 네임스페이스 생성
kubectl create ns <앱을 배포할 네임스페이스명> 

# docker-registry token을 시크릿으로 등록
 kubectl -n <앱을 배포할 네임스페이스명> create secret docker-registry <생성할 시크릿명> \ 
 --docker-server=ap-seoul-1.ocir.io --docker-username='<컨테이너 네임스페이스>/<사용자명>' \ 
 --docker-password='<컨데이너 레지스트리 비밀번호>'
 

Git Repository에 k8s 배포 스크립트 반영

deploy-path > deploy-service.yaml

ArgoCD

https://argo.code-lab.kr

argo - settings - git repository를 등록하고 application을 생성 시 자동으로 kubernetes manifest가 생성됨
자동/수동으로 kubernetes manifest를 배포/관리 가능

배포 스크립트가 위치한 GitRepo 정보 등록

세팅 - 레파지토리 로 이동하여 커넥트 레포를 클릭합니다.

레포지토리 주소는 ssh 용을 복사해서 넣습니다.

  • ssh 용 레포지토리 주소

SSH private key data 는 깃헙에 등록한 SSH private key의 내용을 복사해서 붙여넣습니다.

커넥트를 누르고 좀 기다리면 등록결과가 나타납니다.

Application 등록

우측 확장메뉴에서 Create application 메뉴를 클릭해고 새로운 앱을 추가합니다.

  • cf. Applications - New APP 버튼을 누르고 새로운 앱을 추가할 수도 있습니다.

배포 확인

profile
Think about a better architecture

0개의 댓글