请教 istio 流量治理

55 天前
 fitme

我正在测试 istio 的流量治理,部署了 A/B 服务到 k8s 并注册到 nacos ,给服务 B 设置了熔断器最大请求数为 1 。 做了如下验证

A 是 order-service B 是 user-service

  1. A 服务使用 nacos 返回的实例 IP 调用 B 服务,通过观察,发现熔断器没有工作
kubectl -n test exec "$FORTIO_POD" -c fortio -- /usr/bin/fortio load -c 3 -qps 0 -n 10 -loglevel Warning http://order-service:8082/orders/1


kubectl -n test exec "$ORDER_POD" -c istio-proxy pilot-agent request GET stats|grep 'user-service'|grep pending 

cluster.outbound|8081||user-service.dd-test.svc.cluster.local;.circuit_breakers.default.remaining_pending: 1
cluster.outbound|8081||user-service.dd-test.svc.cluster.local;.circuit_breakers.default.rq_pending_open: 0
cluster.outbound|8081||user-service.dd-test.svc.cluster.local;.circuit_breakers.high.rq_pending_open: 0

  1. A 服务使用服务名调用 B 服务,通过观察
cluster.outbound|8081||user-service.dd-test.svc.cluster.local;.circuit_breakers.default.remaining_pending: 1
cluster.outbound|8081||user-service.dd-test.svc.cluster.local;.circuit_breakers.default.rq_pending_open: 0
cluster.outbound|8081||user-service.dd-test.svc.cluster.local;.circuit_breakers.high.rq_pending_open: 0
cluster.outbound|8081||user-service.dd-test.svc.cluster.local;.upstream_rq_pending_active: 0
cluster.outbound|8081||user-service.dd-test.svc.cluster.local;.upstream_rq_pending_failure_eject: 0
cluster.outbound|8081||user-service.dd-test.svc.cluster.local;.upstream_rq_pending_overflow: 4
cluster.outbound|8081||user-service.dd-test.svc.cluster.local;.upstream_rq_pending_total: 6

通过上述验证,我感觉是需要通过服务名(ClusterIP 也可以)调用的,可能测试或者观察的过程有问题,所以想到 v2 请教一下各位大佬

问题

  1. istio 是必须要通过服务名调用才能实现治理吗?
  2. 如果通过服务名调用是不是现有微服务都需要改造,因为都是通过 nacos 获取实例 IP
1680 次点击
所在节点    程序员
7 条回复
ponder09
55 天前
没做过,但按我的理解,服务器是不是可以不用 nacos 了,服务之间通过 service-name 直接访问了。
fitme
55 天前
@wangxin3 新项目应该会这么干,现在想在之前基础上做流量治理,不改动或尽量少
ganbuliao
55 天前
是的因为 istio 相当于是代理 直接请求 pod 的 IP 就相当于绕过了 istio
stormtrooperx5
55 天前
你走 clusterIP 不就绕过 istio 了吗
fitme
55 天前
@stormtrooperx5 clusterIP 看起来不会绕过,podIP 就绕过了(主要是我们之前服务注册到 nacos 了,获取的实例 IP(也就是 podIP )调用的,所以我在测试看能否不改动现有的实现治理
fitme
55 天前
@ganbuliao 恩,谢谢
baerwang
54 天前
nacos sdk 应该有兼容 k8s 的处理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1153760

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX