通过kubernetes注释进行渗透健康检查

问题描述 投票:1回答:1

我希望通过Kubernetes注释设置Traefik后端运行状况检查,但看起来Kubernetes Ingress根据官方文档不支持该功能。

Traefik不支持Kubernetes Ingress的功能有什么特别的原因吗?我想知道因为Mesos支持后端的健康检查。

我知道在Kubernetes你可以配置pods的准备/活跃度探测,但我有领导者/追随者时尚服务,所以Traefik应该只将流量路由到领导者。

UPD:

  • 唯一的领导者可以接受Traefik的联系;追随者将拒绝连接。
  • 我脑子里有两个准备情况检查: 服务已启动并正在运行,并准备当选为领导者(kubernetes准备情况调查) 服务已启动并正在运行并作为领导者推广(traefik健康检查)
kubernetes traefik kubernetes-ingress
1个回答
1
投票

Traefik依靠Kubernetes提供底层豆荚健康状况的指示,以确定它们是否已准备好提供服务。 Kubernetes在pod中公开了两种机制,用于将信息传递给业务流程层:

  • 当活动中运行的进程转换为损坏状态时,活动检查以向Kubernetes提供指示。失败的活跃度检查将导致Kubernetes破坏pod并重新创建它。
  • 准备情况检查以确定容器何时准备好提供服务。失败的就绪检查将导致端点控制器从其提供的任何服务的端点列表中删除该窗格。但是,它将继续运行。

在这种情况下,您将通过准备情况检查向Traefik公开信息。配置您的pod准备检查,如果它们处于不应接收任何流量的状态,则会失败。准备就绪状态发生变化时,Kubernetes将针对将流量路由到pod以添加或删除pod的任何服务更新端点列表。因此,Traefik将更新其世界视图,以便从支持Ingress的端点列表中添加或删除该pod。

此模型没有理由与您的主/从架构不兼容,前提是每个吊舱都可以确定它是主机还是从机,并在准备检查中提供适当的指示。但是,如果没有特别小心,主/从状态更改和Kubernetes更新其端点之间将会有比赛,因为准备探测仅定期进行。我建议假设这将是用于拒绝非主要pod接收的请求的情况和内置逻辑。


作为提高稳健性的未来考虑因素,您可以将服务的入口层与实现主/从系统的业务逻辑分开,允许所有实例与Traefik进行通信,并将工作排入队列以供任何“主”节点考虑。点。

© www.soinside.com 2019 - 2024. All rights reserved.