istio 原理简介

简介: Istio 的架构分为控制平面和数据平面数据平面:由一组智能代理(Envoy)以 sidecar 模式部署,协调和控制所有服务之间的网络通信。控制平面:负责管理和配置代理路由流量,以及在运行时执行的政策。

前导


由于 istio 自 1.5 版本以后架构上有了较大变化,控制面从多组件变成了单体的 istiod 组件,所以下文会先介绍 1.5 之前的架构,再介绍 1.5 之后的,是一个由繁到简的过程。


istio 1.5 之前架构


51.jpg


Istio 的架构分为控制平面和数据平面


  • 数据平面:由一组智能代理(Envoy)以 sidecar 模式部署,协调和控制所有服务之间的网络通信。
  • 控制平面:负责管理和配置代理路由流量,以及在运行时执行的政策。


52.jpg


可以看到控制面(control plane )组件众多,下图是 1.1 版本所包含的组件:


53.jpg


istio 工作原理


我们先按照 1.5 版本之前的架构描述


Sidecar  注入 (envoy)


54.jpg


详细的注入过程可以参考:https://blog.yingchi.io/posts/2020/6/istio-sidecar-injection.html


55.jpg


连接 (pilot)


56.jpg


控制 && 观测 (mixer telemetry、mixer policy)


57.jpg


保护(citadel)


58.jpg


配置


Galley 原来仅负责进行配置验证,1.1 后升级为整个控制面的配置管理中心,除了继续提供配置验证功能外,Galley 还负责配置的管理和分发,Galley 使用 网格配置协议 (Mesh Configuration Protocol) 和其他组件进行配置的交互。

提供 istio 中的配置管理服务,验证 Istio 的 CRD 资源的合法性


istio 各组件功能及作用


  • istio-polit: 服务发现,向数据平面下发规则,包括 VirtualService、DestinationRule、Gateway、ServicEntry 等流量治理规则,也包括认证授权等安全规则。
  • istio-telemetry: 专门收集遥测数据的 mixer 服务组件。
  • Istio-policy: 另外一个 mixer 服务,可以对接如配额、授权、黑白名单等不同的控制后端,对服务间的访问进行控制。
  • Istio-citadel: 核心安全组件,提供了自动生成、分发、轮换与撤销秘钥和证书的功能。
  • Istio-galley: 配置管理的组件,验证配置信息的格式和内容的正确性,并将这些配置信息提供给管理面的 Pilot 和 Mixer 使用。
  • Istio-sidecar-injector: 负责自动注入的组件。
  • Istio-proxy: 数据面的轻量代理。
  • Istio-ingressgateway: 入口处的 gateway。


istio 1.5 之后架构


59.jpg


之前版本的 istio 对组件进行了很好的解耦,组件们各司其职,当然也带来了组件比较多的问题。可以看到新版本将众多组件包装在了一起叫  istiod,所以新版本 istio 核心组件就只剩下一个:istiod。


相关文章
|
6月前
|
缓存 监控 安全
Istio架构及工作原理
【2月更文挑战第17天】从 Istio 的设计和实现原理可以看出,它是采用模块化设计,并且各个模块之间高度解耦,Proxy 专注于负责服务之间的通信,Pilot 专注于流量控制,Mixer 专注于策略控制以及监控日志功能,而 Citadel 专注于安全。
|
Kubernetes 前端开发 测试技术
Rainbond 对接 Istio 原理讲解和代码实现分析
现有的 ServiceMesh 框架有很多,如 Istio、linkerd等。对于用户而言,在测试环境下,需要达到的效果是快、开箱即用。但在生产环境下,可能又有熔断、延时注入等需求。那么单一的 ServiceMesh 框架无法同时满足用户不同的需求。 在之前的 Rainbond 版本中,Rainbond 支持了多种不同的应用治理模式,作为应用级的插件,实现了Istio 治理模式的切换。 本文将对Rainbond 实现Istio治理模式进行原理解析。
Rainbond 对接 Istio 原理讲解和代码实现分析
|
7天前
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
25 2
|
30天前
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
48 8
|
1月前
|
Kubernetes 负载均衡 安全
Istio在微服务中释放服务网格的力量
Istio在微服务中释放服务网格的力量
48 4
|
3月前
|
负载均衡 监控 安全
Istio:微服务治理的超级英雄,一键解锁你的服务网格超能力,让管理复杂变简单!
【8月更文挑战第31天】随着云原生技术的发展,微服务架构成为主流,但其复杂性与管理难题也随之增加。Istio作为开源服务网格平台,通过独特的数据平面和控制平面设计,实现了微服务通信的透明管理,简化了治理复杂度。本文将对比Istio与传统微服务管理方法,详细介绍Istio的架构及其工作原理,包括Envoy代理、服务发现、负载均衡、流量管理、安全认证以及监控等功能。Istio不仅简化了微服务治理,还提供了强大的流量控制和安全机制,使开发者能更高效地管理应用。
69 2
|
3月前
|
开发者 项目管理 开发工具
震惊!单人开发者如何成功过渡到团队协作?Xamarin 项目管理经验大揭秘,让你的开发之路一帆风顺!
【8月更文挑战第31天】Xamarin 是移动应用开发领域的热门跨平台工具,适用于个人开发者及团队。个人开发时需明确需求、运用版本控制(如 Git)并合理规划项目结构以增强代码可维护性。团队协作时,则需建立有效沟通渠道、统一代码规范、严格版本控制及合理分配任务,以提升开发效率与项目质量。
58 1
|
3月前
|
Kubernetes 安全 微服务
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
在5G电信领域,Kubernetes集群中部署微服务至关重要,但也带来了重大的安全挑战。Istio作为一个强大的开源服务网格,能有效地管理这些微服务间的通信,通过其控制平面自动将Sidecar代理注入到各微服务Pod中,确保了安全且高效的通信。Istio的架构由数据平面和控制平面组成,其中Sidecar代理作为Envoy代理运行在每个Pod中,拦截并管理网络流量。此外,Istio支持多种Kubernetes发行版和服务,如EKS等,不仅增强了安全性,还提高了应用性能和可观测性。
73 0
使用 Istio 缓解电信 5G IoT 微服务 Pod 架构的安全挑战
|
5月前
|
Kubernetes 监控 负载均衡
Istio:微服务开发的终极利器,你还在为繁琐的通信和部署流程烦恼吗?
本文介绍了服务网格(Service Mesh)的概念及其在微服务架构中的重要性。微服务强调围绕业务构建团队和去中心化的数据管理,带来更高的灵活性和扩展性。然而,随着服务数量增加,网络通信成为挑战,包括服务发现、路由和安全等问题。 Service Mesh如Istio应运而生,通过边车代理解决服务间通信,提供服务发现、负载均衡、智能路由、安全和监控等功能。它与Kubernetes结合,增强了容器环境的服务管理能力。Istio的bookinfo示例展示了其在多语言微服务中的应用,简化了代码中的服务调用逻辑,使开发更专注于业务本身。
651 3
Istio:微服务开发的终极利器,你还在为繁琐的通信和部署流程烦恼吗?
|
Dubbo Java 应用服务中间件
开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比
1082 10