이번 글은 기존 Infrastructer 기반 또는 Server에 Redis 를 master/slave로 구성하여 사용하였던 것을 k8s(Kubernetes) 기반으로 얼마나 쉽게 구성할 수 있는지 알아보겠습니다. 기존 public site의 redis는 deprecation 되어, bitnami 에 제공하는 redis helm chart를 기반으로 구성합니다.
1. pre-requisite
redis를 설치하기 이전에 helm 이 v2 또는 v3 이상 버번이 설치되어 있어야 합니다.
2. helm chart를 이용한 redis 환경 구성
bitnami 에서 제공하는 redis helm chart를 사용하기 위해 아래의 site로 이동합니다.
3. repository 를 추가
helm repo add bitnami https://charts.bitnami.com/bitnami
[수행 결과]
bitnami” has been added to your repositories
4. redis 에 데이터를 저장할 dynamic pv(Persistent Volume) 설정
redis에서 데이터를 저장할 storage volume을 설정하기 위해 values.yaml을 redis-values.yaml로 download 하여 편집합니다.
values.yaml 클릭
raw 버튼 클릭
클립보드 복사(ctrl + c)
vi redis-values.yaml
위에서 clipboard에 복사한 내용을 editor 창을 열어 붙여넣기를 합니다.
redis storage volume 설정을 위해 redis-values.yaml 파일 편집
storage volume은 자신의 kubernetes에 환경에 설정된 storage class로 설정합니다
master node storageClass 설정
slave node storageClass 설정
접속 보안을 위해 password 설정
[변경 전]
[변경 후]
serviceAccount 설정
redis container가 수행하면서 storage에 접근해서 read/write 해야하기 때문에 redis-sa 라는 serviceAccount를 생성합니다.
[변경 전]
[변경 후]
containerSecurityContext 설정
[변경 전]
[변경 후]
5. redis master/slave 를 k8s 에 배포
helm tool을 이용하여 redis를 k8s에 배포합니다.
helm install redis -f redis-values.yaml bitnami/redis
[수행 결과]
6. k8s에 설치된 redis pods 목록 확인
위에 redis를 설치 후 redis가 정상적으로 master 1개 slave 2개가 배포되었는지 pod 목록을 확인합니다.
kubectl get pods -l app=redis
[수행결과]