Helm 2로 Redis HA 차트의 볼륨·복제본 설정 맞추기
Helm 2를 설치하고 stable/redis-ha 차트를 배포하며 남긴 기록입니다. 차트의 기본값을 그대로 사용했을 때 볼륨과 Pod 배치 조건이 당시 클러스터와 맞지 않아 값을 조정했습니다.
이 글의 Tiller, helm init, helm install --name은 Helm 2 기준입니다. 현재 Helm 명령과 구분해서 봐야 합니다.
Chart와 Release
Chart는 Kubernetes 리소스의 템플릿과 기본값을 묶은 패키지입니다. 그 차트를 특정 이름과 설정으로 설치한 결과를 Release로 관리합니다.
기본 구조는 다음과 같습니다.
mychart/
Chart.yaml
values.yaml
charts/
templates/Chart.yaml에는 차트 정보, values.yaml에는 기본 설정값, templates에는 리소스 템플릿을 둡니다. 같은 차트를 사용하더라도 values와 클러스터 조건에 따라 배포 결과는 달라질 수 있습니다.
Helm 2와 Tiller
Helm 2는 클라이언트와 클러스터 안의 Tiller로 구성됐습니다. Tiller가 배포할 리소스에 접근할 수 있어야 하므로 ServiceAccount와 RBAC 권한도 함께 설정해야 했습니다.
helm init --service-account tiller --upgrade이 명령은 tiller ServiceAccount와 필요한 권한이 이미 준비됐다는 전제입니다. 원래 테스트 기록에서는 cluster-admin을 연결했지만, 모든 설치에 클러스터 전체 관리자 권한이 필수인 것은 아닙니다. 배포할 범위에 맞춰 권한을 정해야 합니다.
Redis HA 차트 설치
당시에는 저장소에서 차트를 검색하고 기본값을 확인한 뒤 설치했습니다.
helm search
helm inspect stable/redis-ha
helm inspect values stable/redis-ha
helm install stable/redis-ha --name redis-ha-test이 이름과 저장소 경로는 당시 기록입니다. 현재 같은 이름의 차트라도 제공하는 저장소와 설정 키가 다를 수 있습니다.
볼륨과 복제본 수 조정
당시 환경에는 차트가 요구하는 동적 볼륨 할당 구성이 없어 PVC 단계에서 문제가 생겼습니다. 워커 노드도 두 대였는데 차트의 기본 복제본 수는 세 개였고, 배치 조건을 함께 맞춰야 했습니다.
테스트에서는 지속성을 끄고 복제본을 두 개로 줄였습니다.
persistentVolume:
enabled: false
replicas: 2helm upgrade -f config.yaml redis-ha-test stable/redis-ha변경 후 설정이 반영되는 것을 확인했습니다. 여기서 지속성을 끄는 선택은 볼륨 준비를 대신하는 운영 구성은 아닙니다. Redis 데이터 보관이 필요하다면 사용할 스토리지와 데이터 복구 방법을 따로 준비해야 합니다.
차트 적용 후 확인
차트 설치 명령이 끝났는지와 Pod·PVC가 정상인지, Redis에 실제로 연결할 수 있는지는 나눠 확인해야 합니다. Pending 상태라면 values를 임의로 줄이기 전에 이벤트에서 자원·볼륨·배치 조건 중 무엇이 막혔는지 볼 수 있습니다.
이 작업에서는 차트를 설치하는 명령보다 기본값이 클러스터 환경에 맞는지 확인하는 과정이 필요했습니다.