Я пытаюсь развернуть экспортер statsd (https://github.com/prometheus/statsd_exporter)) в качестве док-контейнера в кластере K8s. Однако я хочу, чтобы некоторые параметры были настраиваемыми. Для этого я передаю некоторые аргументыконтейнер через развертывание K8s в формате yaml. Если эти аргументы не содержат символ двойных кавычек ("), все работает нормально. Однако, если желаемое значение введенных переменных содержит двойные кавычки, K8s интерпретирует их неправильно (Нечто подобное описано в Передача строки json в переменную окружения в развертывании k8s для Envoy ). Я хочу установить аргумент --statsd.listen-tcp=":<port>"
, и я использую command
и args
в K8sразвертывание:
- name: statsd-exporter
image: prom/statsd-exporter:v0.12.2
...
command: ["/bin/statsd_exporter"]
args: ['--log.level="debug"', '--statsd.listen-tcp=":9999"']
Когда я развертываю его в K8s и проверяю содержимое «работающего» развертывания, все кажется правильным:
command:
- /bin/statsd_exporter
args:
- --log.level="debug"
- --statsd.listen-tcp=":9999"
Однако контейнер никогда не запускается,выдаёт следующую ошибку:
time="..." level=fatal msg="Unable to resolve \": lookup \": no such host" source="main.go:64"
Я думаю, что K8s пытается "отбросить" двойные кавычки, и это проходдобавив в контейнер обратную косую черту, последний не сможет их понять. Я также попытался написать args
как
args: ["--log.level=\"debug\"", "--statsd.listen-tcp=\":9999\""]
, и то же самое происходит. Я также пытался передать их как переменные env, и все время возникает одна и та же проблема: двойные кавычки неправильно анализируются.
Есть идеи относительно возможного решения?
Спасибо!