Я застрял в одной проблеме, и я надеюсь, что вы, ребята, сможете помочь мне разобраться в этой проблеме. У нас есть конечная точка 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