Xds (eXtensible Discovery Service)理解

Xds (eXtensible Discovery Service)理解

概念介绍

XDS:全称是 eXtensible Discovery Service,中文译为”可扩展的服务发现“。是一个扩展性的协议,可以用于配置和控制 Envoy 代理的各个方面,包括路由规则、负载均衡、健康检查等。XDS 协议的设计目标是支持大规模、动态和高可用的微服务架构。

组成

  1. RDS(Route Discovery Service):RDS 是 XDS 协议的一个组成部分,用于动态发现和配置 Envoy 代理的路由规则。RDS 定义了用于路由配置的接口和协议。
  2. LDS(Listener Discovery Service):LDS 是 XDS 协议的另一个组成部分,用于动态发现和配置 Envoy 代理的监听器。LDS 定义了用于监听器配置的接口和协议。
  3. CDS(Cluster Discovery Service):CDS 是 XDS 协议的一部分,用于动态发现和配置 Envoy 代理的集群信息。CDS 定义了用于集群配置的接口和协议。
  4. EDS(Endpoint Discovery Service):EDS 是 XDS 协议的一部分,用于动态发现和配置 Envoy 代理的终端节点(即后端服务)信息。EDS 定义了用于终端节点配置的接口和协议。
  5. SDS(Secret Discovery Service):SDS 是 XDS 协议的一部分,用于动态发现和配置 Envoy 代理所需的安全凭证(如证书、密钥等)。SDS 定义了用于安全凭证配置的接口和协议。

工作原理

XDS 的工作原理是 Envoy 代理与服务发现平台之间通过 XDS 协议进行通信,代理向平台注册自身并拉取配置信息,然后根据配置更新自身的状态和行为

Xds 在 Envoy 中的作用

Envoy 介绍

这里简单介绍一下 envoy :是一个高性能、可扩展的开源代理和通信中间件,由 Lyft 公司开发并贡献给 CNCF(Cloud Native Computing Foundation)。它被设计用于支持现代的云原生应用架构,并提供可靠的服务发现、负载均衡、流量管理和安全性等功能。(来自 gpt)

envoy 同 nginx 类似。

Envoy 和 Xds

上文中已经说明了 xds 协议的作用,就是通过 xds 来动态的更新 envoy 中的配置信息,更新 envoy 的行为和状态。对比 nginx 只能通过 reload 来重启 nginx 服务来刷新配置优秀的多。(nginx 也乐意通过 lua 插件来热重载)

Xds 在 Istio 中的作用

Istio 介绍

Istio 是一个开源的、可扩展的服务网格平台,用于解决微服务架构中的通信、安全性、可观察性和流量管理等。提供了一组功能强大的工具和组件,帮助用户更好地管理和控制微服务应用程序。

以下是 Istio 提供的主要功能和组件:

  1. 服务发现和负载均衡:Istio 使用 Envoy 作为其默认的数据平面代理,通过与服务发现平台集成,实现服务的自动发现和负载均衡。这使得 Istio 能够准确地路由请求到目标服务。
  2. 流量管理:Istio 提供了灵活的流量控制机制,包括智能路由、A/B 测试、金丝雀发布和故障注入等。这使得用户可以更好地控制和管理流量,确保应用程序的可靠性和弹性。
  3. 安全性:Istio 提供了丰富的安全功能,包括身份认证、授权、加密通信和访问控制等。它可以通过强制策略和安全控制来保护服务之间的通信,并提供细粒度的访问控制。
  4. 可观察性:Istio 提供了全面的可观察性工具,帮助用户了解和监控微服务的运行状况。这包括请求跟踪、指标收集、日志记录和分布式追踪等功能,使用户能够深入了解服务的性能和健康状况。
  5. 策略和配置管理:Istio 提供了一个控制平面,使用 Mixer 和 Pilot 组件来管理和配置服务的策略和行为。它通过与数据平面代理(如 Envoy)之间的 XDS 协议进行通信,实现动态的配置和更新。

Envoy 和 Istio

上文中说到的那样:Istio 使用 Envoy 作为其默认的数据平面代理,以提供服务之间的通信和流量管理。

Envoy 被用作 Istio 的数据平面组件,负责处理和路由应用程序之间的网络流量。Envoy 提供了丰富的功能,包括负载均衡、流量控制、故障恢复和安全性等,这些功能在 Istio 中被广泛使用。

Istio 和 xds

Istio 使用 XDS(Envoy的动态配置协议)来管理和配置其底层的 Envoy 代理。XDS 是Envoy代理与服务发现平台之间进行通信和配置的协议。

在这里插入图片描述

图中 Sidecar 即为 Envoy。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/655234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 206 反转链表

反转链表 准备工作1)ListNode基本结构2)初始化ListNode集合 解法一:遍历创建新节点解法二:两组List,面向对象操作解法三:递归调用解法四:直接移动解法五:解法二的面向过程 Leetcode …

Ubuntu 20.04 Server 使用命令行设置 IP 地址

1、编辑 /etc/netplan/ 目录下的配置文件00-installer-config.yaml (修改之前,把原来的文件备份) 按照对应的配置进行修改IP地址和网关 2、运行命令使其生效 sudo netplan apply 修改完成后,永久有效。重启后配置不会丢失

【智能家居入门之微信小程序控制下位机】(STM32、ONENET云平台、微信小程序、HTTP协议)

实现微信小程序控制单片机外设动作 一、使用ONENET可视化组件控制单片机外设动作二、使用微信小程序控制单片机外设动作三、总结 本篇博客话接上文: https://blog.csdn.net/m0_71523511/article/details/135892908 上一篇博客实现了微信小程序接收单片机上传的数据…

三、防御保护---防火墙安全策略篇

三、防御保护---防火墙安全策略篇 一、什么是安全策略二、安全策略的组成1.匹配条件2.动作3.策略标识 三、防火墙的状态检测和会话表1.会话表2.状态检测技术 四、ASPF--隐形通道五、用户认证1.用户认证的分类2.认证方式3.认证策略4.认证域 一、什么是安全策略 传统的包过滤防火…

Mysql 更新数据

MySQL中使用UPDATE语句更新表中的记录,可以更新特定的行或者同时更新所有的行。基本语法结构如下: UPDATE table_name SET column_name1 value1,column_name2 value2,……, column_namen valuen WHERE(condition); column_name1,column_name2,……,…

mcu专用看门狗复位芯片(如MAX706)

mcu专用看门狗复位芯片(如MAX706) 为什么要使用电压复位芯片RESET引脚WDO引脚MR引脚WDI引脚 国产替代型号应用电路1 推荐电路(用一个跳线帽使能/关闭看门狗功能,调试MCU时防止看门狗芯片随便触发复位功能),…

智能时代:自然语言生成SQL与知识图谱问答实战

语义解析 前言语义解析的应用场景总结概论语义解析和大模型的关系延伸阅读 前言 语义解析技术可以提高人机交互的效率和准确性,在自然语言处理、数据分析、智能客服、智能家居等领域都有广泛的应用前景。特别是在大数据时代,语义解析能够帮助企业更快速…

Unity中使用Ultraleap的InteractionButton组件

本节在上一节基础上进行,上一小结参考如下: Unity中创建Ultraleap 3Di交互项目 本节工程文件如下: Unity中使用Ultraleap的InteractionButton组件 本节结构有所更改,主要是参考官方示例结构进行重新调整,和上一小节相…

硬件知识(2) 手机的传感器-sensor

#灵感# 看看小米在干啥 手机型号:Redmi Note 13 Pro,解读一下它宣传的手机卖点。 目录 宣传1:1/1.4" 大底,f/1.65 大光圈, 宣传2:支持 2 亿像素超清直出,分辨率高达 16320 x 12240 宣…

多态、多态的特点、类型转换(Java)

一、多态介绍 多态是在继承/实现情况下的一种现象,表现为:对象多态、行为多态。 对象多态就比如水果可以是苹果也可以是西瓜。 行为多态如何分辨呢,编译的时候会看People类中是否有run方法,运行的时候看Teacher中或者Student中的…

大专生能不能学习鸿蒙开发?

目前安卓有2,000万的开发者。本科及以上学历占比为35%;iOS有2,400万开发者,本科及以上学历占比为40% 绝大多数的前端开发者都是大专及以下学历,在2023年华为开发者大会上余承东透露华为的开发者目前有200万,但鸿蒙开发者统计的数据…

wpf 数据转换(Bytes 转 KB MB GB)

效果 后端 using ProCleanTool.Model; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data;namespace P…

Python第三方扩展库Matplotlib

Python第三方扩展库Matplotlib Matplotlib 是第三方库,不是Python安装程序自带的库,需要额外安装,它是Python的一个综合性的绘图库,提供了大量的绘图函数用于创建静态、动态、交互式的图形和数据可视化,可以帮助用户创…

k8s 进阶实战笔记 | 应用的蓝绿、金丝雀发布笔记

文章目录 应用的蓝绿、金丝雀发布笔记应用升级策略停机升级滚动更新蓝绿发布金丝雀发布 应用的蓝绿、金丝雀发布笔记 应用升级策略 Deployment.spec.strategy 设置 Recreate:同时删除所有副本,停机升级策略 不存在新老版本共存 存在某个时间段服务不可…

Unity中使用Ultraleap的Slider组件

Unity中使用Ultraleap的Slider组件,实现物体在指定范围内滑动: 本节在上一节基础上进行,上一小结参考如下: Unity中使用Ultraleap的InteractionButton组件 本节工程文件如下: Unity中使用Ultraleap的Slider组件 1、在…

如何隐藏Selenium特征实现自动化网页采集

Selenium是一个流行的自动化网页测试工具,可以通过模拟用户在Chrome浏览器中的操作来完成网站的测试。然而,有些网站会检测浏览器是否由Selenium驱动,如果是,就会返回错误的结果或拒绝访问。为了避免这种情况,我们需要…

网络安全防御保护 Day4

要点一:防火墙的智能选路 就近选路: 在访问不同运营商的服务器时直接通过对应运营商的链路,以此来提高通信效率,避免绕路。 策略路由(PBR): 这是一种基于用户定义的策略(如业务需求、…

【MATLAB源码-第128期】基于matlab的雷达系统回波信号仿真,输出脉压,MTI,MTD等图像。

操作环境: MATLAB 2022a 1、算法描述 ​雷达(Radio Detection and Ranging)是一种使用无线电波来探测和定位物体的系统。它的基本原理是发射无线电波,然后接收这些波从目标物体上反射回来的信号。通过分析这些反射波&#xff0…

STM32的分类和选型

F系列(主要用于普通应用) STM32F0xx:低成本、低功耗,适用于成本敏感和低功耗的应用。STM32F1xx:中低端微控制器,具有丰富的外设和良好的性能。STM32F2xx:高性能微控制器,适用于要求…

二维数组的学习

前言 在前面我们学习了一维数组,但是有的问题需要用二位数组来解决。 二维数组常称为矩阵,把二维数组写成行和列的排列形式,可以有助于形象化的理解二维数组的逻辑结构。 一、二维数组的定义 二维数组定义的一般格式: 数据类型 数…