目前正在运行1.6.13 Rancher Setup(Cattle Orchestrator)并尝试使用Traefik 1.5.4来支持金丝雀部署的概念(又称蓝色/绿色a / b测试) .

我们将Rancher Metadata方法与Rancher Traefik后端一起使用,并尝试了两种不同的方案:

场景1 - 部署两个单一服务堆栈,Stack-A和Stack-B,它们是我们想要进行金丝雀测试的两个不同版本的应用程序 .

我们分配适当的标签以启用traefik中的服务并设置它们的权重,它们每个最终都有自己的后端指向同一个前端(例如canary.somecompany.com)

在这种情况下,尽管Stack-A上的权重为10,Stack-B上的权重为1,但请求似乎在两个堆栈中均匀地50/50路由 . 我们怀疑这是由于权重仅在后端本身而非全局应用 .

情景2 -

https://github.com/containous/traefik/issues/1164获取页面,我们尝试覆盖Stack-A和Stack-B以具有相同的traefik.backend标签但具有不同的权重(Stack-A仍为10,Stack-B为1) .

但是,看起来Rancher后端必须与提到的马拉松后端不同,因为一个堆栈似乎覆盖了另一个,我们只看到其中一个堆栈的 endpoints 出现 . 例如 . 每个堆栈有3个服务实例,我们应该在后端看到6个 endpoints ,但我们只看到3个且只有相同的权重 . 有时它的Stack-A,有时候是Stack-B .

我们可以使用支持(甚至功能)配置来完成此用例吗?

干杯 .