在 kubernetes 中的 postgres 容器上使用“archive_command”指令“无效参数:“%p”

在 kubernetes 中的 postgres 容器上使用“archive_command”指令“无效参数:“%p”

我在 kubernetes 中的领导者-追随者设置中运行了 Postgres 11.5-alpine,该设置已经使用流复制运行了一段时间。

我决定通过将 WAL 存档写入共享网络驱动器(通过 blobfuse csi 驱动程序写入 Azure blob)来覆盖我的基础。驱动程序运行良好,内容正在写入 blob 并且可以读取 - 太棒了!

现在,我使用 args 键在 kubernetes yaml 中设置了 archive_command。在 args 中,我有以下内容:

"-c", "archive_mode=on", "-c", "archive_command=/bin/true/"

一切运行正常,/bin/true 被调用 - 部署成功,pod 运行良好。好东西!

现在我要输入实际的 WAL 存档复制命令,如下所示:

"-c", "archive_mode=on", "-c", "archive_command=cp %p /var/walarchive/%f"

我在日志中从已部署的 pod 中获取了以下内容:

postgres:无效参数:“\%p”尝试“postgres --help”获取更多信息。

我尝试过转义 %p,尝试过在整个命令的两边使用单引号。但都出现了相同的错误消息。

我怀疑传递到容器入口点的参数出了点问题,这是一个非常简单的修复方法。至少我希望如此。

以前有人遇到过这个问题吗?

相关内容