我有两个服务在运行,它们通过 grpc 相互通信。
[ Service A ] ------ grpc -----> [ Service B ]
服务 B 通过 example.com
处的常规 k8s 入口公开,这就是服务 A 在看到请求时寻址 B 的方式。
我已经安装了 Istio 控制平面,并在服务 B 上启用了 sidecar 注入。
[ Service A ] ------ grpc -----> [ Istio / Envoy sidecar ]
|
|-> [ Service B ]
现在,我想在服务 B 的不同版本之间拆分流量。我已经部署了虚拟服务和目标规则,它们都使用 <service_name>.<namespace>
格式而不是入口端点({{ 1}}),因为后者会导致 Kiali 中出现“找不到服务”错误。不过,使用 example.com
格式似乎可行。
问题是,我在虚拟服务中包含的加权流量拆分规则似乎没有生效。我想知道我是否需要一个入口网关而不是一个常规的 k8s 入口来让它工作。如果没有,您还建议我查看什么来解决问题?
提前致谢。