Я пытаюсь внедрить ошибку HTTP status 500 в примере bookinfo.
Мне удалось ввести статус ошибки 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
Но мне не удается этого добиться для трафика, поступающего с других модулей:
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
Я полностью застрял и не уверен, что проверить дальше. Я чувствую, что упускаю что-то очень очевидное.
Буду очень признателен за любую помощь по этой теме.