我希望通过Kubernetes注释设置Traefik后端运行状况检查,但看起来Kubernetes Ingress根据官方文档不支持该功能。
Traefik不支持Kubernetes Ingress的功能有什么特别的原因吗?我想知道因为Mesos支持后端的健康检查。
我知道在Kubernetes你可以配置pods的准备/活跃度探测,但我有领导者/追随者时尚服务,所以Traefik应该只将流量路由到领导者。
UPD:
Traefik依靠Kubernetes提供底层豆荚健康状况的指示,以确定它们是否已准备好提供服务。 Kubernetes在pod中公开了两种机制,用于将信息传递给业务流程层:
在这种情况下,您将通过准备情况检查向Traefik公开信息。配置您的pod准备检查,如果它们处于不应接收任何流量的状态,则会失败。准备就绪状态发生变化时,Kubernetes将针对将流量路由到pod以添加或删除pod的任何服务更新端点列表。因此,Traefik将更新其世界视图,以便从支持Ingress的端点列表中添加或删除该pod。
此模型没有理由与您的主/从架构不兼容,前提是每个吊舱都可以确定它是主机还是从机,并在准备检查中提供适当的指示。但是,如果没有特别小心,主/从状态更改和Kubernetes更新其端点之间将会有比赛,因为准备探测仅定期进行。我建议假设这将是用于拒绝非主要pod接收的请求的情况和内置逻辑。
作为提高稳健性的未来考虑因素,您可以将服务的入口层与实现主/从系统的业务逻辑分开,允许所有实例与Traefik进行通信,并将工作排入队列以供任何“主”节点考虑。点。