본문 바로가기
Docker

[Docker] 클라우드를 위한 쿠버네티스&도커 - 4주차 (Redis&Voting app)

by 지금은4시11분 2024. 7. 26.

[ Redis ]

*Redis란?

-database와 같은 데이터 저장소, 다만 저장하는곳이 Memory인 점에서 일반 db와 차이점이 있다.

-데이터 저장 형식은 키-값 (Key-Value) 기반

-하드디스크 대신 redis를 사용하는 이유 : db에 집중된 부하를 분산할 수 있음 -> 서버에 부담 줄어든다

 

Redis 동작 원리 (출처 : MySQL 공식 웹 사이트)

 

 

 

쿠버네티스 구동

$ minikube start

 

redis-deployment.yaml 생성

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
      - name: redis
        image: redis:6.2.6
        ports:
        - containerPort: 6379
---
apiVersion: v1
kind: Service
metadata:
  name: redis
spec:
  selector:
    app: redis
  ports:
    - protocol: TCP
      port: 6379
      targetPort: 6379
  type: ClusterIP

 

 

 


[ Voting app ]

 

Python으로 작성된 투표 화면에서 투표를 하면, 해당 데이터가 redis로 저정되고, 저장된 redis 데이터를 worker를 통해 db에 저장하고 결과 값을 node.js로 구성된 화면으로 보여주는 Folw.

 

redis와 db는 dockerhub에서 image를 받아올 수 있지만, vote, worker, result는 만들어줘야한다. 아래의 명령어를 통해 이미지를 만들 수 있다.

$ docker build . -t <app name>:<tag>