본문 바로가기
문서 목차
ORKESTRIX설치

Redis

고성능 인메모리 데이터 캐시 Redis 를 구성하고, 센티넬(Sentinel) 기반 고가용성을 제공합니다. 마스터 장애 시 레플리카가 자동으로 마스터로 승격됩니다. 웹 기반 관리 도구( RedisInsight )로 데이터를 조회·관리할 수 있습니다.

QUANTUM C&S

고성능 인메모리 데이터 캐시 Redis를 구성하고, 센티넬(Sentinel) 기반 고가용성을 제공합니다. 마스터 장애 시 레플리카가 자동으로 마스터로 승격됩니다. 웹 기반 관리 도구(RedisInsight)로 데이터를 조회 · 관리할 수 있습니다.

설정값

inventory/qks/group_vars/all/all-k8s.yaml:

qks_redis_enabled: true
qks_redis_version: 28.2.4
qks_redis_architecture: replication
qks_redis_replicas: 3
qks_redis_sentinel_enabled: true
qks_redis_storage_size: 10Gi

qks_redis_admin_version: "2.46.0"
qks_redis_admin_fqdn: "redis.{{ kube_default_domain }}"

실행

./install.sh ubuntu plays/qks-redis.yaml

설치 흐름

./install.sh ubuntu plays/qks-redis.yaml
  ├─ 1. 관리 UI 접속 도메인을 각 노드 /etc/hosts에 등록
  ├─ 2. Helm 저장소 등록 ('bitnami')
  ├─ 3. 네임스페이스 생성
  ├─ 4. Helm으로 Redis 배포 (bitnami/redis 차트, 센티넬 기반 복제 구성)
  ├─ 5. RedisInsight 매니페스트 템플릿 생성
  └─ 6. RedisInsight 매니페스트 적용 (Deployment+Service+Ingress)

설치 확인

kubectl get pods -n <qks_redis_namespace> -l app.kubernetes.io/instance=<qks_redis_release>

Redis 노드 파드(레플리카 수만큼) 전부 Running이어야 합니다.

실제 동작 확인

역할 확인:

kubectl exec -n <ns> <qks_redis_release>-node-0 -c redis -- redis-cli ROLE

캐싱 + 복제 확인:

kubectl exec -n <ns> <qks_redis_release>-node-0 -c redis -- redis-cli SET gs_test "hello"
kubectl exec -n <ns> <qks_redis_release>-node-1 -c redis -- redis-cli GET gs_test

슬레이브 노드에서도 같은 값이 조회되면 복제가 정상입니다.

센티넬 자동 장애조치 확인:

kubectl delete pod -n <ns> <qks_redis_release>-node-0   # 현재 마스터 강제 종료

# 30~40초 후
kubectl exec -n <ns> <qks_redis_release>-node-1 -c redis -- redis-cli ROLE

다른 노드가 자동으로 master로 승격되면 정상입니다. 데이터도 그대로 보존되어 있어야 합니다.

관리 UI 확인:

curl -k -s https://<qks_redis_admin_fqdn>/api/health/

{"status":"up"}이 반환되면 정상입니다.

다음 단계