在 OpenShift 上安装 API7 Ingress Controller
本指南将引导你完成如何在 OpenShift 集群上部署 API7 Ingress Controller。
准备工作
请遵循在 OpenShift 上安装 API7 企业版中的前提条件和安装步骤,但跳过生成并运行部署脚本(用于 API7 Gateway)步骤。
安装 API7 Ingress Controller
如果你想使用不同的命名空间或自定义其他配置名称,请相应地调整安装命令和配置值。
生成并运行部署脚本
导航到仪表板:
-
从侧边导航栏选择网关组,然后点击添加网关组。
-
选择类型为Ingress Controller。
-
在名称字 段中输入
api7-ingress。 -
点击添加。

网关组应该被创建,并且你将在部署步骤面板中看到提示,要求安装 ingress controller 并部署 GatewayProxy 配置。
输入 Ingress Controller 的命名空间和名称。

然后点击生成脚本。

在命令末尾手动附加高亮显示的标志。确保前一行以尾随反斜杠(\)结束。命令应类似于以下内容:
helm repo add api7 https://charts.api7.ai
helm repo update
helm upgrade --install -n api7-enterprise-project --create-namespace api7-ingress api7/api7-ingress-controller \
--version 0.1.23 \
--set "deployment.image.repository=api7/api7-ingress-controller" \
--set "deployment.image.tag=2.0.16" \
--set "config.controllerName=api7.ai/api7-ingress-controller" \
--set "config.leaderElection.id=api7-ingress-controller-leader" \
// 注释 1
--set "adc.securityContext.runAsUser=65532" \
// 注释 2
--skip-crds
❶ --set "adc.securityContext.runAsUser=65532":以非 root 用户(UID 65532)身份运行 API7 Ingress Controller,以符合 OpenShift 的安全策略。
❷ --skip-crds:跳过通过 Helm 安装 CRD,因为 OpenShift 限制了 CRD 管理。Gateway API CRD 已经存在,而 APISIX CRD 必须在之后手动安装。
如果你打算使用 Gateway API 创建资源,请使用 0.1.23 或更高版本的 Helm chart。较早的 chart 版本无法在 OpenShift 环境中正确安装 Gateway API 资源。
在终端中运行它。如果部署成功,你应该会看到类似于以下的响应:
NAME: api7-ingress
LAST DEPLOYED: Mon Feb 2 15:12:59 2026
NAMESPACE: api7-enterprise-project
STATUS: deployed
REVISION: 1
TEST SUITE: None
为 API7 Ingress Controller 配置 SCC
创建一个名为 api7-ingress 的服务账户,该账户将在 Helm chart 发布名称中被引用。角色必须分配给 Ingress Controller 部署所使用的服务账户。
oc create serviceaccount api7-ingress -n api7-enterprise-project
创建一个带有 nonroot-v2 SCC 的角色:
oc create role api7-ingress \
--verb=use \
--resource=scc \
--resource-name=nonroot-v2 \
-n api7-enterprise-project
将角色绑定到服务账户:
oc create rolebinding api7-ingress \
--role=api7-ingress \
--serviceaccount=api7-enterprise-project:api7-ingress \
-n api7-enterprise-project
安装 APISIX CRD
在 OpenShift 中,Gateway API CRD 是预安装的,并且受到平台保护。Helm 安装必须使用 --skip-crds,以避免在尝试安装这些受保护的 CRD 时出现权限错误。因此,APISIX CRD 也被跳过,需要手动安装。
kubectl apply -f https://raw.githubusercontent.com/api7/api7-helm-chart/refs/heads/main/charts/ingress-controller/crds/apisix-crds.yaml
你应该会得到以下响应。
customresourcedefinition.apiextensions.k8s.io/apisixconsumers.apisix.apache.org created
customresourcedefinition.apiextensions.k8s.io/apisixglobalrules.apisix.apache.org created
customresourcedefinition.apiextensions.k8s.io/apisixpluginconfigs.apisix.apache.org created
customresourcedefinition.apiextensions.k8s.io/apisixroutes.apisix.apache.org created
customresourcedefinition.apiextensions.k8s.io/apisixtlses.apisix.apache.org created
customresourcedefinition.apiextensions.k8s.io/apisixupstreams.apisix.apache.org created
customresourcedefinition.apiextensions.k8s.io/backendtrafficpolicies.apisix.apache.org created
customresourcedefinition.apiextensions.k8s.io/consumers.apisix.apache.org created
customresourcedefinition.apiextensions.k8s.io/gatewayproxies.apisix.apache.org created
customresourcedefinition.apiextensions.k8s.io/httproutepolicies.apisix.apache.org created
customresourcedefinition.apiextensions.k8s.io/pluginconfigs.apisix.apache.org created
部署 GatewayProxy 配置
- 在命名空间字段中输入
api7-enterprise-project。 - 在名称字段中输入
api7-ingress。 - 点击生成脚本。

如果你尚未配置 Admin API 地址,系统将提示你先添加它。

- 选择 Ingress 或 Gateway API 标签页。

- 复制生成的脚本并在终端中运行。
你应该会得到以下响应。
namespace/api7-enterprise-project configured
secret/api7-ingress-admin-secret configured
gatewayclass.gateway.networking.k8s.io/api7-ingress created
gatewayproxy.apisix.apache.org/api7-ingress created
ingressclass.networking.k8s.io/api7-ingress created