작년에 했던 프로젝트인데 2차 개발이 들어간다고해서
꺼내서 여기 저기 보다가 정리해보기~!
Helm 차트를 사용하여 애플리케이션을 배포하고,
ArgoCD를 통해 GitOps 방식으로 자동 배포를 관리하는 스크립트파일
한 줄 씩 자세한 설명, ,,
echo 'Create ***-backend yaml'
터미널에 "Create ***-backend yaml" 라는 메세지를 출력해
어떤 역할을 하는 스크립트인지 구분하기위함.
cat > back-end.yaml <<EOF
back-end.yaml 이라는 파일을 생성하고 그 파일 내용들을 작성하는 것
<<EOF는 EOF 구분자까지 입력된 텍스트를 back-end.yaml 에 저장하겠다는 것
apiVersion: argoproj.io/v1alpha1
ArgoCD에서 사용하는 API버전 지정.
( argoproj.io/v1alpha1는 ArgoCD Application 리소스의 API 버전 )
kind: Application
Kubernetes 리소스 종류.
( Application 은 ArgoCD에서 애플리케이션을 정의하는 리소스 종류 )
metadata:
name: ***-be-dev
namespace: argocd
Kubernetes의 메타데이터를 정의하는 부분.
name : 어플리케이션 이름 지정.
namespace : 이 어플리케이션이 존재할 네임스페이스를 지정.
spec:
project: ***
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
어플리케이션 동작과 관련된 세부 설정
project : 프로젝트명 지정.
syncPolicy: 애플리케이션 동기화 정책 설정.
automated:자동 동기화로 설정
prune: true로 되어있으면 불필요한 리소스를 삭제함.
selfHeal: true로 되어있으면 애플리케이션 상태가 변동되었을 때 자동으로 복구함
SyncOptions: 동기화 추가 옵션
- CreateNamespace: true로 되어있으면 애플리케이션이 배포될 때 namespace가 없으면 자동으로 생성.
- ArgoCD는 Git 리포지토리와 Kubernetes 클러스터 간의 연결을 관리하고, Git에 저장된 리소스 정의 파일을 클러스터에 자동으로 반영하는 도구 => syncPolicy: automated, prune: true, selfHeal: true)을 통해, Git에서 관리되는 애플리케이션 설정이 자동으로 Kubernetes 클러스터에 반영된다는 의미
sources:
- repoURL: "harbor.***.kr/***-be-dev"
chart: "***-be-dev"
targetRevision: "0.0.VER"
helm:
enableOCI: true
values: |-
nodeSelector:
ncloud.com/nks-nodepool: *******
애플리케이션 소스와 관련된 설정
- repoURL: Helm차트가 저장되어있는 저장소 URL.
chart: 사용할 Helm차트명. 이 차트를 통해 애플리케이션이 배포됨
targetRevision: 배포할 차트의 버전.
helm: 헬름차트에 대한 추가 설정
enavleOCI: 컨테이너 이미지 표준(OCI) 규격을 사용해 Helm 차트를 가지고올 수 있게 설정.
values: Helm차트에 전달할 값 설정. ( 차트의 values.yaml 파일을 수정하는 방법과 유사함. )
nodeSelector: kubernetes의 nodeSelector를 사용해 애플리케이션이 실행될 특정 노드 풀을 지정함.
해당하는 애플리케이션이 ******이라는 노드풀에서 실행될 수 있도록함.
destination:
namespace: iwms-be-dev
server: https://kubernetes.default.svc
애플리케이션 배포될 대상 네임스페이스와 서버 설정
namespace: 네임스페이스이름 지정
server: Kubernetes 클러스터 API 서버 지정. 여기서는 기본을 사용.
EOF
위에 <<EOF랑 짝궁. 내용이 끝났다는것
'Chapter01 > deploy' 카테고리의 다른 글
[AWS] 프리티어 과금 조심하세여,, (1) | 2024.04.04 |
---|---|
[AWS] 빌드 속도가 너무 느려요! swap메모리 (1) | 2024.03.26 |
[Spring Boot] Backend Frontend 같이 빌드하기 (0) | 2024.03.14 |