728x90

목차

     

    Gitops란 무엇일까?

    GitOps는 클라우드 네이티브 환경에서 애플리케이션 배포와 인프라스트럭처 관리를 자동화하기 위한 모던한 접근 방식이다 GitOps는 Git을 단일 진실 공급원(Single Source Of Truth, SSOT)으로 사용하여 배포하며 변경된 내용을 빠르게 추적하고 관리할 수 있다.

     

    ※ GitOps의 주요 개념

    - Git : GitOps의 핵심은 Git이라고 할 수 있다. Git에 push된 버전의 App 코드와 Helm Chart들이 바로 쿠버네티스에 배포된 Application과 동기화되어 일치한다.

    - 선언적 구성 : GitOps에서 변경 사항은 선언적인 방식으로 정의된다. 이는 운영자가 변경 사항의 의도를 명확하게 설명할 수 있으며, 시스템이 원하는 상태로 수렴할 수 있도록 한다.

    - 자동화 : GitOps는 변경 사항을 자동으로 반영하고 자동으로 배포한다. 이를 통해 신속하고 안정적인 배포를 달성할 수 있다.

     

    ※ GitOps의 이점

    - 투명성 : GitOps를 사용하면 변경 사항의 추적과 관리가 용이해진다. Git 리포지토리는 변경 이력을 보존하고 변경 사항의 승인 및 롤백을 관리하는 중앙 집중식 저장소 역할을 한다.

    - 일관성 : GitOps는 인프라스트럭처와 애플리케이션 배포의 일관성을 유지한다. Git 리포지토리에 정의된 원하는 상태와 실제 상태 간의 차이를 식별하고 자동으로 조정한다.

    - 신속한 반응성 : GitOps를 통해 변경 사항을 자동으로 반영할 수 있으므로 팀은 더 빠르게 변경 사항에 대응할 수 있다.

     

    Gitops 프로세스

     

    After Delopment Commit & Push

     - 개발자는 applicaion을 개발한 코드를 git에 commit & push를 한다. 이후 trigger로 Github Action이 실행된다.

    Github Actions 실행

     - workflow가 실행되면서 github 소스를 체크아웃 받아서 빌드하여 생긴 jar파일을 이미지로 또 빌드한다. 이미지는 docker registry에 push되어 저장하고 helm chart에 변경된 이미지 태그 또한 자동으로 적용시킨다.

    Argocd Manifest Sync

     - Argocd는 default로 지정된 시간인 3분마다 스케쥴링이 실행되면서 github에 manifest가 변경된 내용이 있는지 확인 후 변경된 내용이 있다면 동기화하여 kubernetes에 배포한다.

     

    CI & CD 구축 과정

    1. msa 프레임워크 이미지 생성
    2. 생성한 이미지 docker registry에 push
    3. 저장된 docker registry의 이미지를 바탕으로 deployment.yaml, service.yaml 작성
    4. 작성한 deployment.yaml, service.yaml로 helm chart 자동 변환
    5. helm chart github에 push
    6. argocd 설치 및 로그인
    7. argocd github(helm) 연동 및 app 설정하여 배포
    8. github actions - workflow 작성
    9. github commit & push하여 workflow 테스트

     

    구축 과정 따라하기

    https://jfbta.tistory.com/301

     

    [kubernetes] Spring-cloud를 활용해 만든 msa framework를 k8s에 배포하기

    목차 준비 자료 아래 깃허브의 올린 자료를 clone 받아서 따라하면 이해하는 데 많은 도움이 될것이다. https://github.com/Parkjinman/spring-cloud-msa GitHub - Parkjinman/spring-cloud-msa: spring-cloud 라이브러리를 활

    jfbta.tistory.com

    https://jfbta.tistory.com/298

     

    [kubernetes] CI&CD - Argocd 설치 및 로그인

    목차 공식사이트 https://argo-cd.readthedocs.io/en/stable/getting_started/ Getting Started - Argo CD - Declarative GitOps CD for Kubernetes Getting Started Tip This guide assumes you have a grounding in the tools that Argo CD is based on. Please read

    jfbta.tistory.com

    https://jfbta.tistory.com/300

     

    [kubernetes] CI&CD - Argocd Github 연동 및 APP 설정으로 k8s환경에 배포하기

    목차 Github 연동 Argocd를 Github와 연동할 때 Github의 2가지 정보가 필요하다. 1. Git Repository URL 2. Git Token 1) Git Repository URL 복사 Argocd에서 사용할 github url을 미리 복사해둔다. Git Remotes URL : https://github.c

    jfbta.tistory.com

    https://jfbta.tistory.com/302

     

    [kubernetes] CI&CD - Github Actions Workflow 작성하기

    목차 Workflow 작성 전 Secrets, Variables 설정 spring-cloud-hlem의 git token을 먼저 발급해야한다. Git token 발급 좌측 하단에 Developer settings 클릭 후 Personal access tokens > Fine-grained tokens에 접속한다. Generate new tok

    jfbta.tistory.com

     

    728x90
    TOP