使用本机Kubernetes Ingress对象的Traefik 2.2服务加权



我们使用本地Kubernetes Ingress API对象以及Traefik 1.7支持的注释来在本地集群中的主部署和金丝雀部署之间分配流量。

traefik.ingress.kubernetes.io/service-weights: |-
our-service: 100%
our-canary-service: 0%

在部署新的映像版本期间,这些值会逐渐更新,从而增加金丝雀的权重。一旦金丝雀部署成功地以预定义的权重限制部署流量,我们就会更新主部署的图像并恢复权重。

使用Traefik 2.2是否可以实现此工作流

我们已经使用指定的Ingress Class注释运行了测试traefik 2.2安装,但我们无法找到使用本机Ingress对象进行服务加权的方法。加权循环(WRR(是获得v2.2类似工作流的唯一方法吗?WRR似乎需要从Ingress对象转换到Traefik自己的IngressRoute资源。

所以问题是:

我们应该采用什么机制来进行加权服务拆分,以支持使用Traefik 2.2和本机Ingress对象的canary部署工作流?

您是否考虑过使用traefikservice CRD?现在,这是社区要求的在traefik中进行负载平衡的建议方法,目的是减少注释。

似乎在2.1版本中,他们引入了使用traefikservice CRD的服务加权,以解决社区关注的问题,从而在没有太多注释的情况下使用这些功能:

然而,由于社区表示需要从Traefik中受益在没有使用(大量(注释的情况下,我们最终编写自定义资源释义(下文中别名CRD(,用于下文定义的入口路由类型,以便提供一种更好的方式来配置对Kubernetes的访问簇

如果你想看看这个github问题,他们似乎建议这个解决方案来解决1.7版中的权重问题。我建议在github上打开一个请求,以检查您请求的可能性。

最新更新