确定控制平面所需的组件

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

  • 模板引擎
  • 数据存储/ VCS
  • 每服务配置
  • 协调器将碎片拼凑在一起
  • 将这些交付给Envoy并热重启的方法

另一方面,如果您选择使用gRPC流xDS实现,则需要:

  • 核心xDS服务
  • 发现注册表+您需要的任何集成
  • 描述您的Envoy配置的抽象对象模型

您最可能需要支持Envoy的其他辅助组件:

  • 证书/ CA商店
  • 统计收集引擎
  • 分布式跟踪后端/引擎
  • 外部认证
  • 限速服务

通常,您将需要考虑构建控制平面,以便组件独立运行并可以松散协作以提供控制平面的需求。 例如,在Gloo中,我们具有驱动基本控制平面的以下组件:

  • Gloo –一个事件驱动的组件,负责核心xDS服务和自定义Envoy筛选器的配置
  • Discovery –一个可选组件,它知道如何与服务发现服务(领事,Kubernetes等)一起使用,以发现并发布上游集群和端点。 它还可以发现REST终结点(使用swagger),gRPC函数(基于gRPC反射)以及AWS / GCP / Azure云功能。 该组件创建配置(在Kubernetes上,用CustomResourceDefinitions表示), Gloo组件可用于构建通过xDS表示的规范Envoy配置。 我们将在本系列博客的后续部分中看到更多内容。
  • Gateway –该组件允许用户使用更舒适的对象模型根据其角色(例如,边缘网关,共享代理,本地群集入口等)配置Envoy代理。 控制平面的这一部分还生成配置, Gloo控制平面可用于通过xDS生成Envoy配置

如您所见,这些基本组件协同工作以构建通过xDS服务的适当的Envoy配置。 Gloo通过使用这些无效协调的控制平面组件来实现Envoy配置,从而实现了其强大的功能(发现功能,对功能的语义理解等)。 当将Gloo部署到Kubernetes中时,存储和配置表示具有“ kube-native”的感觉:一切都由Custom Resource Definitions表示。 具体来说,所有面向用户的配置都是CRD以及驱动xDS端点的核心配置。 您可以只使用Kubernetes API和kubectl与Gloo进行交互。 但是,我们还提供了一个glooctl CLI工具来简化与Gloo控制平面的交互 -特别是这样,如果您不想这样做,就不必大惊小怪。 这样,Gloo非常专注于开发人员的经验,并且对开发人员(或任何人?)进行YAML攻击非常繁琐。

Istio还采用了类似的方法,即使用通过Kubernetes CRD配置的松散协调控制平面组件。 Istio的控制平面由以下组成:

  • Istio Pilot –核心xDS服务
  • Istio Galley –配置/存储抽象
  • Istio Citadel – CA /证书引擎
  • Istio Telemetry –遥测信号接收器
  • Istio Policy –可插拔策略引擎

带走

确定控制平面所需的核心组件。 不要尝试构建单一的整体式控制平面抽象,因为这将成为维护和更新的噩梦。 在松耦合架构中构建控制平面所需的组件。 如果您可以在Kubernetes之上构建,请这样做: Kubernetes为运行分布式系统(例如Envoy控制平面) 提供了非常强大的集成数据平面。 如果您确实在Kubernetes上构建了控制平面,则应该利用自定义资源定义来驱动控制平面的配置。 一些人选择使用Ingress定义 , 服务注释或配置图来构建其控制平面。 在Kubernetes CRD可用之前,这些可能是适当的解决方法,但此时您应该避免使用这些路径并坚持使用CRD。

翻译自: https://www.javacodegeeks.com/2019/02/control-plane-envoy-identify-components.html

为特使建立控制平面的指南-识别组件相关推荐

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

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

  2. 为特使建立控制平面的指南-部署权衡

    部署控制平面组件 构建并设计了控制平面后,您将需要确切确定如何部署其组件. 在这里,您可以选择将控制平面与数据平面共置一处以集中控制平面. 这里还有一个中间立场:部署与控制平面位于同一位置的某些组件, ...

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

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

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

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

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

    envoy api 网关 建立您的控制平面交互点和API表面 一旦考虑了哪些组件可能构成控制平面体系结构(请参见上一章),您将要确切考虑用户将如何与控制平面进行交互,甚至更重要的是, 用户将是谁? 要 ...

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

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

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

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

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

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

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

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

最新文章

  1. wamp安装多版本php,WampServer安装多个php版本
  2. MongoDB 索引
  3. matlab中.P文件的使用说明
  4. 闲鱼疯转6800份!大厂内部数据分析资料首公开!
  5. 树莓派3显示服务器SSH拒绝了密码,脚本封杀尝试树莓派SSH密码的来源IP
  6. MOSS数据库服务器迁移步骤
  7. go.js节点字体设置
  8. python遇到的问题
  9. 运算放大器权威指南(Op Amps for Everyone)
  10. 基于微信小程序的毕业设计题目(33)PHP校园失物招领小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  11. WEB服务器安全设置,有效防护网站攻击70%
  12. [usaco3.2.4]ratios
  13. 壁纸网站研究:强大到没朋友的壁纸网站整理(动漫/二次元/宅男/风景/真人)
  14. 【2021知识蒸馏】Show, Attend and Distill:Knowledge Distillation via Attention-based Feature Matching
  15. F5 BIG-IP LTM基础资料
  16. ChemDraw 2D与ChemBio 3D之间的信息转换
  17. .Net Core DI依赖注入:一个接口注入多个实现类
  18. redis实现计时器
  19. 题9.1:定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天, 注意闰年问 题。
  20. 中国数据分析师行业峰会:数据分析 一门技术与艺术结合的学问

热门文章

  1. Spark SQL(一)之简介
  2. SpringCloud Ribbon(一)之自定义负载均衡器ILoadBalancer
  3. Mysql调优你不知道这几点,就太可惜了
  4. 深入源码分析Java线程池的实现原理
  5. 违反ClassLoader双亲委派机制三部曲第二部——Tomcat类加载机制
  6. Oracle入门(十二F)之表分区
  7. JDK 5 ~ 10 新特性倾情整理
  8. Java Servlet总结
  9. 如何使用bootstrap实现轮播图?
  10. SpringCloud Openfeign