自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Envoy代理轉(zhuǎn)發(fā)與xDS映射關(guān)系

開發(fā) 前端
Envoy作為Istio默認(rèn)數(shù)據(jù)面代理,它的工作流程是怎么樣的?本文通過示例運(yùn)行,走查其運(yùn)行流程,以及xDS協(xié)議映射。

[[429446]]

引言

Envoy作為Istio默認(rèn)數(shù)據(jù)面代理,它的工作流程是怎么樣的?本文通過示例運(yùn)行,走查其運(yùn)行流程,以及xDS協(xié)議映射。

一、xDS

xDS 協(xié)議是“X Discovery Service”的簡寫,這里的“X”表示它不是指具體的某個(gè)協(xié)議,是一組基于不同數(shù)據(jù)源的服務(wù)發(fā)現(xiàn)協(xié)議的總稱,包括 CDS、LDS、EDS、RDS等。在Istio架構(gòu)中,基于xDS協(xié)議提供了標(biāo)準(zhǔn)的控制面規(guī)范,并以此向數(shù)據(jù)面?zhèn)鬟f服務(wù)信息和治理規(guī)則。在Envoy中,xDS被稱為數(shù)據(jù)平面 API,并且擔(dān)任控制平面Pilot和數(shù)據(jù)平面Envoy的通信協(xié)議。

CDS 是 Cluster Discovery Service的縮寫,Envoy使用它在進(jìn)行路由的時(shí)候發(fā)現(xiàn)上游Cluster。Envoy通常會(huì)優(yōu)雅地添加、更新和刪除 Cluster。有了 CDS 協(xié)議,Envoy在初次啟動(dòng)的時(shí)候不一定要感知拓?fù)淅锼械纳嫌蜟luster。在做路由 HTTP 請(qǐng)求的時(shí)候通過在 HTTP 請(qǐng)求頭里添加 Cluster信息實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)。

EDS 即Endpoint Discovery Service 的縮寫。在Envoy術(shù)語中,Endpoint即Cluster的成員。Envoy 通過 EDS API可以更加智能地動(dòng)態(tài)獲取上游Endpoint。

LDS 即Listener Discovery Service的縮寫?;诖耍珽nvoy 可以在運(yùn)行時(shí)發(fā)現(xiàn)所有的Listener,包括 L3 和 L4 filter 等所有的 filter 棧,并由此執(zhí)行各種代理工作,如認(rèn)證、TCP 代理和 HTTP 代理等。添加 LDS 使得 Envoy 的任何配置都可以動(dòng)態(tài)執(zhí)行。

RDS 即 Router Discovery Service 的縮寫,用于 Envoy 在運(yùn)行時(shí)為 HTTP 連接管理 filter 獲取完整的路由配置,比如 HTTP 頭部修改等。并且路由配置會(huì)被優(yōu)雅地寫入而無需影響已有的請(qǐng)求。當(dāng) RDS 和 EDS、CDS 共同使用時(shí),可以幫助構(gòu)建一個(gè)復(fù)雜的路由拓?fù)渌{(lán)綠發(fā)布等。

ADS EDS,CDS 等每個(gè)獨(dú)立的服務(wù)都對(duì)應(yīng)了不同的 gRPC 服務(wù)名稱。對(duì)于需要控制不同類型資源抵達(dá) Envoy 順序的需求,可以使用聚合發(fā)現(xiàn)服務(wù),即 Aggregated xDS,它可以通過單一的 gRPC 服務(wù)流支持所有的資源類型,借助于有序的配置分發(fā),從而解決資源更新順序的問題。

備注:上述概念摘自 https://www.servicemesher.com/istio-handbook/ecosystem/xds.html

二、Envoy代理示例

安裝部署

以mac版本為例,安裝看看

  1. brew update 
  2. brew install envoy 

版本檢查

  1. envoy --version 
  2.  
  3. envoy  version: a2a1e3eed4214a38608ec223859fcfa8fb679b14/1.19.1/Modified/RELEASE/BoringSSL 

下載示例yaml文件

  1. https://www.envoyproxy.io/docs/envoy/latest/_downloads/92dcb9714fb6bc288d042029b34c0de4/envoy-demo.yaml 

示例運(yùn)行

  1. envoy -c envoy-demo.yaml 

訪問以下地址會(huì)路由轉(zhuǎn)發(fā)到Envoy官方地址「www.envoyproxy.io」

  1. http://localhost:10000/ 

三、邏輯走查

envoy-demo.yaml文件走查

概念

LDS(Listener Discovery Service):監(jiān)聽發(fā)現(xiàn)服務(wù)

RDS(Route Discovery Service):路由發(fā)現(xiàn)服務(wù)

CDS(Cluster Discovery Service):集群發(fā)現(xiàn)服務(wù)

EDS(Endpoint Discovery Service):集群成員發(fā)現(xiàn)服務(wù)

流程:

1.Listener通過監(jiān)聽端口(10000)將請(qǐng)求根據(jù)Route提供的策略轉(zhuǎn)發(fā)

2.Route可以配置路由規(guī)則,示例中轉(zhuǎn)發(fā)到名字為「service_envoyproxy_io」的cluster

3.Cluster中可以配置行為相同的多個(gè)EndPoint,多個(gè)EndPoint可以配置負(fù)載均衡策略

4.EndPoint最終轉(zhuǎn)發(fā)的節(jié)點(diǎn)地址

本文轉(zhuǎn)載自微信公眾號(hào)「瓜農(nóng)老梁」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系瓜農(nóng)老梁公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 瓜農(nóng)老梁
相關(guān)推薦

2012-05-10 09:44:39

MongoDBJava

2023-10-09 07:01:06

Nginx反向代理Envoy

2009-09-23 13:26:10

Hibernate對(duì)象

2009-09-15 11:29:04

LINQ to SQL

2009-09-25 12:59:52

Hibernate映射

2009-06-18 14:22:06

Hibernate多對(duì)Hibernate

2022-09-16 10:00:31

端口服務(wù)器

2012-02-08 12:17:38

HibernateJava

2019-07-25 15:15:54

端口映射服務(wù)器

2012-02-15 00:32:27

haproxy負(fù)載均衡

2011-03-16 12:55:00

iptables 端口

2018-11-22 10:47:36

Docker數(shù)據(jù)備份

2021-11-14 21:53:50

服務(wù)器Node接口轉(zhuǎn)發(fā)管理服務(wù)器

2020-10-22 08:05:46

Nginx

2019-08-26 10:31:12

正向代理反向代理安全

2009-06-02 14:46:26

Hibernate關(guān)系映射教程

2018-12-24 08:48:14

NginxApache Cookie

2012-09-20 10:51:16

IBMdw

2019-06-19 15:34:39

Nginx反向代理負(fù)載均衡

2012-05-30 15:03:43

ibmdw
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)