1. Serverless 与网络基础
1.1 Serverless 架构概述
Serverless(无服务器)并非真的没有服务器,而是将服务器基础设施的运维、容量规划和弹性伸缩完全抽象化,让开发者只需聚焦业务代码。在 Serverless 集群中,计算资源以函数(Function)为粒度运行,由平台自动调度和扩缩容,网络策略的配置与性能因此成为保障服务可用性和延迟的关键。
核心特征:
- 事件驱动:函数通过 HTTP 请求、消息队列、对象存储事件等触发。
- 自动弹性:从 0 到 N 的秒级伸缩,无需预置资源。
- 按需计费:仅对实际执行时间和调用次数付费。
- 无状态:函数实例不保留本地状态,状态需外置(如 Redis、数据库)。
当前主流 Serverless 平台包括 AWS Lambda、阿里云函数计算、Google Cloud Functions 以及基于 Kubernetes 的开源方案(如 Knative、OpenWhisk)。本课程以 Kubernetes + Knative 为技术底座,兼顾通用网络原理。
1.2 传统网络模型 vs Serverless 网络模型
传统应用部署在固定 IP 的虚拟机或容器上,网络策略围绕静态拓扑设计。Serverless 模型下,函数实例 IP 动态变化、生命周期极短,网络模型必须适应这种“无固定身份”的特性。以下从五个关键维度进行对比:
| 对比维度 | 传统网络模型 | Serverless 网络模型 |
|---|---|---|
| IP 分配 | 固定 IP / 固定 Pod IP | 动态分配,实例 IP 频繁变化 |
| 网络策略粒度 | 基于 IP / 安全组 / 子网 | 基于身份(ServiceAccount / 标签) |
| 服务发现 | DNS + 静态端点 | DNS + 动态端点 + 代理注入 |
| 冷启动网络开销 | 无(实例常驻) | 需分配 IP / 挂载网络接口,增加延迟 |
| 东西向流量 | 直连或 Service 转发 | 通常经 Sidecar 代理或 Service Mesh |
关键洞察: Serverless 网络模型的核心挑战在于“身份与位置解耦”。传统基于 IP 的访问控制不再可靠,必须转向基于身份(如 SPIFFE 身份、Kubernetes ServiceAccount)的策略模型。
1.3 课程目标与前置知识
课程目标
完成本课程后,学员将能够:
- 理解 Serverless 网络模型:掌握动态 IP、身份感知策略、服务网格集成等核心概念。
- 配置网络策略:在 Kubernetes + Knative 环境中编写 NetworkPolicy、配置 Istio 授权策略、管理入口网关。
- 优化网络性能:降低冷启动网络延迟、减少东西向流量开销、优化 DNS 解析与连接池。
- 诊断与排障:使用 tcpdump、eBPF、Kiali 等工具定位网络问题。
- 生产级实践:设计多租户隔离、跨集群通信、混合云网络方案。
前置知识要求
| 知识领域 | 具体要求 |
|---|---|
| Kubernetes 基础 | 熟悉 Pod、Service、Deployment、Namespace 概念;能使用 kubectl 操作集群 |
| 网络基础 | 理解 TCP/IP、DNS、HTTP/HTTPS、负载均衡基本原理 |
| 容器网络 | 了解 CNI 插件(Calico、Flannel)、Overlay 网络、网络策略基本语法 |
| Serverless 概念 | 了解函数计算、事件驱动、冷启动等基本概念(非必须,本课程会回顾) |
实验环境提示: 本课程所有网络策略配置和性能测试均可在本地 Minikube 或 Kind 集群中复现。建议准备至少 4 核 CPU、8GB 内存的机器,并安装 Docker、kubectl、Knative CLI(kn)和 Istio CLI(istioctl)。
课程章节路线
本课程共 30 章,分为五个模块:
- 模块一(第 1-5 章): Serverless 网络基础与集群搭建
- 模块二(第 6-12 章): 网络策略配置实战(NetworkPolicy、Istio 授权、入口网关)
- 模块三(第 13-20 章): 性能优化(冷启动、东西向流量、DNS、连接池)
- 模块四(第 21-26 章): 可观测性与排障(监控、日志、追踪、eBPF)
- 模块五(第 27-30 章): 生产级实践(多租户、跨集群、混合云、安全合规)