Helm upgrade 본문
반응형
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실행
'Kubernetes' 카테고리의 다른 글
| ArgoCD Notifications Slack 연동 (1) | 2026.05.16 |
|---|---|
| ArgoCD ApplicationSet (0) | 2026.05.16 |
| ArgoCD Application, AppProject (0) | 2026.05.16 |
| ArgoCD Helm 설치 시 생성되는 컴포넌트 역할 정리 (0) | 2026.05.16 |
| Loki write / read / backend 역할 정리 (0) | 2026.05.16 |
Comments
