• CD
    • Continuous Delivery : 상용 서비스에 전달까지만 하고, 배포는 담당자가 직접 수동으로 컨펌!
    • Continuous Deployment : 상용 서비스에 배포까지 완전 자동화된... ㅎㄷㄷ
    • www.redhat.com/ko/topics/devops/what-is-ci-cd
  • GitOps
    • 배포를 위해서 Git Repogitory 만을 단일한 Source으로 사용을 하면~
    • 씸플하게 복잡도를 낮추고, 표준화된 자동화와 안정성을 가져 올 수 있다.
    • 즉, 하나의 `배포 작업서`만 선언적으로 정의 하자는 컨셉.
    • "선언적 시스템" 이란?
      • k8s 와 같이, 리소스 관리를 일일이 명령하지 않고~
      • manifest file을 정의하면... 시스템은 그 상태를 유지하기 위해 노력을 한다.
    • 일반적으로, "개발 & 배포"의 용도가 다르니~ 각각에 저장소를 따로 사용한다.
      • app 저장소 : 애플리케이션 소스코드 저장
        • 코딩 -> 푸쉬 -> (CI 구현체) -> 컨테이터 빌드 -> 컨테이너 이미지 레파지토리 릴리즈
      • config 저장소 : 쿠버네티스 매니페스트 저장
        • 해당 매니페스트 수정 -> GitOps 동기화 -> k8s 클러스터 반영
    • https://coffeewhale.com/kubernetes/gitops/argocd/2020/02/10/gitops-argocd
    • https://kangwoo.kr/tag/argocd
  • Argo CD
    • 아르고 프로젝트 (https://argoproj.github.io) (https://medium.com/finda-tech/search?q=argo) 구현체.
    • GitOps를 따르는 Continuous Delivery 구현한 K8S 배포 툴.
    • 당연히 K8S Manifest(deployment.yaml, ingress.yaml, service.yaml, ... ) 를 지원 함.
    • 일일이 각 환경 별로 작성을 하지않게... 편리한 템플릿(Kustomize, Helm, Ksonnet 등등) 도 지원 함.
  • argocd-cli 설치 로그인
    • brew tap argoproj/tap
    • brew install argoproj/tap/argocd
    • argocd login 도메인 --grpc-web --sso
  • application 생성 및 설정
    • 생성 : argocd app create {이름}
    • 설정 : 
      • --repo {config git repogitory}
      • --revision {config git target revision}
      • --path {config git path}
      • --dest-server {k8s 주소}
      • --dest-namespace {k8s 네임스페이스}
      • --sync-policy automated --auto-prune
  • manifest 구조
    • https://github.com/kangwoo/hello-go 및 hello-go-deploy 참고
    • 구조 :
      • - base
        • deployment.yaml
        • kustomization.yaml
      • -overlays
        • - dev
          • deployment.yaml
          • kustomization.yaml
        • - prod
          • deployment.yaml
          • kustomization.yaml
    • // TODO : 
    • ...

-끝-

'DevOps' 카테고리의 다른 글

puckel Airflow V1 on K8S  (0) 2021.06.26
git-sync  (0) 2021.06.26
CircleCI  (0) 2020.11.23
K8S 애플리케이션  (0) 2020.07.19
K8S 리소스  (0) 2020.07.17

+ Recent posts