Istio虚拟服务未应用超时

问题描述 投票:0回答:1

我想使用Istio的故障注入机制。

我的任务是在服务上添加5秒的超时。所以为了达到这个目的,我创建了自己的虚拟服务:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: hello
  namespace: default
spec:
  hosts:
  - hello-service.default.svc.cluster.local
  http:
  - fault:
      delay:
        percent: 100   #Applies on all request
        fixedDelay: 5s #Timeout of 5 sec
    route:
    - destination:
        host: hello-service.default.svc.cluster.local

如您所见,我只重定向了hello服务并应用了5秒超时。不幸的是,超时根本不起作用......


这是documentation的例子:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: ratings
spec:
  hosts:
  - ratings
  http:
  - fault:
      delay:
        percent: 100
        fixedDelay: 2s
    route:
    - destination:
        host: ratings
        subset: v1

我究竟做错了什么 ? 谢谢你的帮助


更新1 - 添加目标服务

apiVersion: v1
kind: Service
metadata:
  name: hello-service
  namespace: default
spec:
  selector:
    app: hello
  ports:
  - port: 80
    targetPort: 9080

更新2 - 添加proxy-config的输出

$istioctl proxy-config route hello-75c874b67f-6l4p9
NOTE: This output only contains routes loaded via RDS.
NAME      VIRTUAL HOSTS
80        6
3000      4
8060      1
8080      2
8088      1
9090      1
9091      2
9093      5
9411      1
15004     2
15010     1
15030     1
15031     1
20001     1
          1
kubernetes istio
1个回答
0
投票

添加此答案可以深入了解问题的状态。

@Sergii Bishyr的帮助下,我现在知道我的问题中提供的virtualService正在运行。

我用2个简单的应用程序测试它,从第一个到第二个应用程序。在这种情况下,应用超时!

不幸的是,我使用虚拟服务的原始应用程序仍然无法正常工作。

测试应用程序和原始测试应用程序都是Web服务器,所以我不确定为什么在一个案例中它的工作而不是在第二个...这个谜尚未解决。

© www.soinside.com 2019 - 2024. All rights reserved.