이번 글은 redis 를 k8s에 설치 후 redis client pod를 통해 redis master에 데이터를 set/get 하는 글입니다.
이전 글에서 redis를 설치 후 결과 창에 한번실행 후 삭제되는 redis-client deployment 지속적으로 접속 pod로
사용하기 위해 redis-client yaml 파일을 만들어 다시 배포하겠습니다.

1. redis 설치 후 결과 창 화면
redis를 k8s에 설치 후 결과화면

2. redis-client yaml 파일 작성
redis-client yaml 파일을 작성하기

[redis-client.yaml]

apiVersion: v1
kind: Pod
metadata:
  name: redis-client
  labels:
    app: redis-client
spec:
  containers:
  - name: redis-client
    image: docker.io/bitnami/redis:6.0.8-debian-10-r35
    imagePullPolicy: IfNotPresent
    args:
    - bash
    env:
    - name: REDIS_PASSWORD
      value: admin1234!
    tty: true

3. redis-client를 k8s에 배포
redis-client yaml 파일을 적용합니다.
kubectl apply -f redis-client.yaml

[수행결과]
pod/redis-client created

redis-client pod 목록 확인
kubectl get pods -l app=redis-client

4. redis-client pod를 이용한 redis-master 접속
redis-master에 접속하기 전에 redis 접속 비밀번호를 얻기위해 아래와 같이 명령어를 실행합니다.

export REDIS_PASSWORD=$(kubectl get secret –namespace default redis -o jsonpath=”{.data.redis-password}” | base64 –decode)

redis-client를 사용하여 redis-master 접속
kubectl exec -it redis-client — redis-cli -h redis-master -a $REDIS_PASSWORD

5. message 를 redis-master에 등록
redis-master에 message를 set하기 위해 아래와 같이 명령어를 실행합니다.
set key1 “test message1”

[수행 결과]

6. redis-slave에서 메시지를 수신
redis-client를 사용하여 redis-slave에 접속
kubectl exec -it redis-client — redis-cli -h redis-slave -a $REDIS_PASSWORD

redis-slave에 message를 get하기 위해 아래와 같이 명령어를 실행합니다.

get key1
[수행 결과]