我正在尝试为尚未属于Istio服务网格但仍位于同一k8s集群中的应用程序实现金丝雀风格的流量管理。例如:
名称空间Pod
中的 non-mesh
A调用名称空间Service
中的mesh
B,该名称空间绑定到服务网格内的容器。理想状态是何时根据相关VirtualService
对象中描述的规则分配这些Pod的流量。
Istio的本地设施可以做到这一点吗?
答案 0 :(得分:1)
在Istio中,一个VirtualService
对象在服务网格边车内插入一个Route规则。这些路由规则在客户端进行评估(在您的情况下,如果存在{@ 1}},则它是与Service A
关联的Sidecar)。因此,您无法在Service A
到Service B
之间执行流量管理(因为没有客户端Sidecar)。如果您不想为整个non-mesh
名称空间启用网格,一种解决此问题的方法是仅为Service A
插入边车。这将在边车中创建所有必要的规则,然后您可以使用流量权重来修改服务A和服务B之间的请求