我正在尝试在bookinfo示例中注入HTTP status 500错误。
当流量来自网关时,我设法注入了500个错误状态:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo
namespace: default
spec:
gateways:
- bookinfo-gateway
hosts:
- '*'
http:
- fault:
abort:
httpStatus: 500
percent: 100
match:
- uri:
prefix: /api/v1/products
route:
- destination:
host: productpage
port:
number: 9080
示例:
$ curl $(minikube ip):30890/api/v1/products
fault filter abort
但是,对于来自其他Pod的流量,我无法实现这一目标:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo
namespace: default
spec:
gateways:
- mesh
hosts:
- productpage
http:
- fault:
abort:
httpStatus: 500
percent: 100
match:
- uri:
prefix: /api/v1/products
route:
- destination:
host: productpage
port:
number: 9080
示例:
# jump into a random pod
$ kubectl exec -ti details-v1-dasa231 -- bash
root@details $ curl productpage:9080/api/v1/products
[{"descriptionHtml": ... <- actual product list, I expect a http 500
productpage.svc.default.cluster.local
,但行为相同。我已与istioctl proxy-status
检查了代理状态,一切都已同步。
我测试了是否将istio-proxy注入豆荚中,它是:
豆荚:
NAME READY STATUS RESTARTS AGE
details-v1-6764bbc7f7-bm9zq 2/2 Running 0 4h
productpage-v1-54b8b9f55-72hfb 2/2 Running 0 4h
ratings-v1-7bc85949-cfpj2 2/2 Running 0 4h
reviews-v1-fdbf674bb-5sk5x 2/2 Running 0 4h
reviews-v2-5bdc5877d6-cb86k 2/2 Running 0 4h
reviews-v3-dd846cc78-lzb5t 2/2 Running 0 4h
我完全被卡住了,不确定接下来要检查什么。我觉得我缺少一些非常明显的东西。
我非常感谢您对此主题提供任何帮助。
答案 0 :(得分:1)
我的问题的根本原因是我的minicloud集群中的includeIPRanges设置不正确。我设置了10.0.0.1/24 CIDR,但是某些服务正在监听10.35.x.x。
答案 1 :(得分:0)
这应该可行,并且在我尝试时也可以。我的猜测是您为productpage服务定义了其他冲突的路由规则。