Kubernetes 배포를 위한 GitHub와 ArgoCD 활용_3

duckiee·2023년 2월 20일
0

이전 포스트는 ArgoCD 서비스를 구성하여 GitHub와 연동 작업을 했으며
이번 포스트는 GitHub에 저장된 쿠버네티스 어플리케이션을 배포하여, ArgoCD에서도 관리하는 과정을 다룬다.

GitHub에 저장된 쿠버네티스 매니패스트로 어플리케이션 배포

  • 로컬 PC내에서 guestbook 이라는 Application 타입의 매니패스트를 사용하여 어플리케이션을 생성한다.
  • 아래와 같이 repoURL 구문에서 GitHub service-repository 레포지토리의 매니패스트를 참고한다.
#application.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: guestbook
  namespace: argocd
spec:
  destination:
    namespace: guestbook
    server: https://kubernetes.default.svc
  project: default
  source:
    path: guestbook
    repoURL: git@github.com:<github 유저명>/service-repository.git
    targetRevision: HEAD
  syncPolicy:
    automated:
      selfHeal: true
    syncOptions:
    - CreateNamespace=true 

로컬 PC에서 어플리케이션 생성이 완료되면 ArgoCD 콘솔에서도 동기화 되는것을 볼 수 있다

  • 로컬 PC
  • ArgoCD 콘솔

여기서 기억해야 할 점은 GitHub와 연결된 ArgoCD는 배포된 어플리케이션의 상태를 확인 할 수 있지만
매니패스트의 내용을 편집 하는 등 쿠버네티스 환경을 편집할 수는 없다.

아래 사진은 ArgoCD 콘솔에서 확인한 guestbook 어플리케이션 관련 쿠버네티스 환경이다.

동작중인 pod는 총 3개이고, deployment를 정의한 매니페스트에서 replica set을 3으로 정의해놓은 상태이다.

매니페스트 상에서 replica set을 1로 변경하게 되면 pod 수가 1개로 적용되지만, ArgoCD 콘솔에서 Edit 기능을 사용하더라도 메니페스트 내용은 변경되지 않는다.

  • replicas 3>1로 변경 후 save

-변경 결과 (메니페스트 변경안됨)

이번포스트에서 구성된 환경은 Git 환경으로 배포된 메니패스트 및 코드 기반으로 동작하기 때문에
관련 레포지토리에 있는 파일들을 수정 해야만 변동사항이 적용되는 것이다.

아래와 같이 GitHub에 배포된 guestbook-ui-deployment.yaml 파일에서 replica set을 1로 변경하여 매니페스트의 설정값을 변경했고, 쿠버네티스 상태 확인 시 pod 개수가 3개에서 1개로 감소했다.

  • kubectl pod 개수 확인
  • ArgoCd 콘솔 deploy 이벤트 확인
profile
DevOps로 진화하기

0개의 댓글