k8s Redis 구성방식에 대해서 고민하는 중입니다.

2023. 9. 8. 10:46·개발중/Redis
목차
  1. 아래와 같이 구성하면 초간단 Redis 는 구축됨
  2. ConfigMap
  3. Service
  4. Deployment
  5. 참고 자료
  6. 웹파드 Redis 목적
  7. 1 Redis Cluster
  8. 2) Sentinel with Master-Slave
  9. 3 Redis with Persistence
  10. 4 Redis as Cache
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

참고 자료

쿠버네티스에 레디스 캐시 클러스터 구축기

컨피그 맵을 사용해서 Redis 설정하기

 

p.s. Redis Pod 에 대해 어떤 관리 방식이 있는지 알아보고 팀원과 논의 하라고 하셨다.

웹파드 Redis 목적

  • 버전 업그레이드에 따른 파드 재기동시 인증 정보를 레디스에 보존하기 위함.
    • AS-IS : 웹 로컬 스토리지에서 세션 관리를 진행하기 때문에 서버 재기동시 인증정보가 초기화 되기 때문에 모든 사용자가 다시 로그인을 해야하는 사태가 벌어집니다.
    • TO-BE : 레디스에서 세션 관리를 진행하기 때문에 파드가 재기동되더라도 인증정보는 보존될 수 있습니다.

1 Redis Cluster

  1. 분산 확장성 (Scalability):
    • Redis Cluster는 여러 마스터 노드와 슬레이브 노드를 조합하여 구성합니다.
    • 데이터베이스를 여러 개의 슬롯으로 분할하고, 각 슬롯은 마스터 노드에 할당됩니다.
    • 이 구성을 통해 Redis는 데이터베이스의 분산 확장성을 제공하고, 높은 가용성과 데이터 복제를 지원합니다.

2) Sentinel with Master-Slave

  1. 고가용성과 모니터링 (High Availability and Monitoring):
    • 마스터 노드와 슬레이브 노드 사이의 데이터 복제로 데이터 손실을 최소화하고 가용성을 향상시킵니다.
    • Redis Sentinel은 마스터-슬레이브 구성을 모니터하고, 마스터 노드의 상태를 지속적으로 확인합니다.
    • 마스터 노드가 다운되는 경우 자동으로 슬레이브 노드 중 하나를 마스터로 승격시킵니다.
    • Sentinel은 높은 가용성을 유지하고 서비스의 중단을 최소화합니다.
    • 또한 모니터링 및 알림을 제공하여 Redis 클러스터의 상태를 관리할 수 있습니다.

3 Redis with Persistence

  1. 데이터 보존 (Data Persistence):
    • Redis는 메모리 기반 데이터베이스로 기본적으로 데이터를 메모리에 저장합니다.
    • 데이터의 보존을 위해 RDB (Redis DataBase) 및 AOF (Append-Only File)와 같은 옵션을 활용할 수 있습니다.
    • RDB는 주기적으로 스냅샷을 생성하여 디스크에 저장하고, AOF는 변경된 데이터를 로그 형식으로 기록합니다.
    • 이를 통해 Redis는 데이터 보존과 복구를 지원합니다.

4 Redis as Cache

  1. 캐싱 (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
  1. 아래와 같이 구성하면 초간단 Redis 는 구축됨
  2. ConfigMap
  3. Service
  4. Deployment
  5. 참고 자료
  6. 웹파드 Redis 목적
  7. 1 Redis Cluster
  8. 2) Sentinel with Master-Slave
  9. 3 Redis with Persistence
  10. 4 Redis as Cache
'개발중/Redis' 카테고리의 다른 글
  • [트러블 슈팅] Headless Service 에 대한 오해 (1)
  • 고성능을 위한 Redis (High Availability, HA)와 Kubernetes 구축 마스터 가이드 (Spring Session storage 설정까지)
  • [트러블슈팅] Could not connect to Redis at 127.0.0.1:6379: Connection refused
  • [Redis 트러블슈팅] OOM command not allowed when used memory > 'maxmemory'.
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (932) N
      • 개발중 (634) N
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (87)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18) N
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (17)
        • 기록 (1)
        • 캐글 스터디 (3)
        • R (12)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    docker
    알고리즘
    네트워크 관리사 학점
    파이썬 알고리즘
    리눅스 마스터 1급 요약
    java
    네트워크 관리사 2급
    REST API
    네트워크 관리사
    네트워크 관리사 요약
    git
    쿠버네티스 스터디
    jpa
    네트워크 관리사 2급 실기
    리눅스 마스터 요약
    리눅스 마스터
    VUE
    리눅스 1급 요약
    네트워크 관리사 자격증
    리눅스 마스터 1급
    Spring
    네트워크 관리사 실기
    redis
    쿠버네티스
    파이썬
    Git 저장소
    BackendDevelopment
    리눅스 마스터 1급 정리
    springboot
    스프링
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
k8s Redis 구성방식에 대해서 고민하는 중입니다.

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.