首页 > 解决方案 > Kubernetes 集群内的 Canary 流量管理

问题描述

我正在尝试为尚不属于 Istio 服务网格但仍在同一个 k8s 集群中的应用程序实现金丝雀式的流量管理。例如:

Pod命名空间中的 Anon-mesh调用命名空间中的ServiceB,命名空间mesh绑定到服务网格内的 Pod。理想的状态是当这些 pod 的流量按照相关VirtualService对象中描述的规则进行分配时。

这可以通过 Istio 的原生设施实现吗?

标签: kubernetesistio

解决方案


在 Istio 中,VirtualServiceObjects 在服务网格边车中插入了一个 Route 规则。这些路由规则在客户端进行评估(在您的情况下,Service A如果存在与它相关的边车,则该边车将是与之关联的边车)。因此,您无法在Service Ato之间执行流量管理Service B(因为没有客户端 sidecar)。如果您不想为整个non-mesh命名空间启用网格,解决此问题的一种可能方法是只为Service A. 这将在 sidecar 中创建所有必要的规则,然后您可以使用流量权重来修改服务 A 和服务 B 之间的请求


推荐阅读