我正在关注此tutorial来为redis.conf设置配置图。在我创建Redis部署之后,我检查以确保redis.conf文件位于每个pod中,并且它们在那里。问题是当进入redis-cli并检查那里的配置时,不使用redis.conf值。正在使用默认值,就好像Redis没有使用redis.conf文件启动一样。
redis.conf
maxclients 2000
requirepass "test"
redis-config configmap
{
"apiVersion": "v1",
"data": {
"redis-config": "maxclients 2000\nrequirepass \"test\"\n\n"
},
"kind": "ConfigMap",
"metadata": {
"creationTimestamp": "2018-03-07T15:28:19Z",
"name": "redis-config",
"namespace": "default",
"resourceVersion": "2569562",
"selfLink": "/api/v1/namespaces/default/configmaps/redis-config",
"uid": "29d250ea-221c-11e8-969f-06c0c8d545d2"
}
}
k8 redis manifest.json
{
"kind" : "Deployment",
"apiVersion" : "extensions/v1beta1",
"metadata" : {
"name" : "redis-master",
"creationTimestamp" : null
},
"spec" : {
"replicas" : 2,
"template" : {
"metadata" : {
"creationTimestamp" : null,
"labels" : {
"app" : "redis",
"role" : "master",
"tier" : "backend"
}
},
"spec" : {
"hostNetwork" : true,
"nodeSelector" :{ "role": "cache"},
"containers" : [{
"name" : "master",
"image" : "redis",
"ports" : [{
"containerPort" : 6379,
"hostPort" : 6379,
"protocol" : "TCP"
}
],
"volumeMounts" : [{
"mountPath" : "/redis-master",
"name": "config"
}
],
"resources" : {},
"terminationMessagePath" : "/dev/termination-log",
"imagePullPolicy" : "IfNotPresent"
}],
"volumes" : [{
"name" : "config",
"configMap" : {
"name" : "redis-config",
"items": [{
"key": "redis-config",
"path": "redis.conf"
}]
}
}
],
"restartPolicy" : "Always",
"terminationGracePeriodSeconds" : 30,
"dnsPolicy" : "ClusterFirst",
"securityContext" : {}
}
}
},
"status" : {}
}
现在我知道该教程使用的是Pod类,我使用的是Deployment类,但我认为这不是问题所在。
答案 0 :(得分:2)
看起来你正在拉动默认的redis容器。如果你检查redis Dokerfiles,例如https://github.com/docker-library/redis/blob/d53b982b387634092c6f11069401679034054ecb/4.0/alpine/Dockerfile,在底部,他们有:
CMD ["redis-server"]
将使用默认配置启动redis。
每个redis文档: https://redis.io/topics/quickstart 在"启动Redis"部分,如果要提供不同的配置,则需要使用以下命令启动redis:
redis-server <config file>
此外,Kubernetes文档中的示例使用不同的redis容器:
image: kubernetes/redis
从Dokerfile:https://github.com/kubernetes/kubernetes/blob/master/examples/storage/redis/image/Dockerfile开始,似乎有人用提供的配置启动Redis。