Внедрение Consul Healthcheck в среде Docker
Я новичок с консулом / регистратором и докером. Я запутался в использовании проверки здоровья Consul в среде Docker. Это описано по следующей ссылке в разделе Docker + Interval: https://www.consul.io/docs/agent/checks.html
Вот пример определения проверки здоровья Консул, описанного в ссылке:
{
"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 в среде докеров.
Заранее спасибо!
Aleks
1 ответ
Проверка работоспособности докера выполняется внутри контейнера докера.
Ваш пример эквивалентен docker exec f972c95ebf0e /bin/bash /usr/local/bin/check_mem.py
Рассмотрите возможность использования Goss для проверки работоспособности, он позволяет обслуживать конечную точку с результатами тестов, указанными в простом формате yaml.