해당 문서의 쿠버네티스 버전: v1.19
Kubernetes v1.19 문서는 더 이상 적극적으로 관리되지 않음. 현재 보고있는 문서는 정적 스냅샷임. 최신 문서를 위해서는, 다음을 참고. 최신 버전.
컨피그 맵을 사용해서 Redis 설정하기
이 페이지에서는 컨피그 맵을 사용해서 Redis를 설정하는 방법에 대한 실세계 예제를 제공하고, 컨피그 맵을 사용해서 컨테이너 설정하기 태스크로 빌드를 한다.
목적
- 다음을 포함하는
kustomization.yaml
파일을 생성한다.- 컨피그 맵 생성자
- 컨피그 맵을 사용하는 파드 리소스
kubectl apply -k ./
를 실행하여 작업한 디렉터리를 적용한다.- 구성이 잘 적용되었는지 확인한다.
시작하기 전에
쿠버네티스 클러스터가 필요하고, kubectl 커맨드-라인 툴이 클러스터와 통신할 수 있도록 설정되어 있어야 한다. 만약, 아직 클러스터를 가지고 있지 않다면, minikube를 사용해서 생성하거나 다음의 쿠버네티스 플레이그라운드 중 하나를 사용할 수 있다.
버전 확인을 위해서, 다음 커맨드를 실행kubectl version
.- 예시는
kubectl
1.14 이상 버전에서 동작한다. - 컨피그 맵을 사용해서 컨테이너 설정하기를 이해한다.
실세상 예제: 컨피그 맵을 사용해서 Redis 설정하기
아래의 단계를 통해서 컨피그 맵에 저장된 데이터를 사용해서 Redis 캐시를 설정할 수 있다.
첫째, redis-config
파일에서 컨피그 맵을 포함한 kustomization.yaml
를 생성한다.
maxmemory 2mb
maxmemory-policy allkeys-lru
curl -OL https://k8s.io/examples/pods/config/redis-config
cat <<EOF >./kustomization.yaml
configMapGenerator:
- name: example-redis-config
files:
- redis-config
EOF
kustomization.yaml
에 파드 리소스 구성을 추가한다.
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: 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: example-redis-config
items:
- key: redis-config
path: redis.conf
curl -OL https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/pods/config/redis-pod.yaml
cat <<EOF >>./kustomization.yaml
resources:
- redis-pod.yaml
EOF
컨피그 맵과 파드 오브젝트를 생성하도록 kustomization 디렉터리를 적용한다.
kubectl apply -k .
생성된 오브젝트를 확인한다.
> kubectl get -k .
NAME DATA AGE
configmap/example-redis-config-dgh9dg555m 1 52s
NAME READY STATUS RESTARTS AGE
pod/redis 1/1 Running 0 52s
이 예제에서는 설정 볼륨이 /redis-master
에 마운트되어 있다.
redis-config
키를 redis.conf
라는 이름의 파일에 추가하기 위해 path
를 사용한다.
따라서, Redis 설정을 위한 파일 경로는 /redis-master/redis.conf
이다.
이곳이 이미지가 Redis 마스터를 위한 설정 파일을 찾는 곳이다.
설정이 올바르게 적용되었는지 확인하기 위해서,
kubectl exec
를 사용해 파드 속에서 redis-cli
툴을 실행해 본다.
kubectl exec -it redis -- redis-cli
127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "2097152"
127.0.0.1:6379> CONFIG GET maxmemory-policy
1) "maxmemory-policy"
2) "allkeys-lru"
생성된 파드를 삭제한다.
kubectl delete pod redis
다음 내용
- 컨피그 맵 배우기.