Балансировочный груз Traefik не работает, как ожидалось - PullRequest
2 голосов
/ 07 июня 2019

Я настроил следующий вход для 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 Ответ

2 голосов
/ 09 июня 2019

За этим, похоже, следует выпуск traefik 4494 (вместо вашего выпуска 4940 )

аннотация ingress.kubernetes.io/service-weights была добавлена ​​в v1.7 до того, как аннотация была проигнорирована.

Однако, по состоянию на 11 июня 2019 года , Дэмиен Дюпортал (адвокат разработчика Træfik) добавляет:

На данный момент неизвестного обходного пути.
Мы работаем над этим, но поскольку версия 2.0 Traefik в настоящее время работает, нам придется подождать:)


Это происходит от PR 3112

Предоставляет новую входную аннотацию ingress.kubernetes.io/backend-weights, которая задает YAML-кодированное распределение веса в процентах. С помощью этой аннотации мы можем сделать канарейку, динамически регулируя вес входных бэкэндов.

(вызывается изначально ingress.kubernetes.io/percentage-weights перед переименованием ingress.kubernetes.io/service-weights в commit 11f6079 )

Проблема еще не решена.
Попробуйте сначала обновить до v1.7.12-alpine , чтобы убедиться, что проблема не устранена.

В примере упоминается:

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%
...