[K8S] ArgoCD 를 통한 쿠버네티스 CI / CD

sang yun Lee·2023년 9월 14일
0

k8s

목록 보기
5/21

개요


argoCD 를 통해 쿠버네티스CI / CD 를 비교적 손쉽게 적용할 수 있었다. 어떤 방식으로 CI / CD 가 이루어질 수 있는 지에 대해서 공유하고 나의 프로젝트를 기반으로 설명하려 한다.

CI / CD 흐름


개발자가 소스코드를 수정하면 자동으로 쿠버네티스에 반영되도록 하였다. 아래와 같은 흐름으로 진행된다.

1. 개발자Source Repo 에 커밋한다.
2. gitHub Actions 이 트리거 된다.
3. gitHub Actions 은 도커 이미지를 빌드하고 새로운 태그를 생성하여 도커 허브에 업로드한다.
4. gitHub ActionsMenifest Repo 내에 정의되어 있는 이미지의 태그를 새로 생성된 태그로 변경한다.
5. argoCD 는 주기적으로 Menifest Repo 를 확인하여 사용자가 원하는 쿠버네티스 구성 상태 (Desired State) 와 현재 구성되어 있는 상태를 비교한다.
6. 확인한 현재 상태가 Desired State 가 아닌 경우 Desired State 가 되도록 Cluster 에게 Desired State 상태가 되도록 요청한다.

Menifest Repo 는 Cluster 의 리소스가 선언적으로 정의하고 있다. ( kustomizationhelm 등이 사용된다.)

나의 프로젝트 파일 공유


실제로 내가 운용하고 있는 프로젝트의 자료이다.

  1. GitHub Actions 의 Workflows
    • 용도: 도커 이미지 빌드 , 도커허브 업로드, Menifest Repo 에 이미지 태그 수정
  2. Source Repo
    • 용도: 백엔드 소스 코드 관리
  3. Menifest Repo
    • 용도: 쿠버네티스 리소스 정의

레퍼런스


커피고래님의 블로그 (Gitops 와 ArgoCD 에 대한 설명)

0개의 댓글