一、什么是OSM:开放服务网格

Open Service Mesh(OSM)是微软主导开源的轻量级 Kubernetes 服务网格参考实现,遵循 Service Mesh Interface(SMI)规范,使用 Envoy 作为数据面 sidecar,提供流量管理(路由、负载均衡、熔断、灰度)、安全(mTLS 加密、证书轮转、访问控制)、可观测性(Metrics、日志、Tracing)和策略治理(基于 SMI 与 Open Policy Agent)等核心服务网格能力。OSM 强调「简单、可靠、易于上手」,对标 Istio、Linkerd 等主流服务网格,但通过 SMI 标准化让多网格间可移植。2021 年捐赠给 CNCF,2023 年项目进入归档阶段,但其理念被后续服务网格项目(如 SMI、Linkerd、Istio Ambient Mesh)延续。
二、原理
1. 注入 Sidecar:Mesh Controller 监听 Namespace 注解,自动给业务 Pod 注入 Envoy sidecar → 2. mTLS 加密通信:Sidecar 自动签发/轮转 SPIFFE 身份证书,建立双向 TLS 加密通道 → 3. 流量管理:基于 SMI TrafficSplit / TrafficAccess / TrafficTarget 等 CRD 实现蓝绿、金丝雀、A/B 测试 → 4. 策略执行:结合 Open Policy Agent(OPA)对网格内流量做细粒度访问控制 → 5. 可观测性:聚合 Envoy 的 Metrics(日志、Tracing、Prometheus 指标)输出到 Grafana/Jaeger → 6. 控制面与数据面分离:OSM Controller 作为控制面,Envoy 作为数据面,遵循 SMI 跨实现可移植
三、信息卡片
| 中文名 | 开放服务网格 |
| 英文名 | Open Service Mesh |
| 缩写 | OSM |
| 别名 | 开放服务网格、Microsoft OSM、OSM Service Mesh |
| 提出者 | 微软(Microsoft) |
| 提出时间 | 2020 年 8 月(首次开源),2021 年捐赠 CNCF |
| 所属类别 | IT 基础架构与开发 > 云原生网络 > Kubernetes 服务网格 |
| 核心技术 | Envoy Sidecar、SMI(Service Mesh Interface)、mTLS、流量拆分、OPA 集成、Pipy/Contour 数据面 |
| 主要应用 | K8s 服务网格、SMI 标准参考实现、零信任网络、灰度发布、可观测性 |
四、历史时间线
2020 年 8 月:微软在 KubeCon 宣布开源 Open Service Mesh,作为 SMI(Service Mesh Interface)的参考实现
- 2020 年底:v0.x 发布,使用 Envoy 作为数据面 sidecar,对接 SMI 与 Prometheus/Grafana
- 2021 年 3 月:OSM 捐赠给 CNCF,成为 CNCF Sandbox 项目
- 2021-2022 年:陆续发布 v1.x,引入证书签发自动化、流量拆分(TrafficSplit)与 OPA 集成
- 2022-2023 年:探索 Pipy 数据面与 Contour 集成,但社区活跃度低于 Istio/Linkerd
- 2023 年:CNCF 宣布 OSM 项目归档(Archived),社区资源转向 Linkerd、Istio Ambient Mesh 等更活跃项目
五、分类
按架构:Sidecar 模式(OSM、Istio、Linkerd)vs Sidecar-less(Istio Ambient Mesh、Cilium Service Mesh)
- 按数据面:Envoy(OSM、Istio)vs Linkerd2-proxy(Linkerd)vs 自研 Pipy(OSM 实验)
- 按标准:SMI 兼容(OSM)vs Istio API / Gateway API(Istio / Linkerd)
- 按厂商:微软(OSM)vs Solo.io(Istio)vs Buoyant(Linkerd)
- 按生命周期状态:活跃(Istio、Linkerd、Cilium)vs 归档(OSM)
六、应用场景
- K8s 服务网格参考实现:作为 SMI 标准的参考实现,帮助用户理解服务网格核心抽象
- 零信任网络:通过自动 mTLS 与 SPIFFE 身份为 K8s 工作负载建立零信任通信
- 灰度发布与蓝绿:基于 SMI TrafficSplit 实现按权重切流,支持金丝雀、A/B 发布
- 可观测性统一面:聚合各服务的 Metrics/Tracing/Logs,提供统一的网格级可视化
- 策略治理:与 OPA 集成实现跨服务访问控制、速率限制等高级策略
七、优缺点
- 优点:
- 遵循 SMI 标准:API 与配置可在多网格间可移植,避免厂商锁定
- 架构简单清晰:相比 Istio 更轻量,易于上手与运维
- 微软生态集成:与 Azure Kubernetes Service、Azure Arc 深度集成
- Envoy 数据面:复用 Envoy 成熟生态(Filter、xDS、WASM)
- 缺点:
- 项目已归档:2023 年 CNCF 决定 OSM 进入归档状态,新功能停滞、不建议新项目采用
- 社区活跃度低于 Istio/Linkerd:周边工具、问题响应、文档更新较慢
- 生态规模有限:第三方扩展、Operator、商业支持相对较少
八、常见误区
OSM = Istio 微软版(错:OSM 独立设计、遵循 SMI 而非 Istio API;只是数据面用了 Envoy)
- OSM 仍是首选网格(错:OSM 已归档,新项目应选 Istio、Linkerd、Cilium Service Mesh 等活跃项目)
- 服务网格 = Sidecar(错:Ambient Mesh、Cilium 等无 Sidecar 模式正在改变网格形态)
九、关联概念
- 父概念:Service Mesh · 服务网格、Kubernetes · 容器编排
- 子概念:Envoy、Service Mesh · 服务网格、Sidecar · 边车模式、Kubernetes Gateway API
- 兄弟概念:Istio、Linkerd、Service Mesh 演进 Ambient Mesh、Cilium
- 对比概念:OSM vs Istio、OSM vs Linkerd、OSM vs Cilium
- 应用相关:Kubernetes · 容器编排、Service Mesh · 服务网格、零信任 Zero Trust、Observability · 可观测性