Traefik负载平衡权重未按预期运行

时间:2019-06-07 00:57:11

标签: kubernetes load-balancing traefik

我为traefik配置了以下入口,但traefik会将全部流量发送到app-blue-release。理想情况下,它应该只将30%的流量发送到蓝色,将70%的流量发送到绿色,但是它没有按预期工作。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    traefik.frontend.entryPoints: http
    traefik.ingress.kubernetes.io/service-weights: |-
      app-green-release: 70.0
      app-blue-release: 30.0
  creationTimestamp: 2019-06-04T06:00:37Z
  generation: 2
  labels:
    app: traefik-app
  name: traefik-app
  namespace: mynamespace
  resourceVersion: "645536328"
  selfLink: /apis/extensions/v1beta1/namespaces/mynamespace/ingresses/traefik-app
  uid: 4637377-747b-11e9-92ea-005056aeabf7
spec:
  rules:
  - host: mycompany2.com
    http:
      paths:
      - backend:
          serviceName: app-release
          servicePort: 8080
  - host: mycompany.com
    http:
      paths:
      - backend:
          serviceName: app-ui-release
          servicePort: 80
        path: /widget
      - backend:
          serviceName: app-green-release
          servicePort: 8080
        path: /
      - backend:
          serviceName: app-blue-release
          servicePort: 8080
        path: /
status:
  loadBalancer: {}

我正在使用以下流量版本。 traefik:v1.7.11-alpine

之前,当配重配置为10(蓝色)和90(绿色)时,它就可以正常工作。但是一旦我们分别更改为30和70,就会出现此问题。

任何人以前都遇到过这样的问题。感谢您的提前帮助

1 个答案:

答案 0 :(得分:2)

随后是traefik issue 4494(而不是您自己的issue 4940

  

在忽略注释之前,已在v1.7中添加了注释ingress.kubernetes.io/service-weights

不过,as of June 11th, 2019的达米安·杜波特(Damien Duportal)(Træfik的开发者倡导者)补充说:

  

目前没有已知的解决方法。
  我们正在努力,但是由于Traefik的2.0版目前正在开发中,我们必须等待:)


这来自PR 3112

  

提供一个新的入口注释ingress.kubernetes.io/backend-weights,它指定一个YAML编码的,基于百分比的权重分布。有了这个注释,我们可以通过动态调整入口后端的权重来进行金丝雀释放。

(最初称为ingress.kubernetes.io/percentage-weights,然后在commit 11f6079中重命名为ingress.kubernetes.io/service-weights

问题仍然悬而未决。
首先尝试升级到v1.7.12-alpine,以确保问题仍然存在。

The example提到:

service_backend1: 1% # Note that the field names must match service names referenced in the Ingress object.
service_backend2: 33.33%
service_backend3: 33.33% # Same as 33.33%, the percentage sign is optional

因此,请尝试以下操作:

  app-green-release: 70%
  app-blue-release: 30%