9.1. Helm 차트
어떨 때 쓰는가
- 여러 자원으로 이루어진 애플리케이션을 한 번에 설치할 때
- 같은 애플리케이션을 환경별로 값만 바꿔 배포할 때
- 설정을 바꿨다가 문제가 생겨 이전 상태로 되돌릴 때
여러 자원을 함께 배포하는 문제
애플리케이션 하나를 배포하려면 자원이 여럿 필요합니다.
| 자원 | 하는 일 |
|---|---|
| Deployment | 애플리케이션을 띄웁니다 |
| Service | 고정 이름을 줍니다 |
| Ingress | 외부 접속을 연결합니다 |
| ConfigMap | 설정을 담습니다 |
| Secret | 비밀번호를 담습니다 |
| PVC | 저장 공간을 요청합니다 |
이것들을 따로 만들면 문제가 생깁니다.
- 순서를 지켜야 합니다 (PVC 가 있어야 Deployment 가 뜹니다)
- 하나라도 빠뜨리면 동작하지 않습니다
- 지울 때도 하나씩 찾아 지워야 합니다
- 환경마다 값이 다른 곳을 일일이 고쳐야 합니다
Helm 이란
여러 자원을 하나로 묶어 설치·변 경·삭제하는 도구 입니다. Kubernetes 의 패키지 관리자에 해당합니다.
Helm 이 해결하는 것은 이렇습니다.
| 문제 | Helm 의 해결 |
|---|---|
| 자원이 여럿 | 하나의 명령으로 함께 설치·삭제 |
| 환경마다 값이 다름 | 값만 바꿔 같은 차트를 재사용 |
| 되돌리기가 어려움 | 개정 이력을 남겨 되돌립니다 |
| 무엇이 설치됐는지 모름 | 릴리즈 단위로 관리합니다 |
차트 · 릴리즈 · 개정
세 낱말을 구분해야 합니다.
| 낱말 | 뜻 | 비유 |
|---|---|---|
| 차트(Chart) | 배포 정의 꾸러미. 자원 틀과 기본값이 들어 있습니다 | 설치 파일 |
| 릴리즈(Release) | 차트를 설치한 결과 하나 | 설치된 프로그램 |
| 개정(Revision) | 릴리즈를 고칠 때마다 올라가는 번호 | 변경 이력 |
같은 차트로 이름만 다르게 여러 번 설치할 수 있습니다. 예를 들어 데이터베이스 차트 하나로
db-dev 와 db-prod 두 릴리즈를 만들 수 있습니다.
차트에는 틀(템플릿)과 기본값 이 들어 있습니다. 설치할 때 값을 넘기면 그 값이 틀에 채워져 실제 자원 정의가 만들어집니다.
릴리즈 목록
Helm 차트 > 릴리스 로 들어갑니다.

| 열 | 설명 |
|---|---|
| 이름 | 릴리즈 이름 |
| 네임스페이스 | 설치된 네임스페이스 |
| 차트 | 차트 이름과 버전 |
| 앱 버전 | 애플리케이션 버전 |
| 상태 | 설치 결과 |
| 개정 | 몇 번째 변경인지 |
차트 버전과 앱 버전은 다릅니다.
| 버전 | 무엇의 버전인가 |
|---|---|
| 차트 버전 | 배포 정의의 버전. 틀만 고쳐도 올라갑니다 |
| 앱 버전 | 그 안에 담긴 애플리케이션의 버전 |
차트 버전이 올라갔다고 애플리케이션이 새 버전이 되는 것은 아닙니다.
릴리즈 상태
| 상태 | 뜻 | 다음에 할 일 |
|---|---|---|
| deployed | 정상 설치됨 | 없음 |
| failed | 설치·변경 실패 | 상세의 매니페스트와 자원 상태를 확인합 니다 |
| pending-install | 설치 진행 중 | 오래 머물면 자원 상태를 확인합니다 |
| pending-upgrade | 변경 진행 중 | 위와 같습니다 |
| superseded | 더 새 개정으로 대체됨 | 정상입니다. 이력에 남는 값입니다 |
pending-* 에서 오래 머무는 것은 대개 파드가 뜨지 못하는 경우입니다. 릴리즈가 만든 파드를
찾아 이벤트를 확인하십시오(3.1 장).
릴리즈 상세
이름을 누르면 상세 화면이 열립니다.
| 탭 | 내용 | 언제 봅니다 |
|---|---|---|
| 값 | 설치할 때 지정한 설정값 | 어떤 값으로 설치했는지 확인할 때 |
| 매니페스트 | 실제로 만들어진 자원 정의 | 값이 어떻게 반영됐는지 확인할 때 |
| 자원 | 이 릴리즈가 만든 자원 목록 | 영향 범위를 볼 때 |
| 노트 | 차트가 제공하는 안내문 | 설치 후 접속 방법 등 |
| 이력 | 개정별 변경 기록 | 되돌릴 개정을 고를 때 |
값과 매니페스트의 차이
이 둘을 구분하면 문제를 빨리 찾습니다.
| 탭 | 보이는 것 |
|---|---|
| 값 | 내가 넣은 값만 |
| 매니페스트 | 차트 기본값까지 합쳐진 최종 결과 |
"값을 넣었는데 반영되지 않았다" 는 경우 매니페스트를 보십시오. 세 가지 중 하나입니다.
| 원인 | 확인 방법 |
|---|---|
| 값 이름이 틀림 | 매니페스트에 반영되지 않았습니다 |
| 차트가 그 값을 쓰지 않음 | 값 탭에는 있는데 매니페스트에 없습니다 |
| 다른 값이 덮어씀 | 매니페스트에 다른 값이 들어가 있습니다 |
저장소 관리
Helm 차트 > 저장소 에서 차트를 받아 올 곳을 관리합니다.

| 항목 | 설명 |
|---|---|
| 이름 | 저장소 별칭 |
| 주소 | 저장소 URL |
폐쇄망에서는 내부 저장소(ChartMuseum)만 등록되어 있습니다. 외부 저장소는 연결되지 않습니다. 새 차트가 필요하면 운영 담당자가 내부 저장소에 올려야 합니다.