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 CLI 或 Bicep 模板启用 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。
- 与外部证书管理集成。
- 与现有的入口解决方案(如 NGINX、Contour 和应用程序路由)集成。
若要详细了解入口和 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 范围的全局列表。
- 该加载项不适用于使用基于 Istio 的 AKS 服务网格加载项的 AKS 群集。
- OSM 不支持 Windows Server 容器。