gpt4 book ai didi

redis - 带有 Redis 的 Kubernetes 配置映射

转载 作者:IT王子 更新时间:2023-10-29 06:05:02 27 4
gpt4 key购买 nike

我在关注这个 tutorial为 redis.conf 设置配置映射。创建 Redis 部署后,我检查以确保每个 pod 中都有 redis.conf 文件,并且它们都在那里。问题是当进入 redis-cli 并检查那里的配置时,没有使用 redis.conf 值。正在使用默认值,就好像 Redis 没有使用 redis.conf 文件启动一样。

redis.conf

maxclients 2000
requirepass "test"

redis 配置配置图

{
"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 list .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 类型,但我认为这不是这里的问题。

最佳答案

看起来您正在拉取默认的 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。

关于redis - 带有 Redis 的 Kubernetes 配置映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49156985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com