이전 포스트는 ArgoCD 서비스를 구성하여 GitHub와 연동 작업을 했으며
이번 포스트는 GitHub에 저장된 쿠버네티스 어플리케이션을 배포하여, ArgoCD에서도 관리하는 과정을 다룬다.
#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 콘솔에서도 동기화 되는것을 볼 수 있다
여기서 기억해야 할 점은 GitHub와 연결된 ArgoCD는 배포된 어플리케이션의 상태를 확인 할 수 있지만
매니패스트의 내용을 편집 하는 등 쿠버네티스 환경을 편집할 수는 없다.
아래 사진은 ArgoCD 콘솔에서 확인한 guestbook 어플리케이션 관련 쿠버네티스 환경이다.
동작중인 pod는 총 3개이고, deployment를 정의한 매니페스트에서 replica set을 3으로 정의해놓은 상태이다.
매니페스트 상에서 replica set을 1로 변경하게 되면 pod 수가 1개로 적용되지만, ArgoCD 콘솔에서 Edit 기능을 사용하더라도 메니페스트 내용은 변경되지 않는다.
-변경 결과 (메니페스트 변경안됨)
이번포스트에서 구성된 환경은 Git 환경으로 배포된 메니패스트 및 코드 기반으로 동작하기 때문에
관련 레포지토리에 있는 파일들을 수정 해야만 변동사항이 적용되는 것이다.
아래와 같이 GitHub에 배포된 guestbook-ui-deployment.yaml 파일에서 replica set을 1로 변경하여 매니페스트의 설정값을 변경했고, 쿠버네티스 상태 확인 시 pod 개수가 3개에서 1개로 감소했다.