Маршрутизация на основе портов в Istio со службой GRPC на GKE не работает

#grpc #google-kubernetes-engine #istio

#grpc #google-kubernetes-engine #istio

Вопрос:

Мы запускаем службы GRPC в движке Google Kubernetes с Istio. Мы выполнили следующую настройку для маршрутизации запросов, которая не работает.

Мы получаем следующую ошибку при вызове GRPC к сервису: ошибка подключения к восходящему потоку или отключение / сброс перед заголовками

Пожалуйста, дайте мне знать, если чего-то не хватает или есть обходной путь.

 apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: helloworld-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 50051
      name: grpc
      protocol: GRPC
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: helloworld
spec:
  hosts:
  - "*"
  gateways:
  - helloworld-gateway
  http:
  - match:
    - port: 50051
    route:
    - destination:
        host: helloworld
        port:
          number: 50051  

Комментарии:

1. Запущено ли ваше приложение HelloWorld с помощью istio-proxy sidecar? Это означает, что вы запускали istioctl kube-inject при развертывании приложения или пространство имен помечено как istio-injection = включено? Кроме того, вы знаете, включен ли глобальный MTLS? Может быть, просто шлюз пытается установить соединение mTLS, в то время как приложение helloworld ожидает только незащищенных подключений.

2. Привет, Роберт, спасибо за ответ. Вот мои комментарии: 1. Да, у нас включено пространство имен по умолчанию для istio-injection = включено (поэтому sidecar попадает туда автоматически) 2. Да, у нас включены глобальные MTLS, я все еще ищу решение. Пожалуйста, помогите.

3. Вероятно, отсутствует DestinationRule. Вы пытались настроить DR? istio.io/docs/reference/config/networking/v1alpha3 /…