Взвешивание сервисов в Traefik 2.2 с использованием нативных объектов Kubernetes Ingress - PullRequest
0 голосов
/ 06 августа 2020

Мы используем собственные объекты Kubernetes Ingress API вместе с поддерживаемыми Traefik 1.7 аннотациями для разделения трафика c между основным и канареечным развертыванием в нашем локальном кластере.

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

Эти значения обновляются постепенно, увеличивая вес канарейки во время развертывания новой версии образа. После того, как канареечное развертывание успешно выставляет трафик c с заранее определенным пределом взвешивания, мы обновляем образ основного развертывания и отменяем взвешивание.

Возможен ли этот рабочий процесс с помощью Traefik 2.2?

Мы запустили тестовую установку traefik 2.2 с использованием указанной аннотации Ingress Class, но мы не можем придумать способ выполнить взвешивание сервиса с использованием собственных Ingress-объектов. Является ли Weighted Round Robin (WRR) единственным способом получить аналогичный рабочий процесс с v2.2? WRR, похоже, требует перехода от объектов Ingress к собственным ресурсам IngressRoute Traefik.

Итак, вопрос:

Какой механизм мы должны использовать для взвешенного разделения сервисов для поддержки рабочего процесса канареечного развертывания с использованием Traefik 2.2 и собственные объекты Ingress?

1 Ответ

0 голосов
/ 12 августа 2020

Рассматривали ли вы возможность использования traefikservice CRD? Теперь это предлагается как предлагаемый способ балансировки нагрузки в traefik, запрошенный сообществом, чтобы иметь меньше аннотаций. устраняет озабоченность сообщества по поводу использования функций без множества аннотаций:

Однако, поскольку сообщество выразило необходимость извлекать выгоду из функций Traefik, не прибегая к (большому количеству) аннотаций, мы в итоге написали Пользовательское определение ресурса (в дальнейшем псевдоним CRD) для типа IngressRoute, определенного ниже, чтобы обеспечить лучший способ настройки доступа к кластеру Kubernetes.

Если вам нужно посмотрите на проблемы с github , похоже, они предложили это решение для решения проблем с взвешиванием в версии 1.7. Предлагаю открыть запрос на github, чтобы проверить возможность вашего запроса.

...