我为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,就会出现此问题。
任何人以前都遇到过这样的问题。感谢您的提前帮助
答案 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%