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

nzk*_*ith 6 kubernetes istio

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

80:31380/TCP,443:31390/TCP,31400:31400/TCP
Run Code Online (Sandbox Code Playgroud)

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

背景:我正在遵循使用Istio 0.8.0的“ 通过头盔进行安装”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
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 6

提交 a4b6cc5提到:

由于 testdata 依赖,重新添加 31400 端口

这是PR 6350 的一部分istio/istio

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

请参阅提交 05cba4e


小智 5

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