为consul配置动态健康检查服务
Configure consul for dynamic health check services
我有一个包含 2 台主机的 consul 堆栈(用于测试)。 1 台主机只有 运行 consul 在 bootstrap 模式下,另一台主机 运行 客户端模式带有 Registrator 用于自动注册服务(运行 在 docker 上)。现在,如果我启动一个应用程序(例如端口 8080)容器,Registrator 将检测然后将其注册到 consul,但它没有我想要的 http-check。我发现 Registrator 有自动注册健康检查的选项是将 SERVICE_8080_CHECK_HTTP: '/'
添加到应用程序容器,它工作得很好。在这一点上我有一个问题,如果我 docker stop
应用程序容器,没有这个应用程序的健康检查所以我无法获得状态来写一些警告或替换失败的应用程序。那么问题来了,我如何才能获得动态健康检查服务但仍然获得状态 passing or failed or warning or critical
谢谢
Registrator 在您停止容器时注销服务。如果您有该服务的多个实例,那应该不是问题。
如果这毕竟是您的用例,请不要使用 Registrator 进行服务注册,您可以使用 Consul 的 HTTP API 来注册服务或包含代理的服务定义文件。
无论如何,你真的不应该 运行 一个单独的 Consul 服务器 - https://www.consul.io/intro/index.html
我有一个包含 2 台主机的 consul 堆栈(用于测试)。 1 台主机只有 运行 consul 在 bootstrap 模式下,另一台主机 运行 客户端模式带有 Registrator 用于自动注册服务(运行 在 docker 上)。现在,如果我启动一个应用程序(例如端口 8080)容器,Registrator 将检测然后将其注册到 consul,但它没有我想要的 http-check。我发现 Registrator 有自动注册健康检查的选项是将 SERVICE_8080_CHECK_HTTP: '/'
添加到应用程序容器,它工作得很好。在这一点上我有一个问题,如果我 docker stop
应用程序容器,没有这个应用程序的健康检查所以我无法获得状态来写一些警告或替换失败的应用程序。那么问题来了,我如何才能获得动态健康检查服务但仍然获得状态 passing or failed or warning or critical
谢谢
Registrator 在您停止容器时注销服务。如果您有该服务的多个实例,那应该不是问题。
如果这毕竟是您的用例,请不要使用 Registrator 进行服务注册,您可以使用 Consul 的 HTTP API 来注册服务或包含代理的服务定义文件。
无论如何,你真的不应该 运行 一个单独的 Consul 服务器 - https://www.consul.io/intro/index.html