쿠버네티스 환경에서 Redis-Sentinel 구축 실전 가이드 ②


구축(파드 생성)

1. YAML 파일 순차 적용(생성)

1) Config 생성

2) Service 생성

3) Statefulset 생성

레디스 파드 3개, 센티널 파드 3개가 모두 실행되어 Redis-Sentinel이 구성되었다.

2. Redis-Sentinel 조회

1) 역할(마스터/복제) 조회: redis-role.sh

역할(마스터/복제) 확인용 Redis ROLE 명령 스크립트

실행(조회) 결과: 보기 편하기 편집했다.

2) 센티널이 모니터하는 레디스 조회: sentinel-info.sh

센티널 확인용 Sentinel 'INFO SENTINEL' 명령 스크립트

실행(조회) 결과: 보기 편하기 편집했다.
센티널이 모니터링하는 마스터는 'redis-0'이고, 복제는 2개(slaves=2), 총 센티널 수는 3개(sentinels=3)이다.

3. 🖧 Redis-Sentinel 파드 다이어그램

┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │Sentinel-0(98) │ │Sentinel-1(100)│ │Sentinel-2(102)│ └───────┬───────┘ └───────┬───────┘ └───────┬───────┘ └───────────────────┼───────────────────┘ ▼ ┌───────────────┐ │ Redis-0(92) │ │ 🟢Master │ └──────┬────────┘ ┌──────────┴───────────┐ ▼ ▼ ┌───────────────┐ ┌───────────────┐ │ Redis-1(94) │ │ Redis-2(96) │ │ 🟡Replica-1 │ │ 🟡Replica-2 │ └───────────────┘ └───────────────┘

4. 💽 데이터 입력

1) 데이터 입력

Failover(장애 조치) 테스트를 하려고 Redis-0 파드를 다운(삭제)하면 쿠버네티스가 2초 이내에 redis-0 파드를 다시 살린다. down-after-milliseconds 3초이므로 Redis-0 다운을 감지하지 못한다. 그래서 3백만개 정도 데이터를 입력해서 다운되었던 Redis가 다시 시작하는데 5초 이상 걸리게 한다. (데이터 로딩 시간이 5초 정도 걸림)

2) 데이터 입력 확인

① 키 확인: 2,955,803 ➡ redis-benchmark는 키를 랜덤하게 생성하므로 중복이 있어서 3백만 개에 조금 못 미친다.

② AOF 파일 사이즈 확인: aof.1.incr.aof 412M
③ 파드 메모리 확인: 레디스 617MB, 센티널은 데이터를 가지고 있지 않으므로 사이즈가 늘지 않는다.


➡ 이제 파드도 생성했고, 데이터도 입력했으니 Failover(장애 조치) 테스트하러 갑시다.


<< K8s Redis-Sentinel 준비 ① K8s Redis-Sentinel 테스트 ③ >>

Email 답글이 올라오면 이메일로 알려드리겠습니다.