在深入理解 Istio 之前,我们先了解一下 Service Mesh。Service Mesh 可以看作是微服务层的抽象,它介于网络层和具体服务之间,提供额外的功能,如流量控制、服务发现、安全认证等。传统代理通常为集中式,而 Service Mesh 则是分布式代理,常驻在应用身边,如 Kubernetes Sidecar 模式,每个应用 Pod 都运行代理,负责流量管理。
Service Mesh 的出现解决了微服务架构中复杂的服务间调用和管理问题。通过分布式的代理,实现了对微服务的定制化改进。此外,代理还具备额外的功能,如热更新、服务发现、降级熔断、认证授权、超时重试、日志监控等,统一管理这些功能可以显著简化开发和运维工作。
Istio 是 Service Mesh 实现的一种,它提供了丰富的功能,包括但不限于连接、安全、控制、观察等。Istio 通过代理(默认为 Envoy)进行服务间通信,支持多种网络协议。其控制中心(Pilot、Mixer、Citadel)实现进一步功能细分,如代理与控制中心的通信、服务间信息获取和 Metrics 数据汇报。