Можно ли настроить несколько VirtualService, которые совместно используют один и тот же хост в одном шлюзе? - PullRequest
0 голосов
/ 13 февраля 2019

Допустим, у меня есть VirtualService Foo, в котором есть правило для управления team.company.com/foo http-путем, и привязка его к шлюзу TeamGateway (в котором есть хост team.company.com).Затем введите другой VirtualService Bar для управления team.company.com/bar путем правила к определенному бэкэнду, привязав его к тому же шлюзу TeamGateway.Возможно ли это?

1 Ответ

0 голосов
/ 13 февраля 2019

Скорее всего, вы можете сделать это, сопоставив префикс uri и даже используя 1 VirtualService.

Шлюз должен выглядеть следующим образом:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: your-new-gateway
spec:
  selector:
    app: your-new-gateway-controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - team.company.com

После определения шлюза высоздать VirtualService , сопоставляя его с разными префиксами:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: vs-rule
spec:
  hosts:
  - team.company.com
  gateways:
  - your-new-gateway
  http:
  - match:
      uri:
        prefix: /foo/
    route:
    - destination:
        host: your_1.svc.cluster.local #Kubernetes underlying service name
  - match:
      uri:
        prefix: /bar/
    route:
    - destination:
        host: your_2.svc.cluster.local #Kubernetes underlying service name
...