在 Kubernetes 上部署 API7 Ingress Controller
本教程将向你展示如何在 Kubernetes 上部署 API7 网关和 Ingress Controller。API7 Ingress Controller 允许你在 Kubernetes 中以声明方式配置 API7 网关。有关更多信息,请参阅 API7 Ingress Controller 架构。
如果你不想使用 Kubernetes 和 API7 Ingress Controller,你可以跳过本教程,从启动你的第一个 API开始。
先决条件
- 安装 API7 企业版。
- 拥有一个正在运行的 Kubernetes 集群。
- 已安装 kubectl。
配置数据面管理器和 Admin API 地址
导航到控制台:
- 从顶部导航栏选择 Organization,然后选择 Settings。
- 从左 侧导航栏选择 Gateway Settings,然后选择 Deployment 选项卡。
- 使用 HTTPS URL 更新数据面管理器(DP Manager)地址(
:7943)和 Admin API 地址(:7443)。
创建并设置命名空间
你可以选择为这些资源创建一个新的命名空间,并将其设置为首选命名空间,这样你就不必在每个命令中显式指定命名空间了。
创建一个新的命名空间 api7 并将其设置为首选命名空间:
kubectl create namespace api7 && \
kubectl config set-context --current --namespace=api7
验证默认命名空间是否被修改:
kubectl config view --minify | grep namespace:
你应该会看到命名空间已设置:
namespace: api7
添加新的网关组
导航到控制台:
- 从侧边导航栏选择 Gateway Groups,然后点击 Add Gateway Group。
- 选择 Ingress Controller 作为 Type。
- 在 Name 字段中输入
api7-ingress。 - 点击 Add。
网关组将被创建,系统会在 Deployment Steps 面板中提示你安装 Ingress Controller 并部署 GatewayProxy 配置。
安装 Ingress Controller
复制控制台上的部署脚本并在终端中运行。如果部署成功,你应该会看到类似于以下的响应:
NAME: api7-ingress
LAST DEPLOYED: Tue Jul 29 10:17:51 2025
NAMESPACE: api7
STATUS: deployed
REVISION: 1
TEST SUITE: None
部署 GatewayProxy 配置
- 在 Namespace 字段中输入
api7。 - 在 Name 字段中输入
apisix。 - 点击 Generate Script。
- 在 Gateway API 和 Ingress 脚本之间进行选择。
- 如果你要使用 Gateway API,请选择 Gateway API 选项卡。
- 如果你要 使用 Ingress 或 APISIX CRD,请选择 Ingress 选项卡。
- 复制生成的脚本并在终端中运行它。
安装网关实例
导航到控制台:
- 从侧边导航栏选择 Gateway Instances,然后点击 Add Gateway Instance。
- 切换到 Kubernetes 选项卡。
- 填写命名空间和其他参数,并点击 Generate 以查看部署脚本。
- 在终端中运行部署脚本。
信息
在安装 API7 企业版时,可能会在网关组 default 中初始化一个网关实例。为了避免端口冲突,你可以修改新网关实例的侦听端口,或删除 default 网关组中未使用的实例。
验证
检查 Pod 状态:
kubectl get pods
你应该会看到所有 Pod 都处于 Running 状态:
NAME READY STATUS RESTARTS AGE
api7-ee-3-gateway-698f85d98b-jxrwp 1/1 Running 0 6m
api7-ingress-774578b557-lw2wk 1/1 Running 0 10m
返回控制台并选择 Gateway Instances,你应该会看到一个处于 healthy 状态的网关实例。
请注意,使用 API7 Ingress Controller 创建的资源(如服务和路由)在控制台中将是只读的。