为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

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

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

相关文章

StevenBoyd--Convex optimization--0. Contents-catalog

把自己最近学习的Steven Boyd的convex optimization的内容整理一下,将思维导图发出来供自己学习及参考。

【渝粤题库】国家开放大学2021春1366英语教学理论与实践题目

试卷代号:1366 2021年春季学期期末统一考试 英语教学理论与实践 试题 2021年7月 注意事项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考…

spring安全_Spring安全–幕后

spring安全安全任务(例如,用户身份验证和用户查看应用程序资源的授权)通常由应用程序服务器处理。 可以将这些任务委托给Spring安全性流程,以减轻应用程序服务器处理这些任务的负担。 Spring安全性基本上通过实现标准javax.servle…

建筑商和机械手

这是在OOP中命名方法的简单原理,我尝试在我的代码中遵循: 操作时是动词 , 构建时是名词 。 而已。 两者之间什么都没有。 诸如saveFile()或getTitle()不适合使用,必须重命名和重构。 此外,“操作”的方法必须始终返回v…

【渝粤题库】国家开放大学2021春1376机械制造装备及设计题目

试卷代号:1376 2021年春季学期期末统一考试 机械制造装备及设计 试题 2021年7月 一、单项选择题(从所给的四个选项中,找出你认为是正确的答案,将其编号填入括号内。每小题3分,共30分) 1.卧式支承的机床重心…

【渝粤题库】国家开放大学2021春1398分析化学(本)题目

试卷代号:1398 2021年春季学期期末统一考试 分析化学(本) 试题(开卷) 2021年7月 一、单项选择题(每题2分,共60分) 1.下列叙述错误的是( )。 A.偶然误差影响分…

【渝粤题库】国家开放大学2021春1359高级英语写作题目

试卷代号:1359 2021年春季学期期末统一考试 高级英语写作 试题 2021年7月 注意事项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收完…

【渝粤题库】国家开放大学2021春1373特殊教育概论题目

试卷代号:1373 2021年春季学期期末统一考试 特殊教育概论 试题 2021年7月 一、解释下列概念题,并举例说明(本题总分25分,每小题5分) 1.特殊教育: 2.教育诊断: 3&#x…

串行内存消耗 并行内存_如何估算内存消耗?

串行内存消耗 并行内存这个故事可以追溯到至少十年之前,当时我第一次接触PHB时遇到一个问题:“在生产部署中,我们需要购买多大服务器”。 我们正在构建的新的,闪亮的系统距离生产开始还有9个月的时间,显然该公司已承诺…

【渝粤题库】国家开放大学2021春1377理工英语3题目

试卷代号:1377 2021年春季学期期末统一考试 理工英语3 试题 2021年7月 注意事项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收完考…

【渝粤题库】国家开放大学2021春1400机器人技术及应用题目

试卷代号:1400 2021年春季学期期末统一考试 机器人技术及应用 试题 2021年7月 一、单项选择题(每小题3分,共45分) 1.以下具有越障能力的轮系是( )。 A.锥形轮、变形车轮、半步行轮 B.全向轮、变形车轮、半步…

Java,JavaFX的流畅设计风格滑块

JMetro的Java,JavaFX主题版本刚刚提高到4.2版。 此版本为Slider控件带来了新样式。 除此之外,您现在还可以看到一个弹出窗口,向您显示滑块的当前值。 新滑块样式 以下是旧的JMetro Slider样式: 滑块OLD JMetro灯光主题 滑块OLD…

【渝粤题库】国家开放大学2021春1443卫生信息与文献检索题目

试卷代号:1443 2021年春季学期期末统一考试 卫生信息与文献检索 试题(开卷) 2021年7月 一、单项选择题(每小题2分,共50分,每小题仅有一项答案正确,请将正确答案的序号填在括号内) 1.…

【渝粤题库】国家开放大学2021春1703农村发展理论与实践题目

试卷代号:1703 2021年春季学期期末统一考试 农村发展理论与实践 试题 2021年7月 一、单选题(20题,每题3分,共60分) 1.在农村发展的“参与式方法”中,“参与”意味着有相应的机制保障( &#xff…