全局变量之后,接下来就是 Ingress 一节了,这个 Chart 只是个兼容选项,为 Istio 提供了传统 Kubernetes Ingress 的功能。ingress.enabled
变量用于在 requirements.yaml
中控制该 Chart 是否启用。
元数据文件,无需赘述。
该文件用于处理该模块的 HPA 对象。引用变量如下:
代码中我们看到,targetAverageUtilization
设置为固定值 80
。
这个模板用于为 Pod 生成 Service Account——istio-ingress-service-account
。
其中引用变量:
Kubernetes RBAC 系统使用,这是一个集群范围内生效的 ClusterRole,声明了 Ingress 中需要的两组权限,并最终和 Service Account 进行绑定:
其中引用变量:
_helpers.tpl
中,如果没有使用 nameOverride
进行覆盖的话,会使用 Chart 名称。这一模板用于生成 Deployment,主体部分和 Ingress Gateway 类似,使用的都是 istio/proxyv2
镜像,参数稍有区别:
proxy sidecar
proxy ingress
proxy router
其中引用变量:
_helpers.tpl
中,如果没有使用 nameOverride
进行覆盖的话,会使用 Chart 名称。istio: ingress
提供给 Gateway Selector 进行选择。PriorityClass
--statsdUdpAddress
参数。controlPlaneAuthPolicy
设置:# 如果启用
- --controlPlaneAuthPolicy
- MUTUAL_TLS
- --discoveryAddress
- istio-pilot:15005
# 如果没启用
- --controlPlaneAuthPolicy
- NONE
- --discoveryAddress
- istio-pilot:8080
另外这里还包含了对两个 secret 的可选加载:
这个模板用来为 Ingress 生成服务。
引用变量包括:
_helpers.tpl
中,如果没有使用 nameOverride
进行覆盖的话,会使用 Chart 名称。- port: 80
name: http
nodePort: 32000
- port: 443
name: https