我正试着让红星在库伯奈茨的环境中运行。我已经做了很多教程,阅读文档等等。我需要将.rdb文件和.aof文件(S)保存在一个持久的卷中,这样数据就可以在Pod (或容器)失败/删除/等等中持久保存。我已经启动了一个redis实例,我正在尝试使用一个自定义配置文件。所有的豆荚都被创建并运行良好,定制配置文件中的save和appendonly变量被更新/正确(其他的是默认值)。但是,daemonize和dir变量都不会更新。不管我做什么,它们仍然是默认值。
自定义配置文件:
daemonize yes
cluster-enabled no
dir /redis/storage
port 6397
save 60 5
save 300 1
appendonly yes我尝试使用配置映射创建自定义配置文件,然后使用spec.template.spec.containers.command/spec.template.spec.containers.args将自定义配置文件(命名为redis-stack.conf)复制到/etc/,其中有一个redis-stack.conf文件,该文件确实被自定义配置文件中的数据覆盖。在copy命令之后,我有redis-stack-server /etc/redis-stack.conf。当我执行kubectl apply -f <filename>.conf时,为其中一个创建的荚获取bash并执行redis-cli CONFIG GET DIR,它返回默认的dir。
我尝试在redis-cli CONFIG SET DIR <custom dir>字符串的末尾添加spec.template.spec.containers.command/spec.template.spec.containers.args,但这也不起作用。日志中没有错误,只有成功的事件。
我在网上搜索过,但我找到的解决类似问题的答案并不能解决我的问题。
任何帮助都是非常感谢的。
发布于 2023-06-02 15:52:47
我想出来了。让它使用自定义持久性目录的唯一方法是在spec.template.spec.containers.args ( spec.template.spec.containers.command是“sh”,“-c”)中启动redis堆栈服务器时将目录作为命令行参数添加。所以spec.template.spec.container.args是redis-stack-server /path/to/custom-config.conf --dir /path/to/mounted/persistent-volume。这将加载自定义配置文件中的所有内容(除daemonize外,我认为在我的示例中它实际上需要为no ),并且还正确地设置了自定义持久性目录。
令人惊讶的是,花两周的时间来做一些事情可以解决问题。;-)
https://serverfault.com/questions/1130740
复制相似问题