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

许可证管理

API7 网关需要有效的许可证才能运行。许可证用于控制可用功能(例如 API 网关和开发者门户),并定义部署中数据面可使用的最大 CPU 核心数,分为生产和非生产两份额度。

许可证属性​

每个许可证包含以下属性:

属性描述
序列号许可证的唯一标识符。
客户获得许可的组织名称。
生效日期许可证开始生效的日期。
到期日期许可证到期的日期。
最大 DP 核心数生产网关组下数据面实例可使用的最大 CPU 核心总数。
最大非生产 DP 核心数非生产网关组下数据面实例可使用的最大 CPU 核心总数。API7 企业版从 3.10.5 版本开始支持。
功能列表获得许可的功能,例如 API7 Gateway 和 API7 Portal。
部署 ID与许可证绑定的特定部署 ID。
免费试用是否为试用许可证。

上传许可证​

使用控制台​

  1. 登录 API7 控制台。
  2. 如果没有激活的许可证,系统会提示你在登录时上传许可证。
  3. 上传许可证文件,然后点击 Activate(激活)。

使用 Admin API​

按照从控制台获取令牌创建令牌,然后将其导出:

export API_KEY="a7ee-xxxxxxxxxxxxx"

通过 Admin API 上传许可证文件。jq 会将多行许可证编码为 JSON 字符串:

如果 API7 网关不在本地运行,请将 localhost 替换为控制台或 Admin API 的主机名。

curl -k "https://localhost:7443/api/license" -X PUT \
-H "X-API-KEY: ${API_KEY}" \
-H "Content-Type: application/json" \
-d "$(jq -Rs '{data: .}' < api7-ee-license)"

添加 ?dry-run=all 查询参数,可以仅验证许可证而不应用:

curl -k "https://localhost:7443/api/license?dry-run=all" -X PUT \
-H "X-API-KEY: ${API_KEY}" \
-H "Content-Type: application/json" \
-d "$(jq -Rs '{data: .}' < api7-ee-license)"

使用许可证文件路径​

对于 Kubernetes 等自动化部署场景,可以配置控制面从文件加载许可证。系统每 5 秒轮询一次该文件,以检测内容变更。

在控制面配置中指定许可证文件路径:

Helm values
dashboard_configuration:
license:
file_path: "/path/to/license.txt"

此方法适用于 GitOps 工作流:将许可证存储为 Kubernetes Secret,并挂载到控制面 Pod 中。

检索许可证详细信息​

获取当前许可证详细信息,包括运行时状态:

curl -k "https://localhost:7443/api/license" \
-H "X-API-KEY: ${API_KEY}"

响应中包含许可证属性及其当前运行时状态。

核心数额度​

许可证包含两份相互独立的核心数额度:

额度适用范围许可证属性
生产环境为 production 的网关组下的数据面实例max_dp_cores
非生产环境为 non_production 的网关组下的数据面实例max_non_production_dp_cores

每个网关组只属于其中一份额度,因此预发布或测试网关组不会消耗生产核心数。设置网关组环境的方式请参考网关组。3.10.5 之前创建的网关组按生产处理。

3.10.5 之前签发的许可证不包含非生产额度,读取到的值为 0。只要所有网关组都是生产环境,这类许可证的行为与之前完全一致;如果需要运行非生产网关组,请申请包含非生产核心数的许可证。

如何跟踪核心使用情况​

控制面每天午夜分别统计前一天两份额度各自的峰值核心数,并与许可证中对应的值进行比较。

网关 Worker 进程如何影响许可核心数​

API7 许可证中的 max_dp_cores 属性定义生产网关组允许使用的数据面核心数上限,max_non_production_dp_cores 属性定义非生产网关组单独的数据面核心数上限。两份额度使用相同的统计方式。

运行时的数据面核心数用量根据每个网关数据面实例中实际生效的 NGINX Worker 进程数计算,不直接根据 Kubernetes 的 apisix.resources.requests.cpu、apisix.resources.limits.cpu 或 Pod 的实际 CPU 利用率计算。

下表中的 CPU 配置仅用于说明许可证的统计方式,并非推荐的生产配置。有关性能相关配置,请遵循 CPU 资源和 Worker 进程中的指导。

运行中的数据面实例nginx.workerProcessesCPU 请求 / 限制计入的数据面核心数用量
1 个 Pod1500m / 500m1
1 个 Pod1500m / 1200m1
2 个 Pod每个 Pod 为 1每个 Pod 为 500m / 500m1 + 1 = 2
2 个 Pod分别为 2 和 4不影响统计方式2 + 4 = 6

因此,如果实际生效的 Worker 进程数仍为 1,将 Pod 的 CPU 限制从 500m 增加到 1200m 不会改变其计入的数据面核心数用量。仅调整 CPU 资源配置不会将许可证用量变为 0.5 或 1.2 个数据面核心。

许可证运行时状态​

每份额度根据自身的核心使用情况,独立在三种运行时状态之间转换:

状态描述影响
正常核心使用量未超过许可证限制。所有功能均可用。
DP 核心数超限核心使用量超过限制,开始计算 7 天宽限期。所有功能仍可用,但会显示警告。
受限宽限期结束后,核心数仍超过限制。写操作被阻止,读操作不受影响。

每份额度只根据自身的用量进入或退出上述状态。当其中一份进入受限状态时:

  • 阻止:在消耗该额度的网关组中创建或更新服务、路由、消费者、插件、SSL 证书及其他配置资源。不属于任何网关组的操作(例如管理用户、角色和门户)由生产额度的运行时状态决定,因此只有生产额度受限时才会被阻止。
  • 允许:另一份额度下网关组的全部操作,以及读取配置、查看控制台和上传新许可证。

要解除受限状态,请减少受影响网关组的数据面核心数(例如减少网关副本数),或上传该额度更高的许可证。

许可证到期​

当许可证过期时:

  • 读取操作(查看配置、控制台)继续工作。
  • 写入操作(创建或更新资源)被阻止。
  • 你仍然可以上传新许可证。
提示

请监控许可证到期日期并提前安排续订。如需许可证,请联系 API7 销售团队或申请试用许可证。

免费试用许可证​

免费试用许可证可用于评估目的:

  • 最长持续时间:90 天。
  • 试用期从部署日期开始。

要申请试用许可证,请访问 api7.ai/try。