envoy api 网关

建立您的控制平面交互点和API表面

一旦考虑了哪些组件可能构成控制平面体系结构(请参见上一章),您将要确切考虑用户将如何与控制平面进行交互,甚至更重要的是, 用户将是谁? 要回答这个问题,您必须决定基于Envoy的基础架构将扮演什么角色以及流量如何遍历您的体系结构。 可能是

  • API管理网关(北/南)
  • 简单的Kubernetes边缘负载均衡器/反向代理/入口控制(北/南)
  • 共享服务代理(东西方)
  • 每辆服务车(东/西)

例如,Istio项目旨在成为平台服务网格,平台操作员可以在其上构建工具来驱动控制。 用于配置Envoy的Istio的特定于域的配置对象围绕以下对象:

  • 网关 –定义一个共享代理组件(具有群集入口功能),该组件指定可用于负载平衡和路由流量的协议,TLS,端口和主机/授权
  • VirtualService –有关如何与特定服务进行交互的规则; 可以指定诸如路由匹配行为,超时,重试等内容
  • DestinationRule –关于如何与特定服务交互的规则,包括断路,负载平衡,mTLS策略,服务的子集定义等
  • ServiceEntry –将服务显式添加到Istio的服务注册表中

在Kubernetes中运行,所有这些配置对象都实现为CustomResourceDefinitions 。

Heptio / VMWare Contour旨在用作Kubernetes入口网关,并具有简化的特定于域的配置模型,同时具有CustomResourceDefinition(CRD)风格和Kubernetes入口资源

  • IngressRoute是Kubernetes CRD,它提供一个位置来指定Contour代理的配置
  • 入口资源支持 ,如果您喜欢这种事情,则可以使用它在Kubernetes入口资源上指定注释

在Gloo项目中,我们已决定将可用的配置对象分为两个级别:

  • 面向用户的配置可为用户使用案例提供最佳的人机工程学,并保留可扩展性的选项(下一节将对此进行详细介绍)
  • 提取Envoy的低层配置,但不明确打算直接用于用户操作。 较高级别的对象将转换为该较低级别的表示形式,最终将其转换为Envoy xDS API。 下一节将清楚说明其原因。

对于用户来说,Glo专注于拥有自己的路由配置的团队,因为路由的语义(以及可用的转换/聚合功能)在很大程度上受到API和微服务开发人员的影响。 对于面向用户的API对象,我们使用:

  • 网关 –指定特定侦听器端口上可用的路由和API端点,以及每个API附带的安全性
  • VirtualService –将API路由分组为一组“虚拟API”,这些路由可以路由到支持的功能(gRPC,http / 1,http / 2,lambda等); 使开发人员可以控制路由如何进行不同的转换 ,以尝试使前端API与后端中存在的功能脱钩(以及后端可能引入的任何重大更改)

Gloo中面向用户的API对象驱动较低级别的对象,这些对象随后用于最终派生Envoy xDS配置。 例如,Gloo的较低级别的核心API对象是:

  • 上游 –捕获有关后端群集的详细信息以及在其上公开的功能。 您可以将Gloo上游与Envoy集群松散地联系起来,这有很大的不同:上游可以理解特定端点上可用的实际服务功能(换句话说,了解/foo/bar/bar/wine包括它们的预期参数和参数结构,而不仅仅是hostname:port )。 一秒钟内会更多。
  • 代理 –代理是抽象我们可以应用于Envoy的所有配置的主要对象。 这包括侦听器,虚拟主机,路由和上游。 较高级别的对象(VirtualService,网关等)用于驱动此较低级别的代理对象。

Gloo控件的两个配置级别之间的划分使我们能够扩展Gloo控制面板功能,同时保留用于配置Envoy的简单抽象。 下一节将对此进行说明。

在前面的三个示例(Istio,Contour,Gloo)中,每个各自的控制平面都公开了一组特定于域的配置对象,这些对象以用户为中心,但最终转换为Envoy配置并通过xDS数据平面API公开。 这使Envoy与用户的预设工作方式及其工作流程脱钩。 尽管我们已经看到了一些示例,这些示例为抽象化Envoy创建了更多针对用户和工作流的特定于域的配置,但这并不是构建Envoy控制平面的唯一方法。 Booking.com上有一个很好的演讲 ,介绍他们如何与Envoy配置保持更紧密的距离,并使用引擎将所有不同团队的配置片段合并到实际的Envoy配置中。

除了考虑特定于域的配置外,您还应该考虑API /对象模型的特定接触点。 例如,Kubernetes非常注重YAML和资源文件。 您可以构建更特定于域的CLI工具(例如OpenShift使用oc CLI进行操作 ,例如Istio 使用istioctl进行处理,以及Gloo 使用glooctl进行处理

带走

当您构建Envoy控制面板时,您会考虑到特定的意图或一组体系结构/用户。 您应该考虑到这一点,并构建正确的,符合人体工学的,针对特定领域的API,以适合您的用户并改善操作Envoy的工作流程。 Gloo团队建议您探索现有的 Envoy控制平面实施方案,并且仅在没有其他合适的方案时才构建自己的方案。 正如我们将在下一节中看到的那样,可以构建一个完全可扩展的控制平面,以适应许多不同的用户,工作流和操作约束。

翻译自: https://www.javacodegeeks.com/2019/02/envoy-domain-specific-configuration-api.html

envoy api 网关

envoy api 网关_为Envoy构建控制平面的指南-特定于域的配置API相关推荐

  1. 为Envoy构建控制平面的指南-特定于域的配置API

    建立您的控制平面交互点和API表面 一旦仔细考虑了哪些组件可能构成控制平面体系结构(请参见上一章),您将要确切考虑用户将如何与控制平面进行交互,甚至更重要的是, 用户将是谁? 要回答这个问题,您必须决 ...

  2. latex如何使节标题居左_为使节构建控制平面的指南第3部分-特定于域的配置API...

    latex如何使节标题居左 这是探索为Envoy Proxy构建控制平面的系列文章的第3部分. 在本博客系列中,我们将研究以下领域: 采用一种机制来动态更新Envoy的路由,服务发现和其他配置 确定哪 ...

  3. 为特使构建控制平面的指南-为可插入性构建

    Envoy是一个非常强大的软件,每天都会向社区提出新的用例和新的贡献 . 尽管Envoy的核心非常稳定,但它基于可插入的过滤器体系结构,因此人们可以为不同的L7协议编写新的编解码器或添加新的功能. 目 ...

  4. 为使节构建控制平面的指南第3部分-特定于域的配置API

    这是探索为Envoy Proxy构建控制平面的系列文章的第3部分. 在本博客系列中,我们将研究以下领域: 采用一种机制来动态更新Envoy的路由,服务发现和其他配置 确定哪些组件构成了控制平面,包括后 ...

  5. 为特使建立控制平面的指南第2部分-识别组件

    这是探索为Envoy Proxy构建控制平面的系列文章的第2部分. 在本博客系列中,我们将研究以下领域: 采用一种机制来动态更新Envoy的路由,服务发现和其他配置 确定哪些组件构成了控制平面,包括后 ...

  6. envoy api 网关_在边缘,作为网关或在网格中构建控制平面以管理Envoy代理的指南...

    envoy api 网关 最近, Envoy已成为流行的网络组件. 马特·克莱因( Matt Klein )在几年前写了一个博客,内容涉及Envoy的动态配置API,以及它如何成为Envoy的采用曲线 ...

  7. 在边缘,作为网关或在网格中构建控制平面以管理Envoy代理的指南

    最近, Envoy已成为流行的网络组件. 马特·克莱因( Matt Klein )在几年前写了一个博客,内容涉及Envoy的动态配置API,以及它如何成为Envoy的采用曲线向右移的原因之一. 他称该 ...

  8. Envoy Proxy构建控制平面指南

    作者:Christian Posta 译者:殷龙飞 审阅:孙海洲 原文:medium.com/solo-io/gui- [编者案] Envoy 作为最受欢迎的早期网络组件,现在已经可以说是云原生架构中 ...

  9. 为特使建立控制平面的指南-识别组件

    确定控制平面所需的组件 由于操作环境的范围千差万别,因此为Envoy实施控制平面所需的组件也可能如此. 例如,在一种极端情况下,如果您在构建时静态生成了Envoy文件并将其发送到Envoy,则需要以下 ...

最新文章

  1. 最小邮票数(01背包)
  2. jstree中文api文档_开发中文 API 的一些策略
  3. 借助Sniffer分析网络流量
  4. 前端学习(588):console面板简介与交互式命令
  5. 执行 redis-dump 报错:ERROR (Errno::ENOENT): No such file or directory - ps -o rss= -p xxxxx
  6. 自动生成考勤表_可自动变色的考勤表,逢周末自动更新,你会制作吗?
  7. scala 字符串转换数组_如何在Scala中将字节数组转换为字符串?
  8. 在子线程更新主线程的UI组件
  9. (xy)+((x^y)1)求(245, 112)结果是多少
  10. 调制解调器报告了一个错误是什么状况
  11. 从壹开始前后端分离 [ vue + .netcore 补充教程 ] 三十║ Nuxt实战:动态路由+同构...
  12. 由树莓派折腾中联想到的一个需求---基于Wiki的分布式协同编辑百科学习笔记本
  13. 洛谷P1821 [USACO07FEB]银牛派对Silver Cow Party
  14. ps cs6导出html,渲染视频使用不了是怎么回事?pscs6ex – 手机爱问
  15. UVa 10129 - Play on Words (欧拉回路, DFS)
  16. 如何用 DBSCAN 聚类算法做数据分析?
  17. 关于Albedo贴图、颜色贴图、Metallic 贴图、Specular贴图、法线贴图、视差贴图、凹凸贴图、Height Map高度贴图、AO 贴图Occlusion 贴图、Emission 贴图等
  18. CAD中角度如何平分、CAD特性匹配的作用是什么?
  19. 易基因 | 精准医学:DNA甲基化图谱在发现和精确诊断神经肿瘤领域的应用
  20. 阴阳师斗技通用,3000上下冲浪斗技(上)

热门文章

  1. 【无码专区7】括号序列(思维)
  2. [ONTAK2010] Peaks加强版 (kruskal重构树+主席树+倍增)
  3. YBTOJ洛谷P4068:数字配对(网络流)
  4. YBTOJ:消除格子(二分图匹配)
  5. AT4353-[ARC101D]Robots and Exits【LIS】
  6. P3959-宝藏【模拟退火】
  7. nssl1193-地主【dp】
  8. jzoj2136-(GDKOI2004)汉诺塔【找规律,模拟】
  9. 【图论】【并查集】矩形(ssl 1222)
  10. 传送门(最短路树+可并堆)