2. Serverless 平台架构基础:核心组件、资源隔离与租户映射
在深入 HPA 接入与容量调优之前,必须建立对 Serverless 平台底层架构的清晰认知。本章聚焦三大基础模块:FaaS 与 BaaS 核心组件、资源隔离模型以及租户与命名空间的映射关系。这些概念直接决定了 HPA 策略的生效范围与配额校准的粒度。
2.1 Serverless 核心组件:FaaS 与 BaaS
Serverless 平台并非单一运行时,而是由两大核心组件协同构成:
| 组件 | 全称 | 职责 | 典型实现 |
|---|---|---|---|
| FaaS | Function as a Service | 函数计算、事件驱动、自动弹性伸缩 | Knative、OpenWhisk、Fission |
| BaaS | Backend as a Service | 托管后端服务(数据库、缓存、对象存储、消息队列) | 云数据库、Redis、Kafka、对象存储 |
关键理解: FaaS 负责“计算”的弹性伸缩,BaaS 负责“状态”的持久化与连接。HPA 主要作用于 FaaS 层,但 BaaS 的连接池、并发上限会反向影响 FaaS 的扩容决策。
FaaS 内部通常包含以下子组件:
- 函数调度器(Function Scheduler):接收事件,决定将函数实例调度到哪个 Worker 节点。
- 函数运行时(Function Runtime):容器化执行环境,支持多种语言(Python、Node.js、Go 等)。
- 弹性伸缩控制器(AutoScaler):基于并发请求数、CPU/内存指标、自定义指标驱动扩缩容。
- 网关层(Gateway):统一入口,负责鉴权、限流、路由转发。
2.2 资源隔离模型
Serverless 平台采用多层资源隔离策略,确保不同租户的函数在共享基础设施上互不干扰。隔离粒度从粗到细分为以下层次:
| 隔离层级 | 隔离粒度 | 实现方式 | 对 HPA 的影响 |
|---|---|---|---|
| 物理节点 | 整机 | Kubernetes Node 亲和性、Taint/Toleration | 节点资源预留影响扩容上限 |
| 容器组 | Pod | Kubernetes Pod、cgroup 资源限制 | Pod 资源 Request/Limit 决定 HPA 阈值 |
| 函数实例 | 单函数 | 容器沙箱(gVisor、Firecracker) | 实例并发度影响扩容决策 |
| 租户级 | 命名空间 | Kubernetes Namespace + ResourceQuota | 租户配额直接约束 HPA 最大副本数 |
实践要点: 在 Serverless 平台中,租户级隔离是配额校准的核心边界。HPA 扩容时不能突破租户在命名空间级别设置的 ResourceQuota 上限,否则会导致 Pod 创建失败。
2.3 租户与命名空间映射关系
每个租户在平台内部被映射到一个或多个 Kubernetes Namespace。映射模型通常分为两种:
- 1:1 映射:一个租户独占一个 Namespace,隔离性最强,管理简单,但 Namespace 数量随租户增长线性增加。
- 1:N 映射:一个租户拥有多个 Namespace(如开发、测试、生产环境),适用于大型企业租户,需要额外的标签或注解来标识归属。
映射关系通过平台元数据服务维护,典型的数据结构如下:
# 租户与命名空间映射示例(YAML)
apiVersion: serverless.platform.io/v1
kind: TenantMapping
metadata:
name: tenant-abc-prod
spec:
tenantID: "tenant-abc"
tenantName: "ABC 科技有限公司"
namespaces:
- name: "ns-abc-prod"
role: "production"
resourceQuota:
cpu: "32"
memory: "128Gi"
pods: "200"
- name: "ns-abc-staging"
role: "staging"
resourceQuota:
cpu: "8"
memory: "32Gi"
pods: "50"
defaultNamespace: "ns-abc-prod"
2.4 映射关系在 HPA 配额校准中的角色
当 HPA 接入 Serverless 平台后,配额校准流程必须依赖租户-命名空间映射关系:
- 识别租户归属:通过函数所属 Namespace 反查租户 ID。
- 读取配额上限:从映射服务获取该 Namespace 的 ResourceQuota 中的 Pod 数量上限。
- 计算可用容量:当前已运行 Pod 数 + HPA 期望扩容数 ≤ 配额上限。
- 执行校准:若超出配额,HPA 将扩容请求截断或触发告警。
常见陷阱: 如果映射关系维护不及时(如租户迁移 Namespace 后未更新映射表),HPA 可能读取到错误的配额数据,导致扩容失败或超配额。建议在映射服务中引入版本号或事件通知机制,确保配额数据实时同步。
本章内容为后续 HPA 接入策略与容量调优提供了架构基础。理解 FaaS/BaaS 分工、隔离模型层次以及租户映射机制,是正确设计配额校准逻辑的前提。