为什么 istio-ingressgateway 会暴露 31400 端口?

Why does istio-ingressgateway expose port 31400?

Istio 入口网关默认公开以下端口:

80:31380/TCP,443:31390/TCP,31400:31400/TCP

为什么暴露31400映射到31400?我在文档或其他地方找不到对此的解释。

背景: 我正在关注 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,给出以下入口网关服务定义:

# 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 提及:

Adding the 31400 port back because of testdata dependency

这是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.

commit 05cba4e

这只是默认安装选项。默认情况下,Istio 会打开上面列出的一组 NodePort,这样如果您使用的是 Minikube 等不支持 LoadBalancer 端口类型的环境,您可以使用这些端口访问入口网关。如果您在非 Minikube 环境中部署 Istio,则可以省略 NodePorts。