healthcheck url指向自身时Docker swarm服务未启动
如果healthcheck url指向自身,healthcheck url指向自身时Docker swarm服务未启动,docker,traefik,Docker,Traefik,如果healthcheck url指向自身,traefik无法运行,会出现什么问题? 使用google it works,使用traefik域,这项服务甚至还没有启动 我遵循了下面的示例: 出现故障时,docker服务ls的输出显示0/1个副本。成功时(使用假谷歌url),显示1/1,仪表板可访问。 traefik的日志没有显示错误 ID NAME MODE REPLICAS
traefik
无法运行,会出现什么问题?
使用google it works,使用traefik域,这项服务甚至还没有启动
我遵循了下面的示例:
出现故障时,docker服务ls
的输出显示0/1个副本。成功时(使用假谷歌url),显示1/1,仪表板可访问。
traefik的日志没有显示错误
ID NAME MODE REPLICAS IMAGE PORTS
yghvyj2l7ri2 mystack-traefik_traefik replicated 0/1 traefik:v2.4.7 *:80->80/tcp, *:443->443/tcp
一般来说,必须对特定容器(或swarm术语中的任务)执行运行状况检查,而不涉及负载平衡器、联锁等其他对象,最好的方法是直接参考localhost/127.0.0.1 此外,还设计了一个所谓的“活跃度探测器”,它告诉容器在容器生命的早期阶段就“准备好”swarm或其他编曲 从这个意义上讲,更安全的做法是去掉所有不必要的“步骤”,例如尽可能避免使用TLS证书 综上所述,您可能会让您的健康检查工作如下:
test: wget --quiet --tries=1 --spider http://traefik.mydomain.com:8080/ping || exit 1
(例如,使用http代替https和http关联端口,即8080)。
更好的方法是参考localhost
test: wget --quiet --tries=1 --spider http://127.0.0.1:8080/ping || exit 1
更好的方法是使用已为此提供的
test: traefik healthcheck --ping
我的建议是使用最后一个
我补充说,大部分(如果不是全部的话)关于健康检查的考虑都是使用docker compose而不是swarm
test: traefik healthcheck --ping