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

时间:2018-07-17 20:58:35

标签: kubernetes istio

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

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

为什么会公开31400并将其映射到31400?我在文档或其他地方找不到对此的解释。

背景:我正在使用Istio 0.8.0遵循Install with Helm via helm template指南。部署清单是根据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

2 个答案:

答案 0 :(得分:4)

Commit a4b6cc5提到:

  

由于testdata依赖性而重新添加了31400端口

这是istio/istio PR 6350

的一部分
  

这些更改增加了对Helm图表中多个入口/出口网关配置的支持。
  新网关字段是一个数组,默认情况下具有一个配置(与以前一样),但允许用户添加更多配置以在安装图表时部署多个入口/出口网关。

请参见commit 05cba4e

答案 1 :(得分:3)

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