The Istio ingress gateway exposes the following ports by default:
80:31380/TCP,443:31390/TCP,31400:31400/TCP
Why does it expose 31400 and map it to 31400? I can't find an explanation of this in the docs or elsewhere.
Background: I'm following the Install with Helm via helm template
guide using Istio 0.8.0. The deployment manifest is built from https://github.com/istio/istio/tree/0.8.0/install/kubernetes/helm/istio, giving the following ingress gateway service definition:
# Source: istio/charts/ingressgateway/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
name: istio-ingressgateway
namespace: istio-system
labels:
chart: ingressgateway-0.8.0
release: istio
heritage: Tiller
istio: ingressgateway
spec:
type: NodePort
selector:
istio: ingressgateway
ports:
-
name: http
nodePort: 31380
port: 80
-
name: https
nodePort: 31390
port: 443
-
name: tcp
nodePort: 31400
port: 31400
Commit a4b6cc5 mentions:
Adding the 31400 port back because of testdata dependency
This is part of istio/istio
PR 6350
These changes add support for multiple ingress/egress gateway configuration in the Helm charts.
The new gateways field is an array that by default has one configuration (as it was before) but allows users to add more configurations to have multiple ingress/egress gateways deployed when installing the charts.
See commit 05cba4e.
This is just the default install option. By default, Istio opens the set of NodePorts you list above so that you can use those ports to access the ingress gateway if you are using an environment like Minikube, which does not support the LoadBalancer port type. If you are deploying Istio in a non-Minikube environment the NodePorts can be omitted.