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 以便审计和回滚。