我是Consul / Registrator和Docker的新手。我对在Docker环境中使用Consul运行状况检查感到困惑。在Docker + Interval部分的以下链接中对此进行了描述:https://www.consul.io/docs/agent/checks.html
以下是链接中描述的Consul健康检查定义的示例:
{
"check": {
"id": "mem-util",
"name": "Memory utilization",
"docker_container_id": "f972c95ebf0e",
"shell": "/bin/bash",
"args": ["/usr/local/bin/check_mem.py"],
"interval": "10s"
}
}
运行状况检查脚本是在Docker映像内还是在其外部(在示例中:check_mem.py)?我们是否应该知道容器的ID并手动在字段docker_container_id中插入? (这不是非常有效的方法)
我一直在搜索,唯一找到的答案是在以下讨论的结尾: https://github.com/hashicorp/consul/issues/3182
但是此代码是一些“解决方法”-它使用docker'primal'运行状况检查和注册器变量-ENV SERVICE_CHECK_SCRIPT。它不使用领事健康检查脚本。
有人可以帮助我了解领事健康检查在docker环境中如何工作。
提前谢谢!
Aleks
答案 0 :(得分:0)
docker运行状况检查在docker容器中运行。
您的示例等效于docker exec f972c95ebf0e /bin/bash /usr/local/bin/check_mem.py
答案 1 :(得分:0)
考虑使用Goss进行健康验证,它允许您将端点以简单yaml格式指定的测试结果提供服务。