如何在 Openshift 中使用金丝雀服务?

How to canary Services in Openshift?

我正在尝试在 Openshift 中对服务进行金丝雀发布。我了解并知道如何在 service 注册到 route 后对其进行金丝雀发布。但在某些情况下,我们通常最终不会用 route 注册每个服务。是否可以选择在没有路由的情况下在 OpenShift 中使用金丝雀服务?有人成功过吗?

P.S:我正在寻找 Istio 提供的金丝雀发布功能,但不幸的是我现在无法使用它。

基本上有两种主要方法可以实现无路由金丝雀。

首先是在同一服务后面简单地添加新的 pods。由于服务本质上是循环负载均衡器,pods 的数量定义了在旧部署或金丝雀部署上借出多少请求的比率。

第二种方式是部署一些反向代理,比如haproxy或nginx,并用它来分流,这类似于使用istio,在你的集群中引入新的SW组件来实现目标。