许可证管理
API7 网关需要有效的许可证才能运行。许可证用于控制可用功能(例如 API 网关和开发者门户),并定义部署中数据面可使用的最大 CPU 核心数。
许可证属性
每个许可证包含以下属性:
| 属性 | 描述 |
|---|---|
| 序列号 | 许可证的唯一标识符。 |
| 客户 | 获得许可的组织名称。 |
| 生效日期 | 许可证开始生效的日期。 |
| 到期日期 | 许可证到期的日期。 |
| 最大 DP 核心数 | 所有数据面实例可使用的最大 CPU 核心总数。 |
| 功能列表 | 获得许可的功能,例如 API7 Gateway 和 API7 Portal。 |
| 部署 ID | 与许可证绑定的特定部署 ID。 |
| 免费试用 | 是否为试用许可证。 |
上传许可证
使用控制台
- 登录 API7 控制台。
- 如果没有激活的许可证,系统会提示你在登录时上传许可证。
- 上传许可证文件,然后点击 Activate(激活)。
使用 Admin API
调用 Admin API 上传许可证:
如果 API7 网关不在本地运行,请将 localhost 替换为控制台或 Admin API 的主机名。
curl -k "https://localhost:7443/api/license" -X PUT \
-H "Authorization: Bearer $API7_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"license": "<LICENSE_CONTENT>"
}'
添加 ?dry-run=all 查询参数,可以仅验证许可证而不应用:
curl -k "https://localhost:7443/api/license?dry-run=all" -X PUT \
-H "Authorization: Bearer $API7_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"license": "<LICENSE_CONTENT>"
}'
使用许可证文件路径
对于 Kubernetes 等自动化部署场景,可以配置控制面从文件加载许可证。系统每 5 秒轮询一次该文件,以检测内容变更。
在控制面配置中指定许可证文件路径:
dashboard_configuration:
license:
file_path: "/path/to/license.txt"
此方法适用于 GitOps 工作流:将许可证存储为 Kubernetes Secret,并挂载到控制面 Pod 中。
检索许可证详细信息
获取当前许可证详细信息,包括运行时状态:
curl -k "https://localhost:7443/api/license" \
-H "Authorization: Bearer $API7_TOKEN"
响应中包含许可证属性及其当前运行时状态。
核心数额度
最大 DP 核心数属性定义所有数据面(网关)实例允许使用的数据面核心数上限。控制面每天统计许可核心数的用量。
如何跟踪核心使用情况
控制面每天午夜统计所有网关实例前一天的峰值核心数,并与许可证中的 max_dp_cores 值进行比较。
网关 Worker 进程如何影响许可核心数
API7 许可证中的 max_dp_cores 属性定义允许使用的数据面核心数上限。
运行时的数据面核心数用量根据每个网关数据面实例中实际生效的 NGINX Worker 进程数计算,不直接根据 Kubernetes 的 apisix.resources.requests.cpu、apisix.resources.limits.cpu 或 Pod 的实际 CPU 利用率计算。
下表中的 CPU 配置仅用于说明许可证的统计方式,并非推荐的生产配置。有关性能相关配置,请遵循 CPU 资源和 Worker 进程中的指导。
| 运行中的数据面实例 | nginx.workerProcesses | CPU 请求 / 限制 | 计入的数据面核心数用量 |
|---|---|---|---|
| 1 个 Pod | 1 | 500m / 500m | 1 |
| 1 个 Pod | 1 | 500m / 1200m | 1 |
| 2 个 Pod | 每个 Pod 为 1 | 每个 Pod 为 500m / 500m | 1 + 1 = 2 |
| 2 个 Pod | 分别为 2 和 4 | 不影响统计方式 | 2 + 4 = 6 |
因此,如果实际生效的 Worker 进程数仍为 1,将 Pod 的 CPU 限制从 500m 增加到 1200m 不会改变其计入的数据面核心数用量。仅调整 CPU 资源配置不会将许可证用量变为 0.5 或 1.2 个数据面核心。
许可证运行时状态
许可证根据核心使用情况在三种运行时状态之间转换:
| 状态 | 描述 | 影响 |
|---|---|---|
| 正常 | 核心使用量未超过许可证限制。 | 所有功能均可用。 |
| DP 核心数超限 | 核心使用量超过限制,开始计算 7 天宽限期。 | 所有功能仍可用,但会显示警告。 |
| 受限 | 宽限期结束后,核心数仍超过限制。 | 写操作被阻止,读操作不受影响。 |
进入受限状态后:
- 阻止:创建或更新服务、路由、消费者、插 件、SSL 证书及其他配置资源。
- 允许:读取配置、查看控制台和上传新许可证。
要解除受限状态,请减少数据面核心数(例如减少网关副本数),或上传核心数额度更高的许可证。
许可证到期
许可证到期后:
- 读取操作(查看配置、控制台)继续工作。
- 写入操作(创建或更新资源)被阻止。
- 你仍然可以上传新许可证。
请监控许可证到期日期并提前安排续订。如需许可证,请联系 API7 销售团队或申请试用许可证。