服务网格Service Mesh和Istio

总结:服务网格(Service Mesh) 一、介绍 服务网格(Service Mesh)是一个专门处理服务通讯的基础设施层。它的职责是在由云原生应用组成服务的复杂拓扑结构下进行可靠的请求传送。在实践中,它是一组和应用服务部署在一起的轻量级的网络代理,并且对应用服务透明。 服务网格从总体架构上来讲比较简单,不过是一堆紧挨着各项服务的用户代理,外加一组任务管理组件组成。 管理组件被称为控制层或控制平面(control plane),负责与控制平面中的代理通信,下发策略和配置。 代理在服务网格中被称为数据层或数据平面(data plane),直接 阅读详情

服务网格(Service Mesh)

服务网格是一种用于处理微服务架构中服务间通信的网络基础架构。它通过在应用程序的每个服务之间插入代理(通常称为Sidecar代理),来实现服务间通信的控制和管理。这种方式将通信逻辑从应用程序代码中解耦出来,使得开发人员可以专注于业务逻辑而无需担心网络通信的复杂性。

在服务网格中,代理负责管理流量、执行负载均衡、实现故障处理和实现安全策略。这些代理形成了一个网格,因此被称为“服务网格”。

服务网格技术的优势在于它提供了诸如请求重试、超时处理、流量控制、A/B测试等功能,这些功能在大规模微服务架构中尤为重要。此外,服务网格还提供了可观测性和监控的能力,使得开发团队可以更好地理解和调试整个应用程序的运行状况。

Service Mesh主要解决的问题就希望开发人员对于业务的聚焦,对于开发人员透明,可以更加专注业务逻辑的实现而不必关注非业务功能。

市场上三种服务网格解决方案

目前,Linkerd、Istio和Envoy是市场上三种受欢迎的服务网格解决方案。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

轻量级易上手功能丰富部署难度高性能
Linkerd轻量功能相对较少容易一般
Istio学习成本高功能丰富、基于Envoy可扩展难高
Envoy学习成本高功能丰富、可扩展难高

在功能、性能、部署难度和社区支持等方面,Istio、Linkerd和Envoy各有优势和局限性。对于大规模和复杂的应用场景,Istio可能是一个更好的选择,因为它提供了丰富的功能和强大的扩展性。Istio的功能涵盖了流量管理、策略制定、故障注入等方面,适用于复杂的微服务架构。并且,Istio有着庞大的社区支持,可以获取到大量的文档、教程和问题解答,有利于开发人员学习和使用。

对于小规模的应用或资源受限的环境,Linkerd可能更合适,因为它轻量且易于部署。Linkerd作为一款轻量级的服务网格解决方案,以其简单的部署和对边车模式的支持而备受欢迎。虽然其功能相对较少,但在边车模式下可以无侵入地集成到现有的应用程序中。

对于性能要求较高的场景,Envoy可能是更好的选择。Envoy作为一款高性能的代理和通信中间件,被广泛用于服务网格架构。它具备出色的性能和可扩展性,适用于对性能要求较高的场景。

在选择合适的服务网格解决方案时,开发团队应该综合考虑应用的规模、复杂性、性能需求和团队的技术水平,并根据实际情况做出明智的选择。没有一种解决方案适用于所有场景,因此需要根据具体需求来进行权衡和取舍。

原文链接:https://blog.youkuaiyun.com/qq_44866828/article/details/131928692

服务网格的特征

现在,让我们了解服务网格可以为我们提供的一些功能。请注意,实际功能列表取决于服务网格的实现。但是,总的来说,我们应该在所有实现中都期望其中大多数功能。

我们可以将这些功能大致分为三类:流量管理,安全性和可观察性。

流量管理

服务网格的基本特征之一是流量管理。这包括动态服务发现和路由。尤其影子流量和流量拆分功能,这些对于实现金丝雀发布和A/B测试非常有用。

由于所有服务之间的通信都是由服务网格处理的,因此它还启用了一些可靠性功能。例如,服务网格可以提供重试,超时,速率限制和断路器。这些现成的故障恢复功能使通信更加可靠。

安全性

服务网格通常还处理服务到服务通信的安全性方面。这包括通过双向TLS(mTLS)强制进行流量加密,通过证书验证提供身份验证以及通过访问策略确保授权。

服务网格中还可能存在一些有趣的安全用例。例如,我们可以实现网络分段,从而允许某些服务进行通信而禁止其他服务。而且,服务网格可以为审核需求提供精确的历史信息。

可观察性

强大的可观察性是处理分布式系统复杂性的基本要求。由于服务网格可以处理所有通信,因此正确放置了它可以提供可观察性的功能。例如,它可以提供有关分布式追踪的信息。

服务网格可以生成许多指标,例如延迟,流量,错误和饱和度。此外,服务网格还可以生成访问日志,为每个请求提供完整记录。这些对于理解单个服务以及整个系统的行为非常有用。

Istio简介

Istio是最初由IBM,Google和Lyft开发的服务网格的开源实现。它可以透明地分层到分布式应用程序上,并提供服务网格的所有优点,例如流量管理,安全性和可观察性。

它旨在与各种部署配合使用,例如本地部署,云托管,Kubernetes容器以及虚拟机上运行的服务程序。尽管Istio与平台无关,但它经常与Kubernetes平台上部署的微服务一起使用。

从根本上讲,Istio的工作原理是以Sidcar的形式将Envoy的扩展版本作为代理布署到每个微服务中:

在这里插入图片描述

实际上Istio 就是 Service Mesh 架构的一种实现,服务之间的通信(比如这里的 Service A 访问 Service B)会通过代理(默认是 Envoy)来进行。

而且中间的网络协议支持 HTTP/1.1,HTTP/2,gRPC 或者 TCP,可以说覆盖了主流的通信协议。代理这一层,称之为数据平面。

控制平面做了进一步的细分,分成了 Pilot、Citadel 和 Galley,它们的各自功能如下:

  • Pilot:为 Envoy 提供了服务发现,流量管理和智能路由(AB 测试、金丝雀发布等),以及错误处理(超时、重试、熔断)功能。
  • Citadel:为服务之间提供认证和证书管理,可以让服务自动升级成 TLS 协议。
  • Galley:Galley 是 Istio 的配置验证、提取、处理和分发组件。它负责将其余的 Istio 组件与从底层平台(例如 Kubernetes)获取用户配置的细节隔离开来。

数据平面会和控制平面通信,一方面可以获取需要的服务之间的信息,另一方面也可以汇报服务调用的 Metrics 数据。

Istio提供了什么功能服务 ?

通过负载均衡、服务间的身份验证、监控等方法,Istio 可以轻松地创建一个已经部署了服务的网络,而服务的代码只需很少更改甚至无需更改。通过在整个环境中部署一个特殊的 sidecar 代理为服务添加 Istio 的支持,而代理会拦截微服务之间的所有网络通信,然后使用其控制平面的功能来配置和管理 Istio,这包括:

  • 为 HTTP、gRPC、WebSocket 和 TCP 流量自动负载均衡。

  • 通过丰富的路由规则、重试、故障转移和故障注入对流量行为进行细粒度控制。

  • 可插拔的策略层和配置 API,支持访问控制、速率限制和配额。

  • 集群内(包括集群的入口和出口)所有流量的自动化度量、日志记录和追踪。

  • 在具有强大的基于身份验证和授权的集群中实现安全的服务间通信。

Istio 为可扩展性而设计,可以满足不同的部署需求。

原文链接:https://blog.youkuaiyun.com/bxg_kyjgs/article/details/125599452

Istio体系结构由数据平面和控制平面组成。此外,还有几个使Istio起作用的核心组件。

Istio 核心特性

Istio 以统一的方式提供了许多跨服务网络的关键功能。

流量管理

Istio 简单的规则配置和流量路由允许您控制服务之间的流量和 API 调用过程。

Istio 简化了服务级属性(如熔断器、超时和重试)的配置,并且让它轻而易举的执行重要的任务(如 A/B 测试、金丝雀发布和按流量百分比划分的分阶段发布)。

有了更好的对流量的可视性和开箱即用的故障恢复特性,就可以在问题产生之前捕获它们,无论面对什么情况都可以使调用更可靠,网络更健壮。

安全

Istio 的安全特性解放了开发人员,使其只需要专注于应用程序级别的安全。

Istio 提供了底层的安全通信通道,并为大规模的服务通信管理认证、授权和加密。有了 Istio,服务通信在默认情况下就是受保护的,可以让您在跨不同协议和运行时的情况下实施一致的策略——而所有这些都只需要很少甚至不需要修改应用程序。

Istio 是独立于平台的,可以与 Kubernetes(或基础设施)的网络策略一起使用。但它更强大,能够在网络和应用层面保护pod到 pod 或者服务到服务之间的通信。

可观察性

Istio 健壮的追踪、监控和日志特性让您能够深入的了解服务网格部署。

通过 Istio 的监控能力,可以真正的了解到服务的性能是如何影响上游和下游的;而它的定制 Dashboard 提供了对所有服务性能的可视化能力,并让您看到它如何影响其他进程。

Istio 的 Mixer 组件负责策略控制和遥测数据收集。它提供了后端抽象和中介,将一部分 Istio 与后端的基础设施实现细节隔离开来,并为运维人员提供了对网格与后端基础实施之间交互的细粒度控制。

所有这些特性都使您能够更有效地设置、监控和加强服务的 SLO。当然,底线是您可以快速有效地检测到并修复出现的问题。

平台支持

Istio 独立于平台,被设计为可以在各种环境中运行,包括跨云、内部环境、Kubernetes、Mesos 等等。您可以在 Kubernetes 或是装有 Consul 的 Nomad 环境上部署 Istio。Istio 目前支持:

  • Kubernetes 上的服务部署

  • 基于 Consul 的服务注册

  • 服务运行在独立的虚拟机上

Istio运行在kubernetes平台是最佳的选择,所以我们先搭建kubernetes环境。

什么是服务网格service-mesh? 服务网格service-mesh作为云原生cloudNative领域最炙手可热的领域,已经被绝大多数云厂商如GCE,AWS,AliCloud等广泛使用。服务网格为大规模复杂度极高的云原生服务提供了专有的基础设施层,减轻了业务人员的非业务投入压力。但是service-mesh本身引入的概念难以理解,技术复杂度很高,并且大多数从业者在实际项目中,连云原生技术都很少使用到,更不要说基于云原生的service-mesh技术。 ... 阅读详情

相关推荐

有了微服务和云原生,为什么还要懂Service Mesh?

Service Mesh技术作为新一代微服务架构,有效的解决了当前微服务架构和治理过程中的痛点问题,一经推出便引起很大的反响,近两年持续成为架构领域的热点。特别是Google联合Lyft等公司推出的Istio,架构优雅,功能强大,迅速成为Service Mesh领域的明星项目。 什么是Service Mesh 作为Service Mesh技术探索和实践的先行者,全球第一个真正的Se...

xingduan5153的博客 1429

【服务网格】Service Mesh 是什么?为我们解决了什么问题?

服务网格是一个基础设施层,用于处理服务间通信。云原生应用有着复杂的服务拓扑,服务网格保证请求在这些拓扑中可靠地穿梭。在实际应用当中,服务网格通常是由一系列轻量级的网络代理组成的,它们与应用程序部署在一起,但对应用程序透明。Istio 负载测试网格包含了 1000 个服务和 2000 个 sidecar,全网格范围内,QPS 为 70,000。在使用 Istio 1.5.1 运行测试后,我们得到了如下结果:通过代理的 QPS 有 1000 时,Envoy 使用了 0.5 vCPU 和 50 MB 内存。

DreamSun的博客 6599

Service Mesh k8s容器化-服务网格 Istio

Service Mesh k8s容器化-服务网格 Istio

qq_40178286的博客 856

微服务之-ServiceMesh

今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础。作为架构师,如果你现在还不了解ServiceMesh的话,是否感觉有点落伍了? 那么到底什么是ServiceMesh?它诞生的背景是什么?它解决什么问题?企业是否适合引入ServiceMesh?根据近年在一线互联网企业的实践和思考,从个人视角出发,我为大家一一解答这些问题。 微服务架构的核心技术问题 在业务规模化和研发效能提升...

wangpeng322的博客 2063

【Kubernetes】服务网格Service Mesh istio 初步涉猎

服务网格是用于处理服务间通信的专用基础设施层,它负责通过包含现代云原生应用程序的复杂服务拓扑来可靠地传递请求。实际上,服务网格通常通过一组轻量级网络代理来实现,这些代理与应用程序代码一起部署,而不需要感知应用程序本身。

九师兄 277

GPU运维面试题

【代码】GPU运维面试题。

u011220233的博客 695

TGIK服务网格对比:Istio、Linkerd、Open Service Mesh实战分析

如果你正在寻找**Kubernetes服务网格**的最佳选择,那么你来对地方了!TGIK(TGI Kubernetes)作为专业的Kubernetes技术视频系列,深入探讨了三大主流服务网格解决方案:Istio、Linkerd和Open Service Mesh。本文将为你提供完整的**服务网格实战对比分析**,帮助你在微服务架构中做出明智的技术选型决策。 ## 📊 服务网格:现代微服务架构的

gitblog_00892的博客 1053

cmw500 lte非信令测试_WiFi信令测试在研发过程中的作用

  1、关于信令测试的故事  2016年的某天,某著名网络产品公司技术负责人致电寻求技术支持:我们的无线路由器遇到了一个困惑:我们某款路由器应用于实际WiFi网络中时,WiFi终端接入非常困难。但是我们使用测试工具检测此路由器,它的所有物理射频指标都非常优异。不知道是为什么?  我来到了测试现场看到:WiFi路由器受控于芯片公司的测试工具,其WiFi发射机指标在非信令测试仪上显示:无论功率、EVM...

weixin_39662263的博客 3924

istio-service-mesh-workshop:深入理解服务网格概念

istio-service-mesh-workshop:深入理解服务网格概念 项目介绍 在现代云原生架构中,服务网格(Service Mesh)作为一个重要的基础设施组件,日益受到开发者和运维人员的关注。istio-service-mesh-workshop 是一个开源工作坊项目,旨在通过 Istio 这个服务网格的开源解决方案,教授服务网格的核心概念和实践技能。该项目由 Layer5 社区创建,...

gitblog_00245的博客 1032

ESP8266+ITR8307实战:如何用反射式光电管实现5cm远距离检测(附避坑指南)

本文详细介绍了如何利用ESP8266的ADC功能与ITR8307反射式光电管,通过调制解调、硬件电路优化及软件同步采样策略,实现5cm稳定远距离检测。文章提供了完整的硬件设计、代码实现与调优避坑指南,有效解决了环境光干扰与信号衰减难题,适用于智能车、自动化等需要可靠非接触检测的项目。

rgv234567的博客 262

Ubuntu声卡检测与故障排查:从基础命令到驱动修复

本文详细介绍了在Ubuntu系统中进行声卡检测与故障排查的完整流程。从使用lspci、aplay等基础命令识别硬件,到排查驱动冲突、修复权限问题,再到调整PulseAudio高级配置,提供了一套系统性的解决方案。文章结合实战案例,帮助用户快速诊断并解决Ubuntu系统常见的“无声”问题,恢复音频功能。

g2h3i4j5的博客 228

Spring Cloud与Service Mesh集成:Istio服务网格实践

Spring Cloud是基于Spring Boot构建的微服务框架,提供了服务发现、配置管理、断路器、API网关等功能组件。Service Mesh则是一个基础设施层,用于处理服务间通信,提供服务发现、负载均衡、流量管理、安全通信等能力。Istio是目前最流行的开源Service Mesh实现之一,它通过控制平面和数据平面的结构,为微服务提供了全方位的治理能力,而无需修改应用代码。Spring Cloud与Service Mesh并非竞争关系,而是可以协同工作的技术栈。

程序媛学姐的博客 2230

在ros里给机械臂加上夹爪和底盘后,控制真实机械臂

使用ur3_bringup 可以连接真实机械臂 使用官方的ur3_moveit_planning_execution.launch 可以对机械臂 moveit规划。 但是只有机械臂,没有夹爪。 官方如图: 我把原来的ur3_moveit_config 复制出来,修改 然后把ur3.xacro 等模型文件复制出来修改,修改完之后,有了夹爪,有了底盘。 规划组什么的使用moveit setup assistant 配置过了。 在rviz中可以笛卡尔空间规划了。 ...

超级菜 2715

Java后端服务网格技术:Istio与Service Mesh

服务网格(Service Mesh)技术应运而生,它提供了一种新的方式来管理微服务间的通信。Istio是当前最流行的服务网格框架之一,它为微服务架构提供了流量管理、安全加固、可观察性等功能。服务网格是一个专注于服务间通信的基础设施层,它将服务间通信的逻辑抽象出来,通过代理(如Istio中的Envoy)来实现。Istio作为服务网格技术的代表,为微服务架构提供了强大的流量管理、安全加固和可观察性功能。Istio提供了丰富的流量管理功能,如路由规则、流量镜像、流量拦截等。,10%的流量将被路由到版本。

微赚淘客开发者博客 754

Qt6安装保姆级教程:从国内镜像下载到配置避坑指南(附清华/中科大源)

本文提供详细的Qt6安装与配置指南,重点介绍如何利用清华大学、中国科学技术大学等国内镜像源解决下载速度慢的问题。内容涵盖在线安装器获取、组件选择策略、环境变量配置以及常见编译与部署问题的排查方法,旨在帮助国内开发者高效、顺畅地完成Qt6开发环境搭建。

weixin_29281915的博客 633

【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)

初始环境安装。

废人一枚的博客 5079

Istio 什么是服务网格(Service Mesh)

Istio 理解引言Istio 注入Istio 注入k8s 前Istio 注入k8s 前后Istio 理解 引言 简单说说我对Istio的理解,因为Istio东西较多,如果写文章,我没有那么多的耐心,所以简单写一下理解吧。 Istio 注入 Istio 注入k8s 前 Istio支持consule和k8s 通过istioctl manifest apply --set profile=demo(default)等 来安装。 在使用istioctl kube-inject后,事实上会在一个Pod中启动3个

Doub1's Blog 1289

阿里九宫格验证码 (Baxia SecCaptcha) 逆向工程与自动化求解

实现对阿里巴夏 (Baxia) 九宫格点击验证码的全自动求解模式说明依赖浏览器模式通过 Puppeteer/Playwright 控制真实浏览器,享有完整 DOM/Canvas/WASM 环境需要 Chrome/Chromium纯算模式脱离浏览器,通过 HTTP API + Node.js WASM 解密完成求解无需浏览器。

猫敷雪 375

SOFABoot 服务网格:终极 Istio 与 Service Mesh 集成指南

SOFABoot 是蚂蚁集团开源的基于 Spring Boot 的研发框架,它为分布式服务系统提供了强大的服务网格集成能力。在微服务架构快速发展的今天,SOFABoot 与 Istio 的无缝整合为开发者带来了前所未有的便利。🚀 ## 什么是 SOFABoot 服务网格? SOFABoot 服务网格集成让开发者能够轻松地将应用接入 Istio 服务网格环境。通过 MeshConfigurat

gitblog_00997的博客 818

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

istio简介和基础组件原理(服务网格Service Mesh)

Istio简介 Istio:一个连接,管理和保护微服务的开放平台。 按照isito文档中给出的定义: Istio提供一种简单的方式来建立已部署的服务的网络,具备负载均衡,服务到服务认证,监控等等功能,而不需要改动任何服务代码。简单的说,有了Istio,你的服务就不再需要任何微服务开发框架(典型如Spring Cloud,Dubbo),也不再需要自己手动实现各种复杂的服务...

7万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Service Mesh服务网格新生代--Istio

Service Mesh新秀,初出茅庐便声势浩荡,前有Google,IBM和Lyft倾情奉献,后有业界大佬俯首膜拜,这就是今天将要介绍的主角,扛起Service Mesh大旗,掀起新一轮微服务开发浪潮的Istio! 讲师简介: 敖小剑,十五年软件开发经验,微服务专家,专注于基础架构,cloud native拥护者,敏捷实践者。曾在亚信,爱立信,唯品会和ppmoney任职, 现任数人云资深架构师...

精进编程の博客 821

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

istio简介(服务网格Service Mesh)

​Istio提供一种简单的方式来建立已部署的服务的网络,具备负载均衡,服务到服务认证,监控等等功能,而不需要改动任何服务代码。简单的说,有了Istio,你的服务就不再需要任何微服务开发框架(典型如Spring Cloud,Dubbo),也不再需要自己手动实现各种复杂的服务治理功能(很多是Spring Cloud和Dubbo也不能提供的,需要自己动手)。只要服务的客户端和服务端可以进行简单的直接网络访问,就可以通过将网络层委托Istio,从而获得一系列的完备功能。......

东境物语 1678

k8s, service mesh服务网格 istio 安装使用

2. 安装成功后,查看istio的pod 3. 创建一个命名空间,后面所有操作均在该命名空间下操作 1.1 环境测试 1. 启动一个nginx作为服务的目标,并构建/,/buy,/order,/err 接口分别用于不同场景的测试 2. 下面创建Gateway 和 VirtualService 3. 通过下面指令可以查看ingressgateway的日志情况 2.0 VirtualService 流量管理 1. Istio 中的 VirtualServi

m0_73299471的博客 1143

Service Mesh服务网格新生代——Istio

Istio 是什么?使用云平台可以为组织提供丰富的好处。然而,不可否认的是,采用云可能会给 DevOps 团队带来压力。开发人员必须使用微服务已满足应用的可移植性,同时运营商管理了极其庞大的混合和多云部署。Istio 允许您连接、保护、控制和观测服务。 在较高的层次上,Istio 有助于降低这些部署的复杂性,并减轻开发团队的压力。它是一个完全开源的服务网格,可以透明地分层到现有的分布式应用程序上...

weixin_30699465的博客 119

网络设备配置备份怎么做:Oxidized 从规划到上线的实用指南

Oxidized 是一个网络设备配置备份工具,定时登录设备拉取运行配置,写进 Git 仓库,保留每次变更的历史。它支持 130 多种操作系统类型,适合有几十到几千台设备、想要版本化配置和审计追踪的运维团队。 ## 🧭 动手前先想清楚 先别装软件,三个问题定下来,后面的配置基本就定型了: - **备份范围和频率**:多少台设备、多久拉一次?规模决定你用 CSV 还是数据库做设备清单,也决定线

gitblog_00865的博客 959
上一篇: kettle spoon创建带参数定时任务并关闭它
下一篇: SublimeText4版本为_4169_x64的个人使用配置
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值