istio failing with "failed checking application ports"

9/2/2019

Using istio 1.0.2 and kubernetes 1.12 on GKE.

When deploying a web application, the pod never reaches the healthy status.

My main pod spits out healthy logs.

However, my sidecar, i.e. the istio-proxy container reads:

* failed checking application ports. listeners="0.0.0.0:15090","10.8.48.10:53","10.8.63.194:15443","10.8.63.194:443","10.8.58.47:15011","10.8.54.249:42422","10.8.48.44:443","10.8.58.10:44134","10.8.54.34:443","10.8.63.194:15020","10.8.49.250:8080","10.8.63.194:31400","10.8.63.194:15029","10.8.63.194:15030","10.8.60.185:11211","10.8.49.0:53","10.8.61.194:443","10.8.48.1:443","10.8.48.180:80","10.8.51.133:443","10.8.63.194:15031","10.8.63.194:15032","0.0.0.0:9901","0.0.0.0:9090","0.0.0.0:80","0.0.0.0:3000","0.0.0.0:8060","0.0.0.0:15010","0.0.0.0:8080","0.0.0.0:20001","0.0.0.0:7979","0.0.0.0:9091","0.0.0.0:9411","0.0.0.0:15004","0.0.0.0:15014","0.0.0.0:3030","10.8.33.8:15020","0.0.0.0:15001"
* envoy missing listener for inbound application port: 5000

5000 is indeed the port my web app is listening on.

Any suggestions?

-- pkaramol
istio
kubernetes

2 Answers

9/2/2019

If there is a mismatch between deployment port and service port this can cause some issues in combination with the readiness of the sidecar.

Add the annotation readiness.status.sidecar.istio.io/applicationPorts in your deployment like this:

annotations:
    readiness.status.sidecar.istio.io/applicationPorts: "5000"

You can add multiple ports by using comma separation.

-- mkorbi
Source: StackOverflow

1/23/2020

@mkrobi I got this working as suggested in this post by adding the following-

readinessProbe:
  httpGet:
    path: /
    port: 8080
    scheme: HTTP

to the containers in my deployment. Make sure to change port 8080 to 5000.

-- KunalP
Source: StackOverflow