이번 글은 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]
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
[수행 결과]