如何将所有流量路由到 Istio 中的服务?

如何将所有流量路由到 Istio 中的服务?

我有一个包含以下内容的虚拟服务 yaml 文件。

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: nodeserver
spec:
  hosts:
  - "*"
  gateways:
  - node-gateway
  http:
  - match:
    - uri:
        exact: /
    - uri:
        exact: /sample1
    - uri:
        exact: /sample2
    route:
    - destination:
        host: node-service
        port:
          number: 8080

这里,除了/sample1/sample2两个 URL 匹配之外,我是否可以指定*默认将所有流量路由到节点服务之类的内容?此外,如果网页中有超链接,Istio 会默认重定向它们还是需要为此添加任何自定义配置?

答案1

您可以使用regexexact不是HTTP匹配请求.
这样您就可以用 ECMAscript 样式的正则表达式捕获所有内容。

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: nodeserver
spec:
  hosts:
  - "*"
  gateways:
  - node-gateway
  http:
  - match:
    - uri:
        regex: '.+'
    route:
    - destination:
        host: node-service
        port:
          number: 8080

答案2

使用前缀:''

这对我有用:

  http:
  - match:
      - uri:
          prefix: ''

相关内容