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

这是探索为Envoy Proxy构建控制平面的系列文章的第3部分。

在本博客系列中,我们将研究以下领域:

  • 采用一种机制来动态更新Envoy的路由,服务发现和其他配置
  • 确定哪些组件构成了控制平面,包括后备存储,服务发现API,安全组件等。 等
  • 建立最适合您的用例和组织的任何特定于域的配置对象和API (此条目)
  • 考虑如何最好地使控制平面可在需要的地方插入
  • 部署各种控制平面组件的选项
  • 通过测试平面来考虑您的控制飞机

在上一篇文章中,我们评估了控制平面可能需要的组件。 在本节中,我们将探讨您的控制平面特定于域的API的外观。

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

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

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

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

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

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

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

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

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

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

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

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

请注意,这些不同于这些对象的Istio变体。

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

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

Gloo控件的两个配置级别之间的划分使我们能够扩展Gloo控制面板功能,同时保留用于配置Envoy的简单抽象。 在本系列的第4部分中将对此进行详细说明。

在前面的三个示例(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控制平面实施方案,并且仅在没有其他合适的方案时才构建自己的方案。 Gloo的控制飞机奠定了扩展和定制基础。 正如我们将在下一篇文章中看到的那样,可以构建一个完全可扩展的控制平面,以适应许多不同的用户,工作流和操作约束。

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

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

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

相关文章

工业交换机中:千兆级别和快速级别传输效率对比

目前市面上的工业交换机种类繁多,我们在采购工业交换机的时候,一般都是按照传输速率来进行挑选的。千兆工业交换机和快速以太网交换机都是传输速率比较快的工业交换机,那么,他们之间有哪些区别呢?接下来就由飞畅科技的…

《操作系统A》期末考试复习题——大题51-62(手写笔记)

51、如果限制为两道的多道程序系统中,有4个作业进入系统,其进入系统时刻、估计运行时间为下图所示。系统采用SJF作业调度算法,采用SRTF进程调度算法。作业进入系统时刻、估计运行时间如下: 作业 进入系统时刻 估计运行时间/min …

php 登录记住密码,php 记住密码自动登录

做网站的时候会碰到记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。这种功能一般通过cookie来实现的。用户在登陆的时候,如果选择了记住密码或者一周内免登陆等这个选项的时候,则在用户成功登陆操作完成…

带有Spring Security的OAuth 2.0快速指南

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 在构建Web应用程序时,必须进行身份验证和授权。 然而,正确地做…

工业以太网交换机在实际应用中的优势

相信大家对交换机应该都不陌生,交换机可以说应用于网络通信的各个方面,它极大的帮助我们提高了工作效率;但是一般我们会分为工业交换机和普通交换机,在实际应用当中,不同的环境和场合我们还是要有所区分的,…

带有Oracle Digital Assistant和Fn Project的会话式UI。 第三部分,迁移到云

在本文中,我将继续讲述在Oracle Digital Assistant和Oracle Digital Assistant的 基础上为FlexDeploy实现对话式UI的故事。 Fn项目 。 今天,我将围绕聊天机器人工作的无服务器API移到云中,因此整个解决方案都在云中工作: 该API是…

8口网管型工业以太网交换机产品性能介绍

8端口以太网交换机因其端口数量、价格都比较适中,所以是比较常见的一款产品。杭州飞畅科技为满足不同客户的需要,就8端口的工业交换机分别研发了网管型、非网管、8电口、2光6电、4光4电等多种规格。如果您这边有特殊规格的需求,飞畅科技也可以…

一号信令是什么?1号信令和7号信令的区别介绍!

1号信令又称为多频互控信令或随路信令。那么,什么是一号信令?一号信令是怎么分类的?1号信令常见问题有哪些?1号信令和7号信令之间有哪些区别呢?接下来我们就跟随飞畅科技的小编一起来详细了解下吧! 一、1号…

RS232、RS485和CAN协议总结与对比

RS232简单实用,缺陷是不支持多设备间的互连,缺少拓扑结构。由此诞生了RS485。RS485最重要的是采用两条差分线代替RS232的单线传输,支持拓扑结构。RS485属于电气层的协议,物理上的实现大都在RS232基础上完成。缺陷是主从轮询的方式…

php 回到顶部,jquery如何实现点击网页回到顶部效果?(图文+视频)

本篇文章主要给大家介绍如何用jquery代码实现网页回到顶部的效果。我们在浏览各大网站页面时,想必大家肯定都遇到过,当阅览一个长页面时,拉到下面部分会出现类似回到顶部的按钮特效吧。这种点击回到顶部的功能特效,可以很大程度上…

使用JDK 13查看TLS配置

JDK 13 Early Access Build 16现在可用,它带来的有趣的功能之一是能够使keytool命令行工具显示当前系统的TLS配置信息 。 这比尝试在单独的文档中查找受支持的TLS信息并使该信息与自己的JDK供应商和版本更容易。 要查看JDK 13 Early Access Build 16的TLS配置详细信…

串口服务器常见异常情况排除方法介绍

串口服务器就像一台带CPU、实时操作系统和TCP/IP协议的微型电脑,方便在串口和网络设备中传输数据。在使用串口服务器的过程中,一般按照操作手册进行操作基本上可以解决问题,但是,在实际操作中还是会出现一些异常故障,今…

ckfinder php 配置,php – 在Laravel 5中为CKEditor设置路径以使用CKFinder

您好我正在尝试将CKFinder与CKEditor集成到一个laravel项目中.我在CKEditor的config.js文件中进行了以下设置:CKEDITOR.editorConfig function( config ) {// Define changes to default configuration here. For example:// config.language fr;config.uiColor …

工业级光模块是什么?

可能很多人都不知道,光模块是所有网络连接部署中不可或缺的组成部分。一个产品的出现往往与市场需求相对应,我们平时所接触到的光模块大部分只能满足商业数据中心的网络部署,那么大型工业的网络部署该如何满足实现呢?在这种情况下&#xff0…

jvm开源_开源JVM Sampling Profiler

jvm开源众所周知 ,大多数现有的采样Java Profiler都必须在安全的地方进行堆栈跟踪收集。 诸如采样探查器之类的探查器就是这种情况,它使用SUN / Oracle管理代理来收集其堆栈跟踪。 这种方法的问题在于,由于不是程序中的每个点都不是安全点&am…

discuz和php的区别,discuz和phpwind优劣比较

discuz!(简称dz)和phpwind(简称pw)是国内最著名的两个PHP论坛系统,随着它们相继宣布开源以后,在各方面,不管技术上,还是功能上,还是界面上,都有了长足的发展,声威大振,远非国外那些功…

串口服务器常见五大问题解决方案

串口服务器提供串口转网络功能,使得串口设备能够立即具备TCP/IP网络接口功能,连接网络进行数据通信,极大的扩展串口设备的通信距离。为了更方便我们操作和使用,今天飞畅科技的小编来为大家介绍下串口服务器常见五大问题解决方案&a…

weblogic工具_WebLogic Classloader分析工具

weblogic工具WebLogic Server具有一个名为Classloader Analysis Tool的内置Web应用程序,您可以通过http:// localhost:7001 / wls-cat访问它 您需要使用为/ console Webapp配置的同一用户登录。 使用CAT,您可以检查应用程序在服务…

必看!工业交换机必须满足这些标准才能称合格

我们都知道,工业交换机是专为工业环境而生产设计的,所以工业交换机的要求比一般商业交换机要严苛的多!但现在市场上很多打着工业级交换机的幌子,卖的是商业级别的,因为很多客户其实分辨不出来,一旦出现了问…

php中的id怎么传值,uniapp如何跳转页面传值

uniapp跳转页面传值的方法:首先给点击事件传入id;然后Methods中写方法,代码为【uni.navigateTo({url:opportunity-form?idid})】;最后在详情页接收参数。本教程操作环境:windows7系统、uni-app2.5.1版本,该…