👀 Epilogue
- CI 파이프라인에서 Kubernetes Deployment Manifest 파일의 도커 이미지 태그 수정을 완료하였다.
- 이제는 수정된 버전의 도커 이미지를 가지고 새로 업그레이드나 배포를 해야할 차례..!
- 위 과정에서 GitOps의 Operation 툴인 ArgoCD를 사용하고자 하는데..
- ArgoCD로 Kubernetes 클러스터 내의 리소스들을 관리하기 위해서는 사전에 Application을 만들어줘야한다.
- 콘솔로 세팅
- YAML 파일로 세팅
- 두 가지 세팅 방법이 있는데
- 우리는 아무래도 선언적으로 설정하는게 편하다보니
(맞죠?).. - YAML 파일 작성을 통해 Application을 만들어 보고자 한다 !
⚡ Leggo
- Edit as YAML
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: test-back
spec:
project: default
destination:
namespace: back-end
server: <https://kubernetes.default.svc>
source:
repoURL: <https://github.com/Cucumber-web/Test-Kubernetes>
path: .
targetRevision: main
syncPolicy:
syncOptions:
- CreateNamespace=true
automated:
selfHeal: true
prune: true
- Application Name
- 배포할 애플리케이션 이름
- 소문자, 숫자, . , -만 허용
- Project
- ArgoCD 내 애플리케이션 그룹
- SYNC POLICY
- Git 변동사항을 자동으로 반영 (Automatic)
- Git 변동사항을 수동으로 반영 (Manual)
- Repository URL
- Git or Helm 저장소 URL
- Revision
- Git의 어떤 Revision을 보고 있는지
- e.g.) Head, master, main ..
- Path
- Repo 내 변경 사항을 관리할 매니페스트 파일이 위치한 경로
- root일 경우 . 로 표기
- Cluster URL
- 배포 대상 Cluster 지정
- https://kubernetes.default.svc
- Namespace
- Cluster 내 배포할 Namespace 지정
- DIRECTORY RECURSE
- path 하위 경로의 매니페스트 파일 변동 사항 체크 여부
- 현재 application 정보 및 로그 상태 확인
- $ argocd app get [application-name]
- [ Back-End ] 배포 Test
- [ Back-End + Front-End ] 배포 Test
- 여기서 사전에 없는 namespace 지정시 잘 생성하는 것도 확인
- 현재 3분간 Sync가 이뤄지는 것으로 보임
- 최악의 경우 3분을 대기
- 이를 위해 ArgoCD도 webhook을 사용 → 나의 임무이로다..
- 매번 이렇게 Application Create는 매우 귀찮음
- 전에는 App of App 배포 전략이 존재
- 대장 Application이 존재하여 하위 Application을 관리하는 전략
- 요즘은 ApplicationSet 지원을 통해 해결한다고 함
- 전에는 App of App 배포 전략이 존재
ref.
ArgoCD 선언적으로 이용해나가기 - Helm, App of App
Declarative Setup - Argo CD - Declarative GitOps CD for Kubernetes
'CI/CD' 카테고리의 다른 글
Jenkins Front-End Dockerizing (1) | 2022.12.15 |
---|---|
Jenkins Front-End React Build (0) | 2022.12.15 |
Jenkins Kubernetes Manifest Deploy (0) | 2022.12.14 |
Jenkins Docker Image Push (0) | 2022.12.14 |
Jenkins Back-End Dockerizing (0) | 2022.12.13 |