Консул 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"
           }
    }
}
Другие вопросы по тегам