您正在查看 Kubernetes 版本的文档: v1.18
Kubernetes v1.18 版本的文档已不再维护。您现在看到的版本来自于一份静态的快照。如需查阅最新文档,请点击 最新版本。
使用 ConfigMap 来配置 Redis
这篇文档基于使用 ConfigMap 来配置 Containers 这个任务,提供了一个使用 ConfigMap 来配置 Redis 的真实案例。
教程目标
- 创建一个包含以下内容的
kustomization.yaml
文件: - 一个 ConfigMap 生成器
- 一个使用 ConfigMap 的 Pod 资源配置
- 创建一个包含以下内容的
- 使用
kubectl apply -k ./
应用整个路径的配置 - 验证配置已经被正确应用。
准备开始
你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 如果你还没有集群,你可以通过 Minikube 构建一 个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:
要获知版本信息,请输入kubectl version
.
- 此页面上显示的示例适用于
kubectl
1.14和在其以上的版本。 - 理解使用ConfigMap来配置Containers。
真实世界的案例:使用 ConfigMap 来配置 Redis
按照下面的步骤,您可以使用ConfigMap中的数据来配置Redis缓存。
- 根据
docs/user-guide/configmap/redis/redis-config
来创建一个ConfigMap:
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
将 pod 的资源配置添加到 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 文件夹以创建 ConfigMap 和 Pod 对象:
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
下。
它使用 path
将 redis-config
密钥添加到名为 redis.conf
的文件中。
因此,redis配置的文件路径为 /redis-master/redis.conf
。
这是镜像将在其中查找 redis master 的配置文件的位置。
使用 kubectl exec
进入 pod 并运行 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"
删除创建的 pod:
kubectl delete pod redis
接下来
- 了解有关 ConfigMaps的更多信息。