Post

도커와 쿠버네티스 11: 깃허브 액션과 ArgoCD를 활용한 CI/CD

CI/CD의 이해

  • Continuous Integration: 개발자가 코드를 지속적으로 통합하고 테스트하는 프로세스
    • 소프트웨어를 개발하면서 개발자는 코드를 작성한 후에 깃과 같은 버전 관리 시스템에 push하게 되는데 이때 CI 소프트웨어는 새로운 코드를 기존 코드와 통합하고 자동으로 테스트한다
  • Continuous Deployment: 지속적 전달 도는 지속적 배포라는 뜻
    • 지속적 전달: 코드를 배포할 수 이쓴 환경을 준비하는 과정까지
    • 지속적 배포: 실제로 코드를 배포하는 것까지 → 교재에서 지속적 전달을 의미

사전 준비 사항

  • metalLB가 설치되어 있는지 확인 photo 1
  • mymetallb 네임스페이스 확인 photo 2

깃 설치

  • 아래와 같이 깃을 설치한다 photo 3
  • 이름과 이메일 주소를 설정한다 photo 4
  • work에서 깃을 초기화한다 photo 5

깃허브 액션을 통한 소스코드 관리

깃허브 액션을 사용한 Hello World! 출력

  • github-actions-practice라는 리포지토리를 생성하여 Actions 택으로 들어간다 photo 6
  • set up a workflow yourself을 선택한 후 아래와 같이 작성한다 photo 7
  • .github/workflows에서 확인할 수 있고 Actions 탭에 들어가면 아래와 같이 확인할 수 있다 photo 8
  • 디렉터리를 아래와 같이 정리한다 photo 9
  • 아래 창에서 링크를 복사한다 photo 10
  • 아래와 같이 로컬에서 복제할 수 있다 photo 11
  • 성공되는지 확인 photo 12
  • main.yml 확인 photo 13

깃허브 액션을 통한 도커 컨테이너 실행

  • github-actions-practice에서 Dockerfile을 생성하여 작성한다 photo 14
  • requirements.txt를 아래와 같이 작성한다 photo 15
  • myapp 폴더를 생성한 후 아래와 같이 main.py를 작성한다 photo 16
  • .github/workflows에서 flask-test.yml을 아래와 같이 작성한다 photo 17
  • 아래와 같이 정보를 확인한다 photo 18
  • 아래와 같이 깃허브로 push한다 photo 19
    • 이제 비밀번호로 로그인하면 안 된다고 해서 링크를 따르고 성공 photo 20

ArgoCD를 활용한 CD

  • ArgoCD: 쿠버네티스 애플리케이션의 자동 배포를 가능하게 해주는 오픈소스 소프트웨어

ArgoCD 설치

  • 헬름을 활용하여 argocd 리포지토리를 추가한다 photo 21
    • 그 중에서 argo/argo-cd 설치 예정
  • 디렉터리 정리 photo 22
  • argo/argo-cd pull한다 photo 23
  • 네임스페이스를 생성하고 네임스페이스 목록 확인 photo 24
  • 네임스페이스 설치 photo 25
  • 네임스페이스 확인 photo 26
  • argocd 서비스에 접근할 수 있도록 ClusterIP에서 LoadBalancer 타입으로 변경한다 photo 27
  • 바뀐지 확인 photo 28
  • 비밀번호 확인 photo 29
  • 나오는 IP 주소를 포트포워딩에 추가한다 photo 30
  • 127.0.0.1:2001에 접속해본다 photo 31 photo 32

ArgoCD를 활용한 깃허브 실습

  • 깃허브 리포지토리 생성 photo 33
  • 디렉터리 정리 photo 34
  • deployment.yml 작성 photo 35
  • service.yml 작성 photo 36
  • 깃 초기화 photo 37
  • 로컬 리포지토리와 깃허브 리포지토리를 연결하고 깃허브로 업로드한다 photo 38
  • argocd로 돌아와서 리포지토리를 연결한다 photo 39
  • 연결되었는지 확인 photo 40
  • 아래와 같이 새로운 애플리케이션을 만든다 photo 41 photo 42 photo 43
  • synchronise하다 photo 44

  • 10장과 비슷한 오류 나와서 일단 포기
This post is licensed under CC BY 4.0 by the author.

Trending Tags