본문 바로가기

Notice
Recent Posts
Link
Calendar
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Total
Today
관리 메뉴

Helm upgrade 본문

Kubernetes

Helm upgrade

BinaryNumber 2026. 5. 17. 13:28
반응형

Helm upgrade, 이것만 알면 됩니다

들어가며

Helm은 Kubernetes 패키지 매니저로, helm upgrade 명령을 통해 배포된 애플리케이션을 업데이트합니다.


시작 전에 확인할 것들

# 현재 설치된 릴리스 목록 확인
helm list -n <namespace>

# 릴리스의 현재 values 확인
helm get values <release-name> -n <namespace>

# 현재 사용 중인 차트 버전 확인
helm get chart <release-name> -n <namespace>

이미지 태그만 바꾸고 싶을 때

차트 버전은 그대로 두고 컨테이너 이미지만 교체할 때 사용합니다.

helm upgrade <release-name> <chart> \
  -n <namespace> \
  --reuse-values \
  --set image.tag=<new-tag>

--reuse-values: 기존 values를 그대로 유지하면서 지정한 값만 덮어씁니다.


설정 여러 개를 한 번에 바꾸려면

변경 사항이 여러 개일 때는 values 파일을 수정한 후 적용합니다.

# values.yaml 수정 후
helm upgrade <release-name> <chart> \
  -n <namespace> \
  -f values.yaml

여러 values 파일을 겹쳐 쓸 수도 있습니다 (뒤에 오는 파일이 우선).

helm upgrade <release-name> <chart> \
  -n <namespace> \
  -f values-base.yaml \
  -f values-prod.yaml

차트 버전 자체를 올려야 할 때

차트 자체의 버전을 올릴 때 사용합니다.

# 최신 차트 정보 가져오기
helm repo update

# 사용 가능한 버전 확인
helm search repo <chart-name> --versions

# 특정 버전으로 업그레이드
helm upgrade <release-name> <repo>/<chart-name> \
  -n <namespace> \
  --version <chart-version> \
  -f values.yaml

적용 전에 뭐가 바뀌는지 먼저 보는 법

실제 적용 전에 무엇이 바뀌는지 확인합니다. helm-diff 플러그인이 필요합니다.

# helm-diff 플러그인 설치 (최초 1회)
helm plugin install https://github.com/databus23/helm-diff

# 변경 사항 미리 보기
helm diff upgrade <release-name> <chart> \
  -n <namespace> \
  -f values.yaml

--dry-run으로 렌더링된 매니페스트만 확인할 수도 있습니다.

helm upgrade <release-name> <chart> \
  -n <namespace> \
  -f values.yaml \
  --dry-run

업데이트하고 나서 꼭 확인할 것들

# 릴리스 상태 확인
helm status <release-name> -n <namespace>

# 히스토리 확인
helm history <release-name> -n <namespace>

# Pod 상태 확인
kubectl get pods -n <namespace>

# 롤아웃 완료 대기
kubectl rollout status deployment/<deployment-name> -n <namespace>

뭔가 잘못됐다면? 롤백하면 됩니다

업데이트 후 문제가 생기면 이전 리비전으로 되돌립니다.

# 히스토리에서 롤백할 리비전 번호 확인
helm history <release-name> -n <namespace>

# 직전 버전으로 롤백
helm rollback <release-name> -n <namespace>

# 특정 리비전으로 롤백
helm rollback <release-name> <revision> -n <namespace>

알아두면 유용한 옵션 모음

옵션 설명
--reuse-values 기존 values 유지, 지정한 값만 덮어씀
--reset-values values를 차트 기본값으로 초기화
--set key=value 개별 값 지정
-f values.yaml values 파일 지정
--version 차트 버전 고정
--atomic 실패 시 자동 롤백
--timeout 대기 시간 설정 (기본 5m)
--dry-run 실제 적용 없이 렌더링 결과만 출력

배포 전 체크리스트 — 이것만은 꼭

  • 현재 values 백업: helm get values <release-name> -n <namespace> > values-backup.yaml
  • --dry-run 또는 helm diff로 변경 사항 사전 확인
  • 업데이트 전 현재 리비전 번호 메모 (helm history)
  • 업데이트 후 Pod 상태 및 로그 확인
  • 문제 발생 시 즉시 helm rollback 실행
Comments