-
Notifications
You must be signed in to change notification settings - Fork 9
"404 NR 0 0 0" on deploys/updates #244
Description
Is this a BUG or FEATURE REQUEST?:
Did you review https://istio.io/help/ and existing issues to identify if this is already solved or being worked on?:
Yes
Bug:
Y
What Version of Istio and Kubernetes are you using, where did you get Istio from, Installation details
istioctl 0.5.0
kubectl 1.9
Is Istio Auth enabled or not ?
Auth Disabled
What happened:
When performing a deploy and rolling pods we get internal traffic that is unable to be routed and get 404 NR from the pods we're trying to contact
What you expected to happen:
To be able to contact the pods as normal
We're running istio 1.5.0 on GKE and I've noticed with version 1.5.0 (though it could be config) that when I perform a rolling deploy that other services are able to contact the new pods but receive the istio-proxy on the new pod states that the request is a 404 with NR (which I assume is no response?). Restarting the client pod (the other service) seems to fix this, no changes were made to the new pods.
In the istio-proxy sidecar I see logs like the following.. even though that endpoint does exist, the service itself doesn't seem to be being called at, as no zipkin trace is generated and no metrics are increased for that response code. Which would make sense, as even with a 404 a error response would have be sent back.
Here's our config for the sidecar..
Container ID: docker://46fe80184e8f7751edd99473aefe212032fbf7015259cb7b853087239365fc4f
Image: docker.io/istio/proxy:0.5.0
Image ID: docker-pullable://istio/proxy@sha256:3a9fc8a72faec478a7eca222bbb2ceec688514c95cf06ac12ab6235958c6883c
Port: <none>
Args:
proxy
sidecar
--configPath
/etc/istio/proxy
--binaryPath
/usr/local/bin/envoy
--serviceCluster
graphql
--drainDuration
2s
--parentShutdownDuration
3s
--discoveryAddress
istio-pilot.istio-system:15003
--discoveryRefreshDelay
1s
--zipkinAddress
zipkin:9411
--connectTimeout
1s
--statsdUdpAddress
istio-mixer.istio-system:9125
--proxyAdminPort
15000
--controlPlaneAuthPolicy
NONE
And here's what we see in the logs...
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.755088Z info Version root@2e4a18076b04-docker.io/istio-0.5.1-30acfe6528107ea333543309095659b93364b30d-Clean
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.755231Z info Proxy role: model.Node{Type:"sidecar", IPAddress:"10.20.1.205", ID:"practices-7854f4cc99-gdmkp.default", Domain:"default.svc.cluster.local"}
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.755279Z info Attempting to lookup address: istio-mixer.istio-system
practices-7854f4cc99-gdmkp istio-proxy {
practices-7854f4cc99-gdmkp istio-proxy "listeners": [],
practices-7854f4cc99-gdmkp istio-proxy "lds": {
practices-7854f4cc99-gdmkp istio-proxy "cluster": "lds",
practices-7854f4cc99-gdmkp istio-proxy "refresh_delay_ms": 10000
practices-7854f4cc99-gdmkp istio-proxy },
practices-7854f4cc99-gdmkp istio-proxy "admin": {
practices-7854f4cc99-gdmkp istio-proxy "access_log_path": "/dev/stdout",
practices-7854f4cc99-gdmkp istio-proxy "address": "tcp://127.0.0.1:15000"
practices-7854f4cc99-gdmkp istio-proxy },
practices-7854f4cc99-gdmkp istio-proxy "cluster_manager": {
practices-7854f4cc99-gdmkp istio-proxy "clusters": [
practices-7854f4cc99-gdmkp istio-proxy {
practices-7854f4cc99-gdmkp istio-proxy "name": "rds",
practices-7854f4cc99-gdmkp istio-proxy "connect_timeout_ms": 1000,
practices-7854f4cc99-gdmkp istio-proxy "type": "strict_dns",
practices-7854f4cc99-gdmkp istio-proxy "lb_type": "round_robin",
practices-7854f4cc99-gdmkp istio-proxy "hosts": [
practices-7854f4cc99-gdmkp istio-proxy {
practices-7854f4cc99-gdmkp istio-proxy "url": "tcp://istio-pilot.istio-system:15003"
practices-7854f4cc99-gdmkp istio-proxy }
practices-7854f4cc99-gdmkp istio-proxy ]
practices-7854f4cc99-gdmkp istio-proxy },
practices-7854f4cc99-gdmkp istio-proxy {
practices-7854f4cc99-gdmkp istio-proxy "name": "lds",
practices-7854f4cc99-gdmkp istio-proxy "connect_timeout_ms": 1000,
practices-7854f4cc99-gdmkp istio-proxy "type": "strict_dns",
practices-7854f4cc99-gdmkp istio-proxy "lb_type": "round_robin",
practices-7854f4cc99-gdmkp istio-proxy "hosts": [
practices-7854f4cc99-gdmkp istio-proxy {
practices-7854f4cc99-gdmkp istio-proxy "url": "tcp://istio-pilot.istio-system:15003"
practices-7854f4cc99-gdmkp istio-proxy }
practices-7854f4cc99-gdmkp istio-proxy ]
practices-7854f4cc99-gdmkp istio-proxy },
practices-7854f4cc99-gdmkp istio-proxy {
practices-7854f4cc99-gdmkp istio-proxy "name": "zipkin",
practices-7854f4cc99-gdmkp istio-proxy "connect_timeout_ms": 1000,
practices-7854f4cc99-gdmkp istio-proxy "type": "strict_dns",
practices-7854f4cc99-gdmkp istio-proxy "lb_type": "round_robin",
practices-7854f4cc99-gdmkp istio-proxy "hosts": [
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.760802Z info Addr resolved to: 10.23.253.60:9125
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.760952Z info Finished lookup of address: istio-mixer.istio-system
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.761661Z info Effective config: binaryPath: /usr/local/bin/envoy
practices-7854f4cc99-gdmkp istio-proxy configPath: /etc/istio/proxy
practices-7854f4cc99-gdmkp istio-proxy connectTimeout: 1.000s
practices-7854f4cc99-gdmkp istio-proxy discoveryAddress: istio-pilot.istio-system:15003
practices-7854f4cc99-gdmkp istio-proxy discoveryRefreshDelay: 1.000s
practices-7854f4cc99-gdmkp istio-proxy drainDuration: 2.000s
practices-7854f4cc99-gdmkp istio-proxy parentShutdownDuration: 3.000s
practices-7854f4cc99-gdmkp istio-proxy proxyAdminPort: 15000
practices-7854f4cc99-gdmkp istio-proxy serviceCluster: practices
practices-7854f4cc99-gdmkp istio-proxy statsdUdpAddress: 10.23.253.60:9125
practices-7854f4cc99-gdmkp istio-proxy zipkinAddress: zipkin.default:9411
practices-7854f4cc99-gdmkp istio-proxy
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.761695Z info Monitored certs: []envoy.CertSource{}
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.761822Z info Starting proxy agent
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.761885Z info Received new config, resetting budget
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.761906Z info Reconciling configuration (budget 10)
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.761953Z info Epoch 0 starting
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.761999Z info writing configuration to /etc/istio/proxy/envoy-rev0.json
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.762266Z info Availability zone not set, proxy will default to not using zone aware routing. To manually override use the --availabilityZone flag.
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:08:49.762705Z info Envoy command: [-c /etc/istio/proxy/envoy-rev0.json --restart-epoch 0 --drain-time-s 2 --parent-shutdown-time-s 3 --service-cluster practices --service-node sidecar~10.20.1.205~practices-7854f4cc99-gdmkp.default~default.svc.cluster.local --max-obj-name-len 189 -l off]
practices-7854f4cc99-gdmkp istio-proxy {
practices-7854f4cc99-gdmkp istio-proxy "url": "tcp://zipkin.default:9411"
practices-7854f4cc99-gdmkp istio-proxy }
practices-7854f4cc99-gdmkp istio-proxy ]
practices-7854f4cc99-gdmkp istio-proxy }
practices-7854f4cc99-gdmkp istio-proxy ],
practices-7854f4cc99-gdmkp istio-proxy "sds": {
practices-7854f4cc99-gdmkp istio-proxy "cluster": {
practices-7854f4cc99-gdmkp istio-proxy "name": "sds",
practices-7854f4cc99-gdmkp istio-proxy "connect_timeout_ms": 1000,
practices-7854f4cc99-gdmkp istio-proxy "type": "strict_dns",
practices-7854f4cc99-gdmkp istio-proxy "lb_type": "round_robin",
practices-7854f4cc99-gdmkp istio-proxy "hosts": [
practices-7854f4cc99-gdmkp istio-proxy {
practices-7854f4cc99-gdmkp istio-proxy "url": "tcp://istio-pilot.istio-system:15003"
practices-7854f4cc99-gdmkp istio-proxy }
practices-7854f4cc99-gdmkp istio-proxy ]
practices-7854f4cc99-gdmkp istio-proxy },
practices-7854f4cc99-gdmkp istio-proxy "refresh_delay_ms": 10000
practices-7854f4cc99-gdmkp istio-proxy },
practices-7854f4cc99-gdmkp istio-proxy "cds": {
practices-7854f4cc99-gdmkp istio-proxy "cluster": {
practices-7854f4cc99-gdmkp istio-proxy "name": "cds",
practices-7854f4cc99-gdmkp istio-proxy "connect_timeout_ms": 1000,
practices-7854f4cc99-gdmkp istio-proxy "type": "strict_dns",
practices-7854f4cc99-gdmkp istio-proxy "lb_type": "round_robin",
practices-7854f4cc99-gdmkp istio-proxy "hosts": [
practices-7854f4cc99-gdmkp istio-proxy {
practices-7854f4cc99-gdmkp istio-proxy "url": "tcp://istio-pilot.istio-system:15003"
practices-7854f4cc99-gdmkp istio-proxy }
practices-7854f4cc99-gdmkp istio-proxy ]
practices-7854f4cc99-gdmkp istio-proxy },
practices-7854f4cc99-gdmkp istio-proxy "refresh_delay_ms": 10000
practices-7854f4cc99-gdmkp istio-proxy }
practices-7854f4cc99-gdmkp istio-proxy },
practices-7854f4cc99-gdmkp istio-proxy "statsd_udp_ip_address": "10.23.253.60:9125",
practices-7854f4cc99-gdmkp istio-proxy "tracing": {
practices-7854f4cc99-gdmkp istio-proxy "http": {
practices-7854f4cc99-gdmkp istio-proxy "driver": {
practices-7854f4cc99-gdmkp istio-proxy "type": "zipkin",
practices-7854f4cc99-gdmkp istio-proxy "config": {
practices-7854f4cc99-gdmkp istio-proxy "collector_cluster": "zipkin",
practices-7854f4cc99-gdmkp istio-proxy "collector_endpoint": "/api/v1/spans"
practices-7854f4cc99-gdmkp istio-proxy }
practices-7854f4cc99-gdmkp istio-proxy }
practices-7854f4cc99-gdmkp istio-proxy }
practices-7854f4cc99-gdmkp istio-proxy }
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:09:07.612Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-go/1.9.1" "097c9ddb-55d3-92a5-aa17-0d3a074c67e1" "practices:80" "-"
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:09:09.542Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-node/1.8.0 grpc-c/5.0.0 (linux; chttp2; generous)" "3289bb8c-90cb-9242-99ce-6deda7e1865e" "practices:80" "-"
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:09:10.838Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-go/1.9.1" "48480cc5-5a9e-95d7-8a0c-6c908b54e2de" "practices:80" "-"
practices-7854f4cc99-gdmkp istio-proxy }[libprotobuf INFO external/mixerclient_git/src/check_cache.cc:155] Add a new Referenced for check cache: Absence-keys: Exact-keys: context.protocol, destination.service,
practices-7854f4cc99-gdmkp istio-proxy 2018-03-19T12:09:19.766904Z info Proxy availability zone: europe-west2/europe-west2-a
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:09:25.475Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-go/1.9.1" "e220faa8-3906-949f-97dd-86e50eee5cfd" "practices:80" "-"
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:09:25.501Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-go/1.9.1" "37195340-e4ba-90e7-b950-bae919a8e817" "practices:80" "-"
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:09:38.345Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-go/1.9.1" "22c72547-1e88-9014-92dd-8d83fd3ba2ae" "practices:80" "-"
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:10:05.330Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-go/1.9.1" "99188805-9ff3-9e8e-897e-32123906b1d0" "practices:80" "-"
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:10:09.332Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-go/1.9.1" "cc86ef64-ad0b-9c72-9dae-c781121a9d8c" "practices:80" "-"
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:10:14.807Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-go/1.9.1" "2261ecb0-b6a4-9db6-8ad8-815a51e0ff8c" "practices:80" "-"
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:10:18.844Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-go/1.9.1" "e2235cc7-9903-93e7-945e-422757cbe4ac" "practices:80" "-"
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:10:22.444Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-go/1.9.1" "cd747200-bb49-9d27-86e3-8e8f81c8b37a" "practices:80" "-"
practices-7854f4cc99-gdmkp istio-proxy [2018-03-19T12:10:22.548Z] "POST /practices.Practices/Get HTTP/2" 404 NR 0 0 0 - "-" "grpc-go/1.9.1" "ea5186e4-5459-9c73-aeff-d6affb1a9690" "practices:80" "-"`
Unfortunately what happens is that our other apps start receiving a lot of NotFounds which is very hard to detect as a failure..
Restarting the pod (perhaps more than once) will eventually get it working back to normal without any config changes.
This may be related to #221