Назад | Перейти на главную страницу

Использование директивы archive_command в контейнере postgres в недопустимом аргументе kubernetes: «% p»

У меня Postgres 11.5-alpine работает в кубернетах в системе «лидер-последователь», которая уже некоторое время хорошо работает с потоковой репликацией.

Я решил прикрыть свои основы, записав архив WAL на общий сетевой диск (BLOB-объект Azure через драйвер CSI blobfuse). Драйвер работает нормально, все записывается в blob и читается - отлично!

Теперь я перешел к настройке моей archive_command в yaml kubernetes, используя ключ args. Внутри аргументов у меня есть следующее:

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

Это отлично работает, и вызывается / bin / true - развертывание работает, и модули работают хорошо. Хорошая вещь!

Теперь я ввожу фактическую команду копирования архива WAL следующим образом:

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

И я получаю следующее из моего развернутого модуля в журнале:

postgres: недопустимый аргумент: "\% p" Попробуйте "postgres --help" для получения дополнительной информации.

Я пробовал избегать% p, пробовал использовать одинарные кавычки по обе стороны от всей команды. Все приводит к одному и тому же сообщению об ошибке.

Я подозреваю, что что-то не так с аргументом, переданным в точку входа контейнера, и это будет глупое простое исправление. По крайней мере, я на это надеюсь.

Кто-нибудь сталкивался с этой проблемой раньше?