Kubernetes 기반 Redis 구성 (2/2) – redis-client – IBM Developer

IBM Developer 한국어 사이트가 2021년 6월 1일자로 종료됩니다. developer.ibm.com 영문 사이트는 계속 사용하실 수 있습니다.

Kubernetes 기반 Redis 구성 (2/2) – redis-client

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

1. redis 설치 후 콘솔 로그 화면

redis를 k8s에 설치
[수행결과] installed-redis-log

2. redis-client yaml 파일 작성

make-redis-client

[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


list-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


[수행결과]
connect-redis-master

5. message 를 redis-master에 등록

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

set key1 "test message1"


[수행 결과]
redis-client

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


[수행 결과]
get-key1