Консул 1.2.1 определение проверки работоспособности с использованием канала в аргументе команды
Я использую Консул версии 1.2.1 и пытаюсь реализовать проверку работоспособности, которая запускает команду:
# echo ruok | nc localhost 2181
imok
Поэтому я определил проверку работоспособности в этом файле JSON, однако я не могу найти какую-либо документацию, которая показывает, как обрабатывать канал в команде. Hashi Corp Консул документация по определению проверки здоровья находится здесь.
Это то, что я пытался, но это не правильно.
{
"service": {
"name": "testapp",
"port": 2181,
"check": [
{
"args": ["echo ruok | nc localhost 2181"],
"interval": "15s",
"timeout": "2s"
}
]
}
}
1 ответ
Ключ скрипта устарел, правильный метод - args:
Args (массив) - указывает аргументы команды для запуска для обновления статуса проверки. До Consul 1.0 проверки использовали одно поле сценария для определения команды, которую нужно запустить, и всегда выполнялись в оболочке. В Consul 1.0 был добавлен массив Args, чтобы проверки можно было запускать без оболочки. Поле Script устарело, и вы должны включить оболочку в аргументы для запуска под оболочкой, например. "args": ["sh", "-c", "..."].
Итак, у меня есть строка:
"args": ["bash", "-c", "/sbin/ss -l | grep vrrp"],
для команды проверки с конвейером к другой команде
Вы должны использовать script
проверьте и отформатируйте ваш JSON по-другому в check
раздел:
{
"service": {
"name": "testapp",
"port": 2181,
"check": {
"script": "echo ruok | nc localhost 2181",
"interval": "15s",
"timeout": "2s"
}
}
}