我有一个带有2个主机的consul堆栈(用于测试)。 1个主机仅在引导模式下运行consul,另一个主机使用Registrator运行客户端模式以自动注册服务(均在docker上运行)。现在,如果我启动一个应用程序(例如端口8080)容器,Registrator将检测然后将其注册到consul,但它没有我想要的http检查。我发现Registrator有自动注册健康检查的选项是将SERVICE_8080_CHECK_HTTP: '/'
添加到应用程序容器,它工作得很好。此时我遇到了问题,如果我是docker stop
应用程序容器,则此应用程序没有运行状况检查,因此我无法获取状态来编写一些警报或替换失败的应用程序。所以问题是,我如何获得动态健康检查服务但仍然获得状态passing or failed or warning or critical
感谢
答案 0 :(得分:1)
当您停止容器时,Registrator会取消注册该服务。如果您有该服务的多个实例,那么它应该不是问题。
如果这是您的用例,不要使用Registrator进行服务注册,您可以使用Consul的HTTP API注册服务或包含代理的服务定义文件。
无论如何,你真的不应该运行一个Consul服务器 - https://www.consul.io/intro/index.html