Skip to main content

Command Palette

Search for a command to run...

Istio Helm Chart 详解 - Ingress

Published
2 min readView as Markdown

这是《Istio Helm Chart 详解》系列的第三篇。开始逐个 Chart 进行阅读。

前言

全局变量之后,接下来就是 Ingress 一节了,这个 Chart 只是个兼容选项,为 Istio 提供了传统 Kubernetes Ingress 的功能。ingress.enabled 变量用于在 requirements.yaml 中控制该 Chart 是否启用。

Chart.yaml

元数据文件,无需赘述。

autoscale.yaml

该文件用于处理该模块的 HPA 对象。引用变量如下:

  • ingress.autoscaleMin:水平伸缩的 Pod 数量下限,另外该变量被赋值的情况下才会渲染 HPA 对象。
  • ingress.autoscaleMax:水平伸缩的 Pod 数量上限。
  • Release.Namespace:HPA 对象所在的命名空间,使用 Istio 同一值。Release 是 Helm 的保留字,用于标识该 Release 所在的命名空间。

代码中我们看到,targetAverageUtilization 设置为固定值 80

serviceaccount.yaml

这个模板用于为 Pod 生成 Service Account——istio-ingress-service-account

其中引用变量:

  • global.imagePullSecrets:全局变量定义的数组,提供给 Service Account,在拉取镜像时使用。
  • ChartRelease 都是 Helm 的内置对象。

clusterrole.yaml 和 clusterrolebinding.yaml

Kubernetes RBAC 系统使用,这是一个集群范围内生效的 ClusterRole,声明了 Ingress 中需要的两组权限,并最终和 Service Account 进行绑定:

  • 对于 extensions.thirdpartyresources 和 extensions.ingresses 对象的读写权限。
  • 对 configmaps、pods、endpoints 和 services 对象的读取权限。

其中引用变量:

  • istio.name:定义在 istio 的 _helpers.tpl 中,如果没有使用 nameOverride 进行覆盖的话,会使用 Chart 名称。
  • ChartRelease 都是 Helm 的内置对象。

deployment.yaml

这一模板用于生成 Deployment,主体部分和 Ingress Gateway 类似,使用的都是 istio/proxyv2 镜像,参数稍有区别

  • istio-proxyproxy sidecar
  • ingressproxy ingress
  • gatewaysproxy router

其中引用变量:

  • istio.name:定义在 istio 的 _helpers.tpl 中,如果没有使用 nameOverride 进行覆盖的话,会使用 Chart 名称。
  • 使用 Chart 和 Release 数据生成标签。这里可以看到,固定使用 istio: ingress 提供给 Gateway Selector 进行选择。
  • global.hubglobal.tag:生成镜像地址。
  • replicaCount:控制 Pod 数量。
  • global.imagePullPolicy:拉取策略。
  • global.priorityClassNamePriorityClass
  • global.proxy.envoyStatsd.enabled:如果启用,则加入 --statsdUdpAddress 参数。
  • global.controlPlaneSecurityEnabled:根据这一设置确定 controlPlaneAuthPolicy 设置:
# 如果启用
- --controlPlaneAuthPolicy
- MUTUAL_TLS
- --discoveryAddress
- istio-pilot:15005
# 如果没启用
- --controlPlaneAuthPolicy
- NONE
- --discoveryAddress
- istio-pilot:8080
  • resourcesglobale.defaultResources:优先使用 Chart 自身的资源定义,如果没有则使用缺省定义。
  • nodeaffinity:包含节点亲和性定义模板。

另外这里还包含了对两个 secret 的可选加载:

  • istio.istio-ingress-service-account:用于 RBAC 的 Service Account 证书。
  • istio-ingress-certs:提供 https 服务时使用这一组证书。

service.yaml

这个模板用来为 Ingress 生成服务。

引用变量包括:

  • istio.name:定义在 istio 的 _helpers.tpl 中,如果没有使用 nameOverride 进行覆盖的话,会使用 Chart 名称。
  • 使用 Chart 和 Release 数据生成标签。
  • service.loadBalancerIP:如果指定了 IP,则使用指定 IP。
  • service.type:如果没有负载均衡支持,可以考虑采用 NodePort 方式。
  • service.annotations:可以设置一系列的键值对,通过遍历的形式为 Service 对象生成注解。
  • service.ports:可以定义其它的非标准端口,以数组形式供 Helm 进行遍历,例如:
- port: 80
  name: http
  nodePort: 32000
- port: 443
  name: https

常用链接

  1. Helm 内置对象:https://docs.helm.sh/chart_template_guide/#built-in-objects

More from this blog

FDE 是传统运维产品厂商的出路吗?

很多传统运维产品厂商,已经不缺产品了。 从 ITSM、CMDB、监控、自动化,到 IAM、数据中心管理和各类大屏,一个成熟厂商往往都能拿出一张很完整的产品地图。销售材料上看,客户运维部门的日常工作几乎都被覆盖了。 但项目一落地,味道就变了。 产品越多,集成越重;模块越全,边界越模糊;客户越大,定制越深。到了后期,项目成功本身也会变成麻烦:现场改出来的东西回不到主干,配置越来越像黑箱,谁都不敢轻易升

Jun 29, 20263 min read

绵里藏针才是 AIOps 的本质?

Agent 让运维编排变得柔性、可变、甚至自演进;但真正敢进入生产环境的 AIOps,仍然离不开坚实、受控、可审计、可回退的自动化底座。 从 Gartner 提出 AIOps 概念到现在,也大概有十年了。这么多年来,这个领域好像发生了很多变化,又好像没什么“本质”的变化。技术上,我们经历了传统机器学习、深度学习和神经网络、以及大模型和智能体这样“翻天覆地”的变化;业务上,我们面对的是更多品种、更大

May 31, 20263 min read

龙虾恐慌:AIOps 又要改名了?

ChatGPT 开始,把 AI 拉近到普罗大众的面前,让无数人感受到 AI 的亲民魅力。而龙虾,则把大模型驱动的自动化能力,突然间变得水灵灵、活泼泼地走进千家万户。它不只是“风口上的猪”,而是风口本身。热度高到让 Mac mini 一度断货,不知道这在不在库克的预料之内。 每代人都有每代人的鸡蛋,春节期间,我就领了我的鸡蛋。翻出古老的 MacBook Air M1,充值各种大模型。当然了,这个工具

Mar 9, 20261 min read

再见 2025

我猜不少人以为这个号废了吧?并没有,只是今年变化有点大,一直有种抄起键盘,无从说起的感觉,所以一直偷懒到今天,2025 的最后一天。 今年是我的第四个本命年,去年末一期播客里,大内说本命年不是灾年,是变化年,有危也有机。可是讲真啊,只看到危,没看到机。 各种因缘际会,从鹅厂跳槽到前东家,已经接近四年,第一个合同期已经进入尾声。除了前两年还在云原生领域嗷嗷叫,后两年基本都是些鸡零狗碎的东西了,用老东家的术语说是——偏离主航道,可谓是前景暗淡了。 一旦确定要滚蛋,反倒心思轻松起来,每天骑着我的小红车...

Jan 5, 20261 min read

辅助编程?dora 说:我知道你很急可是请你别急

从 OpenGPT 把大模型的火烧旺了之后,这三年来,相信很多组织或摩拳擦掌、或躬身入局,希望借助聪明能干的大模型,或想偿还技术宅,或想降本增效,或想弯道超车。一时间,沉寂许久的 AIxx 又活过来了,LLM Ops、Vibe Coding、中医大模型、GPT 算命等等,全都老树发新芽,焕发了勃勃生机。那么视角拉回从业者最关注的饭碗相关的领域之一——AI 辅助开发,产生了什么触动,应该如何拥抱呢? DORA 的年度报告中给出了很有意思的结论——强者恒强。 执行摘要部分总结了几个有趣的点: 问题...

Oct 6, 20251 min read

【伪】架构师

344 posts