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

latex如何使节标题居左

这是探索为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

latex如何使节标题居左

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

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

相关文章

微信支付api的服务器上,服务器微信支付接口笔记(与app端对接)

到这里,准备工作就算完成了。支付流程步骤详解:步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。这一步,app将相关订单信息提交给商户步骤2:商户后台收到用户支付单,调用微信…

python写sql语句_Python操作文件模拟SQL语句功能

一、需求 当然此表你在文件存储时可以这样表示 1,Alex Li,22,13651054608,IT,2013-04-01 现需要对这个员工信息文件,实现增删改查操作 1. 可进行模糊查询,语法至少支持下面3种: 1. select name,age from staff_table where age > 22 2. select * from…

Maven的maven-clean-plugin插件详解

maven-clean-plugin 插件对应的命令是 mvn clean,执行 mvn clean 命令会删除构建输出目录 target。 打开命令终端,切换到 pom.xml 所在目录下,执行下面的命令: [~/documents/IdeaProjects/demo02]$ mvn clean [INFO] Scanning f…

jep290涉及jdk版本_JDK 12 – JEP 325开关表达式

jep290涉及jdk版本JDK 12已于2019年3月19 日上线GA,继续致力于缩短发布周期和频繁发布。 该版本的功能部分可以在这里找到。 对于开发人员来说,有趣的功能之一是“ JEP 325开关表达式 ”,它可以作为预览功能使用。 此处定义的预览功能是&…

笑傲江湖客户端服务器地址修改,《笑傲江湖》改键调整操作手把手教你玩笑傲...

《笑傲江湖》采用全新引擎AngelicaIII打造,秉承原著武侠精髓,首推新派动作武侠网游概念——融入动作及格斗游戏要素,强调真实的打击感与流畅的动作连贯度,并运用方向判定、位移闪避、移动战斗、攻防一体等多重技术手段&#xff0c…

Maven的maven-compiler-plugin插件详解

文章目录mvn compilemvn test-compile编译插件的配置mvn compile mvn compile 命令会将 src/main/resources 下的资源文件复制到编译输出目录下;接着会将 src/main/java 目录下源代码编译输出到编译输出目录下。编译输出目录默认是 target/classes 目录。 打开命令…

python数据处理常用函数_pytorch中的自定义数据处理详解

pytorch在数据中采用Dataset的数据保存方式,需要继承data.Dataset类,如果需要自己处理数据的话,需要实现两个基本方法。 :.getitem:返回一条数据或者一个样本,obj[index] obj.getitem(index). :.len:返回样本的数量 。…

raid重构原理_5个重构原理示例

raid重构原理这篇文章介绍了重构真正的开源代码( Gradle Modules Plugin )时应用的五​​种(最著名的)重构原理。 语境 当我为Gradle Modules Plugin (PR #73 ) 单独编译 module-info.java &am…

extjs ajax 遮罩层,[Ext JS 4] 实战之Load Mask(加载遮罩)的显示与隐藏

前言Load Mask(遮罩)效果,就是在页面还没有完全显示出来之前, 加上一个转装转的效果。类似:添加这样的效果有两个好处:1. 在页面没完全show出来之前, 把后面的页面给遮罩起来, 防止进行一些非法的操作。2. …

macOS下卸载文件系统_卸载移动硬盘_卸载U盘_推出移动硬盘_推出U盘

先使用命令 df -lh 在终端查看当前系统的所有挂载的文件系统(系统硬盘、移动硬盘、U盘等),命令如下: liaowenxiongliaowenxiongdeMacBook-Air ~ % df -h Filesystem Size Used Avail Capacity iused ifree %iused …

python isalnum函数_Python 字符串 (isdigit, isalnum,isnumeric)转

Python isdigit() 方法检测字符串是否只由数字组成。 语法 isdigit()方法语法: str.isdigit() 参数 无。 返回值 如果字符串只包含数字则返回 True 否则返回 False。 Python isdecimal() 方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。 注意:定…

zing jvm_Zing加快了JVM应用程序的预热

zing jvmJava虚拟机(JVM)提供了托管运行时环境,用于安全部署应用程序,其性能通常可以超过本机编译语言(如C和C )。 通过即时(JIT)编译进行垃圾回收和自适应编译的内存管理是两个最突…

黎明觉醒测试服服务器维护怎么办,黎明觉醒测试资格进不去怎么办

黎明觉醒测试资格进不去怎么办?黎明觉醒游戏在在9月16日迎来曙光测试,相信不少玩家都去玩了发现自己进不去游戏,这是怎么回事呢?和小编一起来看看吧。黎明觉醒测试资格进不去怎么办一、测试资格进不去获得测试资格的玩家官方已提前…

查看Linux命令_搜索Linux命令_查找Linux命令

站点1:https://tool.lu/command/ 站点2:https://www.linuxcool.com/

蜂鸣器音乐代码 天空之城_潮玩 | 艺术展览,乐队live现场,网红小黑泥,贩卖“美好”的市集……一场未来公共生活,天空之城和你一起探索!...

第一次打卡这样的新媒体艺术作品,不是画作,也不是艺术品陈列,而是一场看的见的引力交响曲~错落的磁场具象成看得见的流动痕迹,不动声响却震撼的感官体验。很容易让人沉浸其中,去捕捉流动的方向和瞬间。虽然UFO是没看到…

自动部署 管道 ci cd_自动化测试在CI CD管道中的作用

自动部署 管道 ci cd业界广泛采用的软件开发实践:持续集成和持续部署可确保良好地交付产品并经常交付。 常规代码提交需要常规/连续测试,而如果忽略它,则可能导致非弹性基础结构。 如何交付坚固的CI CD管道? 对于许多公司来说&…

Maven的maven-install-plugin插件详解

文章目录将下载到本地的jar文件安装到Maven本地仓库中将当前项目安装到Maven本地仓库中参考maven-install-plugin 插件的作用:1.可以将当前项目安装到 Maven 本地仓库,供本地其它 Maven 项目使用 执行 mvn install 命令将当前项目安装到 Maven 本地仓库…

python字典_Python 字典

1、什么是 dict(字典)上一章节,我们学习了列表(List) 和 元组(tuple) 来表示有序集合。而我们在讲列表(list)的时候,我们用了列表(list) 来存储用户的姓名。name [一点水, 两点水, 三点水, 四点水, 五点水]那么如果我们为了方便联系这些童鞋&#xff0c…

hazelcast_Java:如何在不到5分钟的时间内通过Hazelcast提高生产力

hazelcast如果要使用Hazelcast内存数据网格(IMDG)来加快数据库应用程序的速度,但是要处理数百个表怎么办? 手动编码所有Java POJO和序列化支持将需要数周的工作,完成后,手动维护该域模型将很快成为一场噩梦…

Maven的maven-help-plugin插件详解

执行下面的命令查看指定插件的详细信息: [~/Documents/IdeaProjects/demo02]$ mvn help:describe -Dpluginorg.apache.maven.plugins:maven-site-plugin:3.9.0 -Ddetail上述命令执行的是 maven-help-plugin 的 describe 目标,在参数 plugin 中输入需要描…