728x90
반응형
k8s Redis 메니페스트
아래와 같이 구성하면 초간단 Redis 는 구축됨
- 로컬 세션 스토리지를 레디스로 옮겼다.
- 근데 문제가 있다.
- 파드에 있는 노드가 죽어버리면 .. ?
- 로컬 스로리지에서 인증 정보를 저장할 때랑 별 다른게 없는것이 아닌가 ?
- 그래서 사람들이 master 와 slave 로 구성을 하는 것 같다.
ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: lucy3-redis-config
namespace: lucy3
data:
redis-config: ""
Service
apiVersion: v1
kind: Service
metadata:
name: lucy3-redis-service
namespace: lucy3
spec:
selector:
app: lucy3-redis
ports:
- protocol: TCP
port: 6379
targetPort: 6379
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: lucy3-redis-deployment
namespace: lucy3
spec:
replicas: 1
selector:
matchLabels:
app: lucy3-redis
template:
metadata:
labels:
app: lucy3-redis
spec:
containers:
- name: lucy3-redis
image: redis:5.0.4
command:
- redis-server
- "/redis-master/redis.conf"
env:
- name: MASTER
value: "true"
ports:
- containerPort: 6379
resources:
limits:
cpu: "0.1"
volumeMounts:
- mountPath: /redis-master-data
name: data
- mountPath: /redis-master
name: config
volumes:
- name: data
emptyDir: {}
- name: config
configMap:
name: lucy3-redis-config
items:
- key: redis-config
path: redis.conf
참고 자료
p.s. Redis Pod 에 대해 어떤 관리 방식이 있는지 알아보고 팀원과 논의 하라고 하셨다.
웹파드 Redis 목적
- 버전 업그레이드에 따른 파드 재기동시 인증 정보를 레디스에 보존하기 위함.
- AS-IS : 웹 로컬 스토리지에서 세션 관리를 진행하기 때문에 서버 재기동시 인증정보가 초기화 되기 때문에 모든 사용자가 다시 로그인을 해야하는 사태가 벌어집니다.
- TO-BE : 레디스에서 세션 관리를 진행하기 때문에 파드가 재기동되더라도 인증정보는 보존될 수 있습니다.
1 Redis Cluster
- 분산 확장성 (Scalability):
- Redis Cluster는 여러 마스터 노드와 슬레이브 노드를 조합하여 구성합니다.
- 데이터베이스를 여러 개의 슬롯으로 분할하고, 각 슬롯은 마스터 노드에 할당됩니다.
- 이 구성을 통해 Redis는 데이터베이스의 분산 확장성을 제공하고, 높은 가용성과 데이터 복제를 지원합니다.
2) Sentinel with Master-Slave
- 고가용성과 모니터링 (High Availability and Monitoring):
- 마스터 노드와 슬레이브 노드 사이의 데이터 복제로 데이터 손실을 최소화하고 가용성을 향상시킵니다.
- Redis Sentinel은 마스터-슬레이브 구성을 모니터하고, 마스터 노드의 상태를 지속적으로 확인합니다.
- 마스터 노드가 다운되는 경우 자동으로 슬레이브 노드 중 하나를 마스터로 승격시킵니다.
- Sentinel은 높은 가용성을 유지하고 서비스의 중단을 최소화합니다.
- 또한 모니터링 및 알림을 제공하여 Redis 클러스터의 상태를 관리할 수 있습니다.
3 Redis with Persistence
- 데이터 보존 (Data Persistence):
- Redis는 메모리 기반 데이터베이스로 기본적으로 데이터를 메모리에 저장합니다.
- 데이터의 보존을 위해 RDB (Redis DataBase) 및 AOF (Append-Only File)와 같은 옵션을 활용할 수 있습니다.
- RDB는 주기적으로 스냅샷을 생성하여 디스크에 저장하고, AOF는 변경된 데이터를 로그 형식으로 기록합니다.
- 이를 통해 Redis는 데이터 보존과 복구를 지원합니다.
4 Redis as Cache
- 캐싱 (Caching):
- Redis는 빠른 읽기 및 쓰기 연산을 제공하므로 캐싱 레이어로 사용하기에 적합합니다.
- 주로 데이터베이스나 다른 백엔드 서비스의 부하를 줄이고 응답 시간을 개선하기 위해 사용됩니다.
- 데이터 만료 및 자동 삭제 기능을 활용하여 캐싱 전략을 구성할 수 있습니다.
아마 Sentinel with Master Slave 방식이 우리 상황에 어울리는 것 같다. (?)
으 어려워
728x90
반응형
'개발중 > Redis' 카테고리의 다른 글
Redis Pub/Sub 에 대해서 알아보기. (0) | 2024.09.24 |
---|---|
[트러블 슈팅] Headless Service 에 대한 오해 (1) (0) | 2023.09.18 |
고성능을 위한 Redis (High Availability, HA)와 Kubernetes 구축 마스터 가이드 (Spring Session storage 설정까지) (1) | 2023.09.18 |
[트러블슈팅] Could not connect to Redis at 127.0.0.1:6379: Connection refused (0) | 2023.09.12 |
[Redis 트러블슈팅] OOM command not allowed when used memory > 'maxmemory'. (0) | 2023.09.12 |