介绍
随着k8s在业界的普及应用中,它已成为容器编排和管理的标准,但在微服务架构中,服务之间的通信、流量管理、可观察性和安全性等方面仍然存在挑战。
istio服务网格是一种用于管理和连接微服务架构中服务之间通信的基础组件(集群内部通信),并且也可作为网关层接受外部流量,根据请求URI进行流量路由(集群外部请求),它包括服务发现、负载均衡、故障恢复、故障转移、链路调用监控等。服务网格通常还有更复杂的运维需求,比如 A/B 测试、金丝雀发布、速率限制、访问控制、端到端认证,本文章将详细介绍istio在k8s中如何控制服务间进行通信。
Istio架构图
- 数据平面 由一组智能代理(Envoy)组成,被部署为 Sidecar。这些代理负责协调和控制微服务之间的所有网络通信。它们还收集和报告所有网格流量的遥测数据。
- 控制平面 管理并配置代理来进行流量路由,控制整个服务网格的行为。控制平面的主要任务是定义、配置和监控服务之间的通信规则以及执行相关的策略。