Kong 网关基础架构:组件与数据/控制平面分离原理
Kong Gateway 是业界领先的云原生 API 网关,其架构设计围绕高性能代理与集中化管理两大核心目标展开。理解 Kong 的组件构成以及数据平面与控制平面分离的原理,是设计回滚护栏与权限分级体系的基础。
2.1 核心组件概览
Kong 的运行时体系由三个关键组件构成,它们各司其职,共同支撑网关的流量代理、策略执行与管理配置能力。
| 组件名称 | 核心职责 | 部署位置 | 关键特征 |
|---|---|---|---|
| Kong Gateway | 运行时代理、插件执行、流量转发 | 数据平面(边缘节点) | 高性能、无状态、水平扩展 |
| Kong Manager | 图形化管理界面、RBAC 管理、工作区 | 控制平面(管理网络) | Web UI、用户友好、操作审计 |
| Kong Admin API | 声明式配置接口、CRUD 操作、自动化 | 控制平面(管理网络) | RESTful、幂等、可编程 |
架构提示:在回滚护栏设计中,Admin API 是权限管控的第一道防线。所有配置变更(包括回滚操作)最终都通过 Admin API 执行,因此对 Admin API 的端点级权限分级是回滚安全的核心。
2.2 数据平面与控制平面分离原理
Kong 采用解耦架构,将流量处理(数据平面)与配置管理(控制平面)分离。这种设计带来了高可用性、安全隔离与独立扩缩容能力。
- 数据平面(Data Plane, DP):运行 Kong Gateway 实例,直接处理客户端请求。它从数据库(或声明式配置文件)中加载最新配置,在内存中构建路由、服务、上游与插件规则。数据平面无状态,故障时可快速替换。
- 控制平面(Control Plane, CP):包含 Kong Manager、Admin API 以及后端数据库(PostgreSQL/Cassandra)。所有配置变更、用户管理、审计日志均在此平面完成。控制平面不直接处理业务流量。
- 同步机制:数据平面通过轮询或事件驱动方式从数据库拉取配置变更。在混合模式(Hybrid Mode)下,控制平面节点主动将配置推送到数据平面节点,实现更高效的配置分发。
分离架构优势:
- 安全隔离:管理接口不暴露在公网,降低攻击面。
- 弹性伸缩:数据平面可按流量独立扩缩,不影响管理面。
- 故障域隔离:控制平面故障不影响已加载配置的数据平面继续运行。
- 权限分级:控制平面可实施细粒度 RBAC,数据平面仅需最小权限。
2.3 混合模式下的配置分发流程
在生产环境中,Kong 推荐使用混合模式(Hybrid Mode)来强化控制平面与数据平面的分离。该模式下,控制平面节点(CP Node)主动将配置变更推送到数据平面节点(DP Node),数据平面无需直接访问数据库。
- 配置变更:运维人员通过 Kong Manager 或 Admin API 修改路由、服务或插件配置。
- 持久化:控制平面将变更写入后端数据库,并更新本地缓存。
- 推送通知:控制平面通过 WebSocket 或 gRPC 流将配置变更事件推送给所有已连接的数据平面节点。
- 热加载:数据平面节点接收增量配置,在内存中热更新路由表与插件链,无需重启进程。
- 确认回执:数据平面节点向控制平面返回配置应用状态,控制平面记录审计日志。
回滚护栏关键点:在混合模式下,回滚操作必须同时考虑控制平面与数据平面的状态一致性。如果仅回滚数据库配置而未触发推送,数据平面可能仍运行旧配置。权限分级设计应确保回滚操作能触发完整的配置同步流程。
2.4 组件交互与权限触点
从权限分级设计的视角,Kong 各组件之间存在明确的交互边界,这些边界正是实施访问控制的关键触点。
| 交互路径 | 源组件 | 目标组件 | 协议/端口 | 权限控制点 |
|---|---|---|---|---|
| 管理配置 | Kong Manager | Admin API | HTTP(S) / 8001 | RBAC 角色、工作区隔离 |
| 配置推送 | CP Node | DP Node | WebSocket / 8005 | TLS 双向认证、集群证书 |
| 数据查询 | Admin API | 数据库 | PostgreSQL / 5432 | 数据库用户权限、网络策略 |
| 流量代理 | 客户端 | Kong Gateway | HTTP(S) / 8000, 8443 | 消费者认证、IP 白名单 |
2.5 架构对权限分级设计的启示
基于上述组件与分离架构,可以提炼出以下与权限分级设计直接相关的架构特征:
- 单一配置入口:所有配置变更(包括回滚)均通过 Admin API 完成,这为权限管控提供了集中化策略点。
- 工作区隔离:Kong Manager 支持工作区(Workspaces),不同团队或环境(开发/测试/生产)可隔离管理,权限分级可基于工作区维度实施。
- 操作审计:控制平面可记录所有 Admin API 调用日志,回滚操作应被标记为高风险事件,触发额外审批流程。
- 数据平面无状态:数据平面不存储持久化配置,回滚操作只需在控制平面执行配置还原并触发同步,无需逐个操作数据平面节点。