Kubernetes Traefik负载平衡重量未按预期工作

Kubernetes Traefik负载平衡重量未按预期工作,kubernetes,load-balancing,traefik,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-w

我已经为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-1

早些时候,当重量配置为10(蓝色)和90(绿色)时,它工作正常。但一旦我们分别改为30和70,这个问题就发生了


任何人都曾面临过这样的问题。提前感谢您的帮助,后面似乎是(而不是您自己的)

注释
ingres.kubernetes.io/service weights
在忽略注释之前已添加

然而,Damien Duportal(Træfik的开发者拥护者)补充道:

目前尚无已知的解决方法。
我们正在进行此项工作,但由于Traefik的2.0版目前正在进行,我们必须等待:)


这来自

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

(最初调用
ingres.kubernetes.io/百分比权重
,然后在中重命名
ingres.kubernetes.io/服务权重

该问题仍悬而未决。
请首先尝试升级到,以检查问题是否仍然存在

提到:

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%

感谢您的评论,但是您提供的提交已经在1.7分支中。此问题间歇性出现,但这使traefik在生产操作中“不太可靠”。@nagendra547我知道此提交已在1.7分支中:其目的是说明此功能从哪个提交提交。@nagendra547但正如我在回答中所说,这个问题仍然悬而未决:如果我看到任何进展,我会监控它并在这里报告。是的。谢谢你的回复。我还报告了traefik github中的此问题。我想你已经回答了这个问题。@nagendra547如果你看到我回答的第一行,我确实提到了第4940号问题。