服务网格 Service Mesh 背景和概念
所属分类 servicemesh
浏览量 534
微服务
SpringCloud
为解决微服务框架的侵入性问题,引入服务网格
服务网格 Service Mesh 下一代微服务
微服务演进 四个阶段
耦合阶段 单体架构
公共SDK 譬如SpringCloud 学习成本高、特定语言实现
Sidecar模式 功能解藕,跨语言 ,对业务服务零侵入, 完全隔离,为部署、升级便利,基础设施 与 业务逻辑 彻底解耦
Service Mesh 把 Sidecar 模式充分应用到微服务架构系统中,为每个应用服务配套部署一个 Sidecar 代理,完成服务间复杂的通信
网格代理 服务发现 负载均衡 监控 等
服务网格的核心价值
实现业务逻辑和非业务逻辑的分离
为下沉到基础设施提供可能 ,将微服务通信下沉到基础设施层,屏蔽了微服务处理各种通信问题的复杂度
帮助应用轻量化,专注业务
实现应用的云原生化 ,加速应用上云,实现云原生化
主要功能
流量控制
为应用提供智能路由(如 金丝雀发布 A/B 测试等)、超时重试、熔断、故障注入、流量镜像等各种控制能力
策略 可以为流量设置配额、黑白名单等策略
网络安全 提供服务间访问控制、 TLS加密通信
可观测性 指标、日志、追踪,给应用系统提供完整的监控能力
控制平面
控制和管理数据平面中的 Sidecar 代理,完成配置分发、服务发现、流量路由、授权鉴权等功能,对数据平面统一管理
数据平面
由整个网格内的 Sidecar 代理组成,以 Sidecar 的形式和应用服务一起部署
代理负责协调和控制应用服务之间的所有网络通信
每一个 Sidecar 会接管进入和离开服务的流量,并配合控制平面完成流量控制等方面的功能
Istio 是由 Google 、IBM 和 Lyft 发起的开源的服务网格框架 ,该项目在 2017 年推出
Istio 的数据平面默认使用 Envoy ,是基于 Envoy 新增了一些扩展( istio-proxy),C++ 编写
服务发现
健康检测
流量路由
负载均衡 超时、断路、重试等
身份验证和授权
在 istio-agent 与 istiod 配合下,对网络请求进行身份验证、权限验证, 使用 TLS 或其他机制对链路进行加密等
链路追踪
对于每个请求,生成详细的统计信息、日志记录和分布式追踪数据
自 Istio1.5 开始,控制平面由原来分散、独立部署的三个组件(Pilot、Citadel、Galley)整合为一个独立的 istiod,
变成一个单进程、多模块的组织形态 ,降低 部署复杂度
Pilot 负责 Istio 数据平面的 xDS 配置管理,具体包括服务发现、配置规则发现、xDS 配置下发
Citadel 负责安全证书的管理和发放,实现授权和认证等操作
Galley 负责配置的验证、提取和处理等功能,将 Istio 和底层平台(如Kubernetes)进行解耦
Citadel Galley 组件逐步弱化
Pilot 是 Istio 中的核心组件,用于管理和配置部署在特定 Istio 服务网格中的所有 Sidecar 代理实例
它管理 Sidecar 代理之间的路由流量规则,并配置故障恢复功能,如超时、重试和熔断等
关键模块
抽象模型(Abstract model)
实现对不同服务注册中心 (如 Kubernetes、Consul) 的支持,完成对不同输入来源数据的抽象,形成统一的存储格式。
平台适配器 (Platform adapters)
借助平台适配器 Pilot 实现服务注册中心数据到抽象模型之间的数据转换
xDS API
源于 Envoy 项目的标准数据平面 API, 将服务信息和流量规则下发到数据平面的 Sidecar
通过采用该标准 API, Istio 将控制平面和数据平面进行了解耦
为多种数据平面 Sidecar 实现提供了可能性
用户 API(User API)
提供了面向业务的高层抽象,可以被运维人员理解和使用
上一篇
下一篇
k8s的本质
1929年美国大萧条时期的若干现象
k8s容器编排基础概念
istio服务网格快速入门
centos7 离线安装 docker
实用的财经网站