GitOps / 개괄

codelab·2023년 9월 28일
0

GitOps

목록 보기
1/4


목표

  1. 개발자가 git codo-repository의 test branch로 code를 Push 합니다.
  2. 사전에 등록해둔 git hook(Jenkins에 연결됨)을 통해 push가 감지되고 자동으로 Jenkins에서 codo-repository의 최신 버전을 checkout하여 새 docker container image를 build 하고 빌드가 완료되면 새 이미지를 container registry로 push 합니다.
  3. 파이프라인으로 연결된 update-manifest job을 통해 git manifest repository에 접근하여 yaml 파일 안에 docker-image의 version을 새 빌드번호로 업데이트합니다.
  4. argoCD는 git manifest repository를 감시하고 있다가 변경을 발견하고 yaml 파일과 container registry를 이용하여 대상 쿠버네티스 클러스터에 이미지를 배포합니다.

할 일

Jenkins

https://jenkins.code-lab.kr

  • Jenkins
    docker pipeline 을 이용해서 docker build & container registry push 되도록 설정
  • git repository
    Jenkinsfile을 이용해서 pipeline을 구성하고
    git webhook을 이용해서 push 이벤트가 발생하면 자동으로 pipeline이 실행되도록 설정
    Payload URL: https://jenkins.code-lab.kr/github-webhook/
    (source code + Dockerfile + Jenkinsfile)

ArgoCD

https://argo.code-lab.kr

  • 미리 docker-registry tekton을 시크릿으로 등록
 kubectl -n <k8s 네임스페이스명> create secret docker-registry <생성할 스크릿 이름> \ 
 --docker-server=<레지스터리 url> --docker-username='<컨테이너 네임스페이스>/<사용자명>' \ 
 --docker-password='<컨데이너 비밀번호>' --
  • argo
    argo - settings - git repository를 등록하고 application을 생성 시 자동으로 kubernetes manifest가 생성됨
    자동/수동으로 kubernetes manifest를 배포/관리 가능
  • git repository
    (deploy-path > deploy-service.yaml)

이제 하나하나 따라가 봅시다.

profile
Think about a better architecture

0개의 댓글