API Gateway Creation
概述
创建 API 网关是通过 APIM 系统公开和管理 API 的第一步。在像 APIM 的基础设施这样的真实生产环境中,网关设置必须考虑扩展、流量分配、日志转发和 DNS 映射。本教程将指导您通过一个示例案例创建一个生产级网关。
先决条件
在开始之前,请确保以下内容:
- 您有 Administrator 访问 APIM 控制台的权限。
- 已创建一个 Project(例如,pj-test-01)。
分步教程
步骤 1. 访问网关创建页面
- 登录 APIM 控制台。
- 选择项目:pj-test-01。
- 导航到网关管理。
- 点击创建网关按钮。

步骤 2. 网关信息
| Field | Value |
|---|---|
| 网关类型 | kong |
| 网关名称 | gateway-prod-mj |
| 网关实例名称 | 自动填充为 gateway-prod-mj |
| 描述 | 用于测试网关创建过程的网关 |
| 标签 | test, kr(可以添加更多标签以对网关进行分类) |

步骤 3. 资源配置
网关 Pod 资源
| Resource | Value |
|---|---|
| CPU | 1000m |
| 内存 | 1000Mi |
数据库资源
| Resource | Value |
|---|---|
| CPU | 1000m |
| 内存 | 1000Mi |
使用滑块更改值

步骤 4. 部署设置
| 字段 | 值 |
|---|---|
| 网关自动扩展 | 启用(切换开启) 最小副本:1 最大副本:5 CPU:50 内存:50 可以输入或使用滑块更改值 |
| Kong 命名空间 | mj-test |
| Kong 存储类 | gp2 |
| 存储容量 | 5 Gi |
| Kong 代理服务类型 | LoadBalancer |
| Kong 代理服务 NodePort | 30001 |

步骤 5. 亲和性设置
启用亲和性并配置:
| Key | Value |
|---|---|
| topology.kubernetes.io/zone | ap-northeast-2 |
这确保网关 Pod 仅在特定可用区调度。

步骤 6. 容忍设置
启用容忍并添加:
| Operator | Key | Value |
|---|---|---|
| 等于 | spot | true |
| 存在 | critical |
这允许网关 Pod 被调度到具有污点的节点,例如 spot=true 或 critical。

步骤 7. 拓扑扩展配置
| 字段 | 值 |
|---|---|
| 最大偏差 | 1 |
| 当不满足时 | 不调度 |
确保网关 Pod 均匀分布在各个区域,避免不满足的调度。

步骤 8. 系统附加组件
| 组件 | 设置 |
|---|---|
| 内部 Redis | 启用 |
| Fluent Bit | 启用 OpenTelemetry:启用 Elasticsearch:禁用 |
启用 Fluent Bit 有助于在您的可观察性管道中集中网关日志。

步骤 9. Kong 配置
输入以下 JSON:
{
"upstream_keepalive_idle_timeout": 60,
"upstream_keepalive_max_requests": 100000,
"nginx_http_keepalive_requests": 100000,
"upstream_keepalive_pool_size": 1024
}
这些值优化上游连接重用,并有助于高性能环境。

步骤 10. 创建网关
- 点击底部的创建网关按钮。
- 转到网关详细信息页面并验证创建的网关。

最佳实践
- 在名称中使用环境后缀:gateway-dev、gateway-staging、gateway-prod。
- 为每个环境定义专用命名空间,以实现资源的清晰分离。
- 除非您有基于指标的触发器,否则保持自动扩展关闭。
- 同时使用亲和性和拓扑扩展以实现高可用性。
- 记录并版本化您的 Kong 配置 JSON 以便审计和回滚。