Устанавливаю Istio на GKE и запускаю приложение.
Хотя при доступе с помощью curl проблем нет, Ingressgateway возвращает код состояния, отличный от кода состояния прокси-сервера Pod, посредством некоторого запроса изображения при доступе из браузера. В частности, 200 и 302 и т. Д. Возвращаются как 500 или 504. Ресурсы, которые становятся 500 или 504, каждый раз различаются, но это 1 или 2 из примерно 100 запросов изображения. И если вы снова запросите еще один запрос 500 или 504, правильный ответ вернется без проблем.
Вы знаете, что вызывает такого рода причину?
Окружение такое.
GKE 1.10.11-gke.1
Istio 1.0.4
helm install install/kubernetes/helm/istio --name istio --namespace istio-system --set tracing.enabled=true --set kiali.enabled=true --set global.proxy.includeIPRanges="10.0.0.0/8"
Ниже представлен журнал, полученный из Stackdriver Logging.
Журнал Ingressgateway.
"[2019-01-22T09:16:17.048Z] \"GET /my/app/image.pngHTTP/2\" 504 UT 0 24 60001 - \"xxx.xxx.xxx.xxx\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36\" \"c0abe3be-1153-45c5-bd8e-067ab597feb4\" \"my.app.com\" \"10.128.0.116:80\" outbound|80|ga|myapp.default.svc.cluster.local - 10.128.0.16:443 xxx.xxx.xxx.xxx:62257\n"
Журнал istio-proxy модуля приложения.
"[2019-01-22T09:16:17.048Z] \"GET /my/spp/images.pngHTTP/1.1\" 200 - 0 3113 0 0 \"xxx.xxx.xxx.xxx\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36\" \"c0abe3be-1153-45c5-bd8e-067ab597feb4\" \"my.app.com\" \"127.0.0.1:80\" inbound|80||myapp.default.svc.cluster.local - 10.128.0.116:80 xxx.xxx.xxx.xxx:0\n"
журнал nginx.
{
"uri": "/my/app/image.png",
"host": "my.app.com",
"requestTime": "0.000",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"xForwardedProto": "https",
"user": "",
"protocol": "HTTP/1.1",
"bodyByteSize": "3113",
"method": "GET",
"remoteAddress": "127.0.0.1",
"upstreamResponseTime": "",
"request": "GET /my/app/images.png HTTP/1.1",
"referrer": "https://my.app.com/",
"status": "200",
"xForwardedFor": "xxx.xxx.xxx.xxx"
}
Глядя на этот журнал, я думаю, что Ingressgateway отбрасывает ответ от Pod.