跳到主要内容
版本:3.9.x

在 Kubernetes 上部署 API7 Ingress Controller

本教程将向你展示如何在 Kubernetes 上部署 API7 网关和 Ingress Controller。API7 Ingress Controller 允许你在 Kubernetes 中以声明方式配置 API7 网关。有关更多信息,请参阅 API7 Ingress Controller 架构

如果你不想使用 Kubernetes 和 API7 Ingress Controller,你可以跳过本教程,从启动你的第一个 API开始。

先决条件

  1. 安装 API7 企业版
  2. 拥有一个正在运行的 Kubernetes 集群。
  3. 已安装 kubectl

配置数据面管理器和 Admin API 地址

导航到控制台:

  1. 从顶部导航栏选择 Organization,然后选择 Settings
  2. 从左侧导航栏选择 Gateway Settings,然后选择 Deployment 选项卡。
  3. 使用 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

添加新的网关组

导航到控制台:

  1. 从侧边导航栏选择 Gateway Groups,然后点击 Add Gateway Group
  2. 选择 Ingress Controller 作为 Type
  3. Name 字段中输入 api7-ingress
  4. 点击 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 配置

  1. Namespace 字段中输入 api7
  2. Name 字段中输入 apisix
  3. 点击 Generate Script
  4. Gateway APIIngress 脚本之间进行选择。
    1. 如果你要使用 Gateway API,请选择 Gateway API 选项卡。
    2. 如果你要使用 Ingress 或 APISIX CRD,请选择 Ingress 选项卡。
  5. 复制生成的脚本并在终端中运行它。

安装网关实例

导航到控制台:

  1. 从侧边导航栏选择 Gateway Instances,然后点击 Add Gateway Instance
  2. 切换到 Kubernetes 选项卡。
  3. 填写命名空间和其他参数,并点击 Generate 以查看部署脚本。
  4. 在终端中运行部署脚本。
信息

安装 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 创建的资源(如服务和路由)在控制台中将是只读的。

后续步骤

  1. 了解如何在网关组中创建网关实例
  2. 遵循入门教程,了解更多关于在 API7 企业版中使用 API7 Ingress Controller 的信息。