跳到主要内容

Helm Chart

APISIX 和 API7 Ingress Controller 都可以通过 Helm Chart 部署。二者使用不同的 Chart,并具有不同的配置项和部署方式。

APISIX Helm Chart

APISIX Helm Chart 提供基于 Helm 的 APISIX 组件安装和管理方式,可用于 Kubernetes 环境。

APISIX Ingress Controller 可以通过两种方式部署到 Kubernetes:

  • 嵌入 apisix/apisix Chart 中,通过设置 ingress-controller.enabled=true,将控制器作为 APISIX Helm release 的一部分启用。
  • 使用 apisix/apisix-ingress-controller Chart,将控制器作为单独的 Helm release 部署。

快速开始教程中的安装命令会将 APISIX Ingress Controller 和 APISIX 部署在同一个 Helm release 中。在这种部署方式下,Ingress Controller Pod 会与 APISIX 网关 Pod 一起运行,但 helm ls 中只会显示一个 Helm release(apisix)。

你也可以将 APISIX Ingress Controller 独立于 APISIX 部署为单独的 Helm release。以下示例展示如何将 APISIX Ingress Controller 作为独立 Helm release 安装:

# 替换为你的配置细节
helm install apisix-ingress-controller \
--create-namespace \
-n aic \
--set gatewayProxy.createDefault=true \
--set gatewayProxy.provider.controlPlane.auth.adminKey.value=edd1c9f034335f136f87ad84b625c8f1 \
--set apisix.adminService.namespace=aic \
--set apisix.adminService.name=apisix-admin \
--set apisix.adminService.port=9180 \
apisix/apisix-ingress-controller

API7 Helm Chart

API7 Helm Chart 提供基于 Helm 的 API7 组件安装和管理方式,可用于 Kubernetes 环境。

API7 Ingress Controller 拥有专用 Helm Chart,只用于部署 Ingress Controller 组件,并连接到已有 API7 控制面。与 APISIX Helm Chart 不同,API7 网关 Helm Chart 不提供在同一个 Helm release 中同时部署 Ingress Controller 的选项。

安装时,API7 控制台会引导你在 Kubernetes 上部署 Ingress Controller 和 API7 网关,并在过程中生成所需部署脚本和命令。

Helm Chart values

Helm Chart values 用于定义 Chart 配置。它们可以来自 Chart 默认的 values.yaml 文件,也可以在安装或升级时被覆盖,用于自定义部署。

查看默认 values

如需查看 Helm Chart 提供的默认 values,运行:

helm show values <repo>/<chart-name>

# 例如:
# helm show values apisix/apisix
# helm show values apisix/apisix-ingress-controller
# helm show values api7/api7-ingress-controller

该命令会显示 Chart 打包时包含的 values.yaml,不会读取已安装 Helm release 的 values。如需检查当前 Helm release 实际关联的 values,请使用 helm get values

权威 Chart 参考请查看 values 参考表(提供可读字段说明)和 values.yaml(提供原始默认值和嵌套结构):

查看有效 values

如需查看已安装 Helm release 应用的 values(包括默认值和覆盖值),运行:

helm get values <release-name> -n <namespace> --all

更新 values

如需更新 Helm release,可以编辑其有效 values 并应用变更。

首先,将 Helm release 的完整 values 导出到文件中,包括 Chart 默认值和所有覆盖值:

helm get values <release-name> -n <namespace> --all -o yaml > my-values.yaml

然后,打开导出的 values 文件并更新参数值。

最后,将更新后的 values 应用到 Helm release:

helm upgrade <release-name> <chart-name> -n <namespace> -f my-values.yaml