Мы используем собственные объекты 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?