[Kubernetes] Helm & ArgoCD 배포

91Savage·2023년 10월 30일
0

kubernetes

목록 보기
4/4

Helm Chart

1. Helm Chart를 버전 별로 배포가 가능하며, 버전 관리를 통해 롤백이 가능.
2. 변수 설정 및 변수 선언을 함으로서 여러 템플릿에 동시 적용 가능.

1. Helm Chart 생성

helm create "차트명"

2. Chart.yml 작성

Chart에 대한 이름, 버전, 설명 등이 정의된 파일.
(추후에 새로운 버전의 차트를 만들 때 version 수정(형식은 x.x.x)

3. Values.yml 작성

변수로 쓰일 파일이이며 {{ .Values.image.tag }} 와 같이 사용 되므로 인덴테이션에 유의하여 작성 한다.

4. templates 폴더 하위에 배포할 resource 정의

기본적으로 deployment, service 와 같이 배포 할 리소스를 helm의 template 문법으로 정의 한다.

5. Chart 검사하기

helm lint "Chart.yaml 경로"  //문법적 오류만 점검

helm template "Chart.yaml 경로" --dry-run // 미리보기로 배포하고자 하는 형태가 맞는지 확인

6.원격 레포에서 사용 할 수 있는 환경으로 변경

차트만 저장할 경로 생성
ex) mkdir charts_repo
   	
    HELM-CHARTS
        - charts_repo (차트만 저장 될 경로)
    	- 차트경로
        
	helm repo package "차트경로" -d "charts_repo"
	// charts_repo 하위에 tgz 파일 생긴 것 확인

helm repo index "charts_repo" --url="원격 레포의 charts_repo 경로" //빗버킷은 API주소 사용

index.yaml에 urls 경로 잘 등록 되었는지 확인.

git add .
git commit -m "커밋메시지"
git push

7. ArgoCD 구축

  1. 프로젝트 생성
	Source Repository : 원격 레포지토리 chart_repo 경로
    Destinations : 적용 할 클러스터 , 네임스페이스 등록
    
    [저장]
  1. Connect Repo
[VIA HTTPS]
Type : helm
Name : 사용 할 레포이름
Project : 위에서 만든 프로젝트 등록
Repository URL : 원격 레포의 chats_repo 경로
Username : 저장소 소유자 이름
Password : APP_PASSWORD

    [저장]
  1. Create Application
SYNC POLICY : Manual (수동) or Automatic (자동)

[Auto] 선택시 : 
PRUNE RESOURCES 은 변경 사항에 따라 리소스를 업데이터할 때, 기존의 리소스를 삭제하고 새로운 리소스를 생성한다. Job 리소스처럼 매번 새로운 작업을 실행해야 하는 경우 이 옵션을 사용한다.
SELF HEAL 은 ArgoCD가 지속적으로 git repository의 설정값과 운영 환경의 값을 자동 Sync하도록 한다. (default timeout 5 seconds)

[SET DELETION FINALIZER]
계단식 삭제 기능으로 상위 앱이 삭제될 때 하위 앱과 해당 리소스가 모두 삭제된다. 

SOURCE

Repository URL : 등록된 매니페스트 Repo 선택 (Git / Helm 등록된 타입으로 자동 선택된다.)
Chart : Repository에 추가된 Helm Chart를 선택한다.
Version : Helm Chart의 버전을 선택한다.

8. 헬름차트 버전변경

1. Chart.yaml
	version: 0.0.1 -> 0.0.2 변경
 [저장]
 
 2. helm package "차트경로" -d "index.yaml 경로"
 3. helm repo index "index.yaml 경로" --url="차트 저장 될 경로 주소"
 4. index.yaml 파일 확인 (0.0.2 버전의 내용이 저장 됨)
 5. git add .
 	git commit -m "커밋 메시지"
    git push
 6. ArgoCD application 클릭 -> 좌측 상단에 "App Details" 클릭 -> revision 변경 [저장]

0개의 댓글