Внедрение 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.

Другие вопросы по тегам