Внедрение Consul Healthcheck в среде Docker - PullRequest
2 голосов
/ 06 мая 2019

Я новичок в Консуле / Регистраторе и Докере. Я запутался в использовании проверки здоровья Consul в среде Docker. Это описано по следующей ссылке в разделе Docker + Interval: https://www.consul.io/docs/agent/checks.html

Вот пример определения Consul Healthcheck, описанного в ссылке:

{
  "check": {
    "id": "mem-util",
    "name": "Memory utilization",
    "docker_container_id": "f972c95ebf0e",
    "shell": "/bin/bash",
    "args": ["/usr/local/bin/check_mem.py"],
    "interval": "10s"
  }
}

Является ли скрипт healthcheck внутри образа докера или за его пределами (в примере: check_mem.py)? Должны ли мы знать идентификатор контейнера и вручную вставить в поле: docker_container_id? (это был бы не очень эффективный способ)

Я гуглял вокруг, и единственный ответ, который я могу найти, находится в конце следующего обсуждения: https://github.com/hashicorp/consul/issues/3182

Но этот код является некоторым «обходным путем» - он использует «первичную» проверку работоспособности докера и переменную регистратора - ENV SERVICE_CHECK_SCRIPT. Он не использует сценарий консула healthcheck.

Может кто-нибудь помочь мне понять, как работает консула Healthcheck в среде докеров.

1 Ответ

0 голосов
/ 07 мая 2019

Проверка работоспособности докера выполняется в контейнере докера.

Ваш пример эквивалентен docker exec f972c95ebf0e /bin/bash /usr/local/bin/check_mem.py

...