Istio: Изменения размера ответных байтов между входом istio и вышестоящим сервисом - PullRequest
0 голосов
/ 08 октября 2019

Я застрял в одной проблеме, и я надеюсь, что вы, ребята, сможете помочь мне разобраться в этой проблеме. У нас есть конечная точка API, которая возвращает PDF как поток чтения, и мы наблюдали, что размер байта ответа иногда изменяется между входом istio и входящим сервисом. Это вызывает проблему загрузки PDF. Иногда это происходит только для одной и той же конечной точки API. Вот пример.

Это журналы от istio-proxy в istio ingress Журналы от istio ingress

Это журналы от istio-proxy в восходящем сервисном модуле введите описание изображения здесь

Как видите, входной сигнал istio proxy получает различный размер ответа (15366876 байт и 14686786 байт), даже несмотря на то, что восходящая служба получает такой же размер ответа (15366876 байт)

Вот моя конфигурация шлюза и конфигурация виртуального сервиса и сервиса назначения.

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: mygateway
spec:
  selector:
    istio: ingressgateway # use istio default ingress gateway
  servers:
  - port:
      number: 80
      name: http2
      protocol: HTTP2
    hosts:
    - app.test.com
    tls:
      httpsRedirect: true
  - port:
      number: 443
      name: https
      protocol: HTTPS
    tls:
      mode: SIMPLE
      serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
      privateKey: /etc/istio/ingressgateway-certs/tls.key
    hosts:
    - app.test.com
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: test
spec:
  hosts:
  - app.test.com
  gateways:
  - mygateway
  http:
  - route:
    - destination:
        port:
          number: 80
        host: test.default.svc.cluster.local
    websocketUpgrade: true
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
 name: test
spec:
 host: test.default.svc.cluster.local
 trafficPolicy:
   loadBalancer:
     consistentHash:
       useSourceIp: true

Мы используем istio 1.2.4 в Google Kubernetes Engine

...