Правила istio не работают от внешних звонков - PullRequest
0 голосов
/ 31 марта 2020

Я хочу, чтобы все входящие трафики c для указанной службы c обслуживались версией 8 этой службы.

Служба доступна извне со следующим хостом:

my. ciro.it

Если я позвоню my.ciro.it, я увижу, что правила работают нормально. Всегда отвечает 8 версией. Если я вызываю my.ciro.it из другой службы (my2.ciro.it), правила не работают, и служба реагирует альтернативно с версией 8 или 9.

Это мои виртуальные правила службы и назначения:

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: ciro-service2-destination-rules
spec:
  host: ciro-service2.myns.svc.cluster.local
  subsets:
  - labels:
      version: v8
    name: v8
  - labels:
      version: v9
    name: v9
  trafficPolicy:
    tls:
      mode: DISABLE
---

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: ciro-service2-virtual-service
spec:
  hosts:
  - my.ciro.it
  gateways:
  - ciro-service2-gateway
  http:
  - match:
    - uri:
        prefix: /
    route:
    - destination:
        host: ciro-service2.myns.svc.cluster.local
        subset: v8
        port:
          number: 8082
      weight: 100
    - destination:
        host: ciro-service2.myns.svc.cluster.local
        subset: v9
        port:
          number: 8082
      weight: 0  

добавить шлюз

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: ciro-service2-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "my.ciro.it"
---  

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Решение очень простое.

gateways:
- ciro-service2-gateway
- mesh

Добавьте меня sh шлюз, правила также применяются к внутренним вызовам.

0 голосов
/ 01 апреля 2020

Хостами в ваших файлах yaml является my.ciro.it. Который не совпадает с my2.ciro.it. Если вы планируете использовать эти правила на обоих хостах субдоменов. Вы можете использовать подстановочные хосты:

...
spec:
  hosts:
  - *.ciro.it
...

В противном случае вы должны иметь:

...
spec:
  hosts:
  - my2.ciro.it
...
...