Azure Kubernetes 服务 (AKS) 中的 Open Service Mesh (OSM) 加载项

Open Service Mesh (OSM) 是一种轻型、可扩展的云原生服务网格,可让你统一地管理、保护和获取高度动态微服务环境现成的可观测性功能。

OSM 在 Kubernetes 上运行基于 Envoy 的控制平面,并且可通过 SMI API 得到配置。 OSM 的工作原理是在每个应用程序实例中注入一个 Envoy 代理作为挎斗容器。 Envoy 代理包含并执行有关访问控制策略的规则,实现路由配置,并捕获指标。 控制平面会持续配置 Envoy 代理,以确保策略和传递规则是最新的,且代理处于正常状态。

OSM 项目由 Azure 发起,但现在由云原生计算基金会 (CNCF) 负责管理。

启用 OSM 加载项

通过使用 Azure CLIBicep 模板启用 OSM 加载项,可将 OSM 添加到 Azure Kubernetes 服务 (AKS) 群集中。 OSM 加载项提供与 AKS 集成的完全受支持的 OSM 安装。

重要

根据群集运行的 Kubernetes 版本,OSM 加载项会安装不同版本的 OSM。

Kubernetes 版本 安装的 OSM 版本
1.24.0 或更高版本 1.2.5
介于 1.23.5 和 1.24.0 之间 1.1.3
低于 1.23.5 1.0.0

如果相应的 AKS 版本已结束生命周期,则较旧版本的 OSM 可能无法安装或获得主动支持。 有关 AKS 版本支持窗口的信息,可以查看 AKS Kubernetes 发布日历

功能和特性

OSM 提供以下功能和特性:

  • 通过启用相互 TLS (mTLS) 来保护服务与服务之间的通信。
  • 使用 Envoy 挎斗代理自动注入,将应用程序加入到 OSM 网格中。
  • 以透明方式配置部署上的流量转移。
  • 为服务定义并执行细化的访问控制策略。
  • 使用对应用程序指标的观察和见解来监视和调试服务。
  • 加密群集中部署的服务终结点之间的通信。
  • 启用 HTTP/HTTPS 和 TCP 流量的流量授权。
  • 在 A/B 测试或 Canary 部署的两个或更多服务之间配置加权流量控制。
  • 从应用程序流量收集和查看 KPI。
  • 与外部证书管理集成。
  • 与现有的入口解决方案(如 NGINXContour应用程序路由)集成。

若要详细了解入口和 OSM,请参阅使用入口管理对群集内服务的外部访问将 OSM 与 Contour 集成实现入口。 请参阅使用Kubernetes Nginx 入口控制器执行入口,查看示例,了解如何使用 networking.k8s.io/v1 API 将 OSM 与入口控制器集成。 有关使用应用程序路由(自动与 OSM 集成)的更多详细信息,请参阅应用程序路由

限制

OSM AKS 外接程序具有以下限制:

  • 必须在安装后使用 kubectl patch 启用端口 IP 地址和端口范围排除的 Iptables 重定向。 有关详细信息,请参阅 Iptables 重定向
  • 任何需要访问 IMDS、Azure DNS 或 Kubernetes API 服务器的 Pod 须使用全局出站 IP 范围排除来将其 IP 地址添加到排除的出站 IP 范围的全局列表。
  • OSM 不支持 Windows Server 容器。

后续步骤

使用 Azure CLIBicep 模板启用 OSM 外接程序后,你可以: