探索 Istio
学习目标
定义 Istio 解决方案
解释 Istio 的工作原理
了解 SAP BTP, Kyma runtime 如何使用 Istio
Istio 服务网格简介
你希望探索 Istio 的各种可能性。你听说 Istio 在流量管理、服务发现和安全等任务中很有用。此外,你还希望更好地理解这些任务,以及 Istio 如何帮助你解决它们。
什么是 Istio?
Istio 是一个扩展 Kubernetes 的开源服务网格解决方案。使用 Istio,你可以以更高效的方式保护、连接和监控你的服务。
Istio 服务网格还可以跨越多个集群、虚拟机以及其他不在 Kubernetes 上运行的组件。

由于 Istio 遵循服务网格范式,它包含一个控制平面和一个数据平面。Istio 控制平面不接触任何网络数据包或请求。相反,它配置数据平面来完成这些工作。数据平面是一组智能代理,用于拦截和控制微服务之间的所有网络通信。数据平面执行策略、收集遥测数据并路由请求。
Istio 如何工作?
如上所述,Istio 由控制平面和数据平面组成。数据平面是一组代理,用于拦截和控制服务网格中的网络通信。
在 Istio 服务网格中,使用多个代理来管控进入集群的流量(入口)、服务之间的流量(服务代理)以及离开集群的流量(出口)。服务代理通常以边车容器的形式部署在每个服务旁边。它们一起被打包到单个 Pod 中。服务到服务的通信在技术上是代理到代理的通信。
Istio 使用入口网关来管控进入集群的流量。入口网关是一个专用代理,部署在 istio-system 命名空间中。
要管控离开服务网格的流量,你可以直接通过边车代理完成,也可以使用出口网关。出口网关还可用于对离开服务网格的流量应用策略。Istio 使用 Envoy 代理作为服务代理。
一个关键点是,Istio 将其 API 作为自定义资源定义(CRD)安装在 Kubernetes 中,因此你可以使用 kubectl 等 Kubernetes 原生工具来管理 Istio 资源。
作为 Istio 模块一部分的 Istio
在 SAP BTP, Kyma runtime 中,Istio 由 Istio 模块安装。Istio 不仅可用于保护、连接和监控你的服务,Kyma 还为 Istio 提供了高级抽象。例如,当你使用 API Gateway 模块提供的 APIRule 公开你的工作负载时,VirtualService、AuthorizationPolicy 或 RequestAuthentication 等 Istio 资源也会在后台自动创建。
Istio 的组件安装在 istio-system 命名空间中。
小结
Istio 是一个扩展 Kubernetes 的开源服务网格解决方案。它由控制平面和数据平面组成。数据平面由以边车容器形式部署在服务旁边的边车代理组成,控制平面管理这些边车代理的配置。在 SAP BTP, Kyma runtime 中,Istio 模块会在你的集群中安装 Istio,并允许你使用 Istio 自定义资源对其进行管理。
进一步阅读
Istio
Envoy
Istio 模块
Istio 服务网格