news 2026/5/15 15:21:08

服务网格 —— Istio

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
服务网格 —— Istio

1. 什么是服务网格

服务网格(Service Mesh)是一个专门处理服务通讯的基础设施层。它的职责是在由云原生应用组成服务的复杂拓扑结构下进行可靠的请求传送。在实践中,它是一组和应用服务部署在一起的轻量级的网络代理,并且对应用服务透明。

服务网格中体系结构(架构)为控制平面 + 数据平面。控制平面负责与代理通信,下发策略和配置;数据平面就是直接处理入站和出站数据包,转发、路由、健康检查、负载均衡、认证、鉴权、产生监控数据等。

服务网格部署网络结构图如下图所示:

其中,绿色方块为应用服务,蓝色方块为Sidecar Proxy。应用服务之间通过Sidecar Proxy进行通信,图中所有蓝色部分就是形成的Service Mesh。

2. Istio介绍

Istio出自名门,是一个由Google和IBM等公司开源的,最初设计目标实在Kuberneters的基础上,以非侵入的方式为运行在集群中的微服务提供流量管理、安全加固、服务监控和策略管理等功能。

  • 流量管理

提供统一的流量治理功能,包括失败重试、超时、熔断/限流、路由管理、灰度发布、网关等功能。

  • 可观测性

透明化的实现指标监控、日志、链路追踪等功能。

  • 策略控制

实现访问控制系统、遥测捕获、配额管理和计费等。

  • 安全认证

无侵入式地为服务增加认证鉴权和加密通信的能力。

  • 故障注入

支持随机向服务通信中注入故障(如模拟延时/网络中断),检测服务的可靠性。

3. Istio架构

Istio在逻辑上分为控制平面和数据平面。

(1)控制平面

主要包括了Pilot、Mixer、Citadel和Galley共4个组件,主要功能是通过配置和管理Sidecar代理来进行流量控制,并配置Mixer去执行策略和收集遥测数据(Telemetry)。

(2)数据平面

由一组和业务服务成对出现的Sidecar 代理(Envoy)构成,它的主要功能是接管服务的进出流量,传递并控制服务和Mixer组件的所有网络通信。

Istio选择Envoy作为Sidecar代理,Envoy本质上是一个为面向服务的架构而设计的7层代理和通信总线。Envoy将流量的行为和数据提取出来发送给Mixer组件,用以进行监控。

Envoy在网络控制方面的主要功能为:HTTP七层路由、支持gRPC、HTTP/2、服务发现和动态配置,健康检查、高级负载均衡。

在Kubernetes环境中,同一个Pod内的不同容器间共享网络栈,这一特性使得Sidecar可以接管进出这些容器的网络流量,这就是Sidecar模式的实现基础。Envoy是目前Istio默认的数据平面,实际上因为Istio灵活的架构,完全可以选择其它兼容的产品作为Sidecar。目前很多服务网格产品都可以作为Istio的数据平面并提供集成。

  • Pilot

是Istio实现流量管理的核心组件,它主要的作用是配置和管理Envoy代理。比如:可以为代理之间设置特定的流量规则,或者配置超时、重试、熔断这样的弹性能力。Pilot会将控制流量行为的路由规则转换为Envoy的配置,并在运行时将它们广播到Envoy。另外,Pilot还能够把服务发现机制抽象出来并转换成API分发给Envoy,使得后者具有服务发现的能力。

Pilot从平台获取服务信息,完成服务发现,获取istio的各项配置,转换成Envoy大力可读的格式并分发。

  • Citadel

为服务之间提供认证和证书管理,可以让服务自动升级成TLS协议。

  • Galley

Galley是Istio的配置验证、提取、处理和分发组件。它负责将其余的Istio组件与从底层平台(例如Kubernetes)获取用户配置的细节隔离开来。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 15:17:24

别再手动对比了!用Beyond Compare 4在Ubuntu上5分钟搞定文件同步与合并

高效文件管理利器:Beyond Compare 4在Ubuntu中的深度应用指南 在当今快节奏的开发与运维工作中,文件比较与同步已成为日常工作中不可或缺的环节。无论是代码合并、配置同步还是日志分析,传统的手动对比方式不仅效率低下,还容易出错…

作者头像 李华
网站建设 2026/5/15 15:16:57

ChatGPT Prompt Splitter:智能文本分割工具解决大模型输入限制

1. 项目概述与核心痛点如果你经常和ChatGPT这类大语言模型打交道,肯定遇到过这个让人头疼的弹窗:“消息过长,请缩短文本”。无论是想让它分析一份冗长的技术文档、总结一篇学术论文,还是处理一段复杂的代码,这个字符限…

作者头像 李华