gloo pytorch

因此,您决定在AWS中运行Kubernetes工作负载。 正如我们在设置AWS EKS 之前所看到的,需要很多耐心和头痛。 您可能可以使其正常运行。 对于其他用户,您应该从Weaveworks中 eksctl 工具 。

现在,您已经有了一个Kubernetes集群,您想要开始向其部署微服务,并开始向您的客户和组织的其他部门公开和集成API和服务。 在Solo.io,我们开源了一个基于名为Gloo的Envoy Proxy构建的微服务网关 。 Gloo是Envoy的一个平台不可知的控制平面,目的是为了理解“功能”级别的调用(认为是HTTP路径/方法/标头,gRPC调用或Lambda函数的组合),目的是组成它们并为北向构建更丰富的API南方和东西向交通。 GLOO也是服务网技术,如高度互补Istio 。

Gloo的功能包括:


  • 函数路由(REST方法,gRPC端点,Lambda /云函数)
  • 细粒度的流量转移(功能金丝雀,功能加权路由等)
  • 请求/内容转换(隐式和显式)
  • 授权/认证
  • 限速
  • gRPC
  • Web套接字
  • SOAP / WSDL
  • 深度指标收集
  • 用于聚合数据API的GraphQL引擎
  • 强大的与平台无关的发现机制

Gloo具有非常深的Kubernetes原生支持,并且可以作为Kubernetes集群的集群入口运行。 附带说明一下,对于Ingress急需的澄清,API Gatweay,API管理(甚至是服务网格)请看博客文章“ API网关正在经历身份危机”

为了帮助人们在AWS EKS中使用Gloo,我们不得不浏览选择和公开Kubernetes中运行的服务的相当复杂的选择。 对于其他Kuberentes本机入口,API或功能网关,这些选项将相同。 由于AWS EKS是Kubernetes,因此我们可以通过以下方式公开类似Gloo的微服务/ API网关:

  • Kubernetes 入口资源
  • 类型为LoadBalancer的Kubernetes 服务
  • Kubernetes 服务作为NodePort (不建议用于生产环境)

在Gloo上,我们还在致力于本机OpenShift的支持 ,应该尽快提供。

同时,如果您正在AWS EKS上运行工作负载,则可能对如何利用微服务网关或是否应仅使用AWS托管AWS API Gateway存有疑问。

让我们在这里探索选项。

将AWS API Gateway与您的EKS集群一起使用

AWS EKS实际上是Kubernetes的托管控制平面,您可以自己运行工作程序节点。 一种典型的设置是将您的工作节点(EC2主机)放置在专用VPC中,并使用所有内置的VPC隔离,安全组,IAM策略等。一旦开始将工作负载/微服务部署到Kubernetes集群,您可能希望揭露他们和/或您的客户/消费者/合作伙伴等你的第一个问题可能是一起的“好了,因为我使用AWS,它应该只是超级好用的线条提供了一个很好的去耦API AWS我的Kubernetes集群前面的API网关 ”。


在开始挖掘时,您意识到将AWS API Gateway连接到EKS集群并不是那么简单。 您会发现AWS API Gateway在其自己的VPC中运行,并且受到完全管理,因此您看不到有关其基础架构的任何详细信息。 幸运的是,使用AWS API Gateway,您可以执行“私有集成”以连接到在您自己的VPC中运行的HTTP端点 。


专用集成允许您在专用VPC中公开网络负载平衡器(NLB) ,这可以终止API网关与VPC集成的流量。 因此,基本上,AWS API网关将创建一个VpcLink到运行在VPC中的NLB 。

太好了! 网络负载平衡器是一个非常强大的负载平衡器,但是即使它在VPC中运行,它也不了解或不了解Kubernetes集群(即Kubernetes Pods)中运行的工作负载。 让我们改变这个。 此时,我们需要部署某种Kubernetes Ingress端点,该端点了解如何路由到Pod 。 一些人可能会倾向于此时使用本地Kubernetes Ingress资源,或者您真的可以只使用暴露为“ LoadBalancer”的单个Kubernetes服务。 实际上,我们可以更进一步。 在EKS的Kubernetes服务中指定LoadBalancer时创建的默认负载均衡器是经典负载均衡器 。 此问题是API网关无法路由到经典负载均衡器。 我们需要在EKS内运行的Kubernetes服务来创建网络负载平衡器 。 例如,此配置将创建经典的负载均衡器:

apiVersion: v1
kind: Service
metadata:name: gloonamespace: defaultannotations: {}
spec:ports:- name: httpport: 80protocol: TCPtargetPort: 80selector:app: gloo
type: LoadBalancer

添加注解service.beta.kubernetes.io/aws-load-balancer-type: "nlb"会导致我们在EKS中创建此服务时,AWS创建网络负载平衡器:

apiVersion: v1
kind: Service
metadata:name: gloonamespace: defaultlabels:app: glooannotations:service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
spec:externalTrafficPolicy: Localports:- name: httpport: 80protocol: TCPtargetPort: 80selector:app: gloo
type: LoadBalancer

至此,我们已经正确配置了负载均衡器(私有VPC中的NLB)和AWS API Gateway的正确组合。 我们甚至可以在AWS API Gateway上启用AWS Web应用程序防火墙(WAF) 。 唯一的问题是,我们在边缘具有AWS API Gateway的功能(和成本),但是它仍然不了解Kubernetes集群中正在运行的工作负载。


当我们想要执行诸如Canary发布,API聚合,功能路由和内容转换之类的事情时,我们需要在Kubernetes集群中进行。 格洛为此解决了。 那么,您真的需要API网关-> NLB-> API网关吗? 在这种情况下,您可以将网络负载平衡器升级到公共子网,让Gloo处理所有API网关路由,流量整形,速率限制,而不会丢失AWS API网关的任何功能(Lambda路由,AuthZ / N,Websockets等)。


替代设置

我们在上一节的开头假设是,使用EKS时,与替代解决方案相比,AWS API Gateway将更易于与Kubernetes集群集成。 我们发现情况并非如此。 但是,我们还有其他选择。 如果您使用的是EKS,则需要在Kubernetes中运行的某种API网关或微服务网关。 但是,我们如何获得到EKS集群的流量呢? 如果我们想利用AWS Web Application Firewall(WAF)之类的东西怎么办?

鉴于各种类型的负载均衡器以及在AWS EKS中运行微服务/ API网关的权衡,我们拥有的选项归结为以下几点:

AWS API网关+专用VPC NLB +简单的Kubernetes入口


这与上一节类似,但是您没有选择使用像Gloo这样的强大微服务网关,而是选择在Kubernetes中使用基本的入口控制器。 在这种情况下,您可以利用AWS API Gateay,拥有AWS Web Application Firewall之类的不错的东西,但是却失去了在EKS(pod)中运行的工作负载的保真度

AWS API网关+专用VPC NLB +功能强大的Kubernetes微服务网关(例如Gloo)


这是上一节中的用例。 现在,您已经获得了微服务网关的功能,使其更接近于EKS中的工作负载,但是您的边缘处有冗余且昂贵的网关。 这样做的好处是您仍然可以利用AWS Web应用程序防火墙(WAF)。

公共NLB +功能强大的Kubernetes微服务网关(例如Gloo)


在这种情况下,我们避开了AWS API Gateway,仅使用了位于公共子网中的网络负载平衡器。 现在,微服务/ API网关的所有功能都靠近您在EKS中的工作负载,但是您丢失了Web应用程序防火墙(无法应用于NLB)。 如果您拥有自己的WAF,这可能不是一个坏的折衷。


公用ALB +专用NLB +功能强大的Kubernetes微服务网关(例如Gloo)

您可以使用Application Load Balancer(您可以应用AWS WAF)更好地控制面向公众的网络请求,并且仍将EKS流量保持私有状态,并通过私有NLB进行控制。 通过这种方法,您还可以通过CloudFormation集中管理所有TLS证书

作为Kubernetes集群专用的Kubernetes入口控制器+ Kubernetes API网关管理的公共ALB


您可以将Kubernetes Ingress与Application Load Balancer 3rd-party插件一起使用来管理Kubernetes中的ALB。 此时,您可以在EKS集群中本地和私有地运行API Gateweay,但由于我们使用的是ALB,因此仍可以利用WAF。 缺点是此功能由第三方插件提供, 您无法通过云形成来集中管理证书 。 也就是说,您必须使用Ingress批注来管理这些批注 。

结论

有许多选项可在AWS EKS中运行您的微服务/ API网关。 每种组合都需要权衡取舍,应仔细考虑。 我们专门构建了Gloo ,使其成为功能强大的跨平台,跨云微服务API网关。 这意味着在AWS,本地或任何其他云上运行时,您还有更多选择。 每个组织都会有其独特的约束,观点和选择。 我们相信,有很多不错的选择可以使微服务整体或本地混合部署成功部署到公共云。 如果您对此用例有其他建议, 请在Twitter或此博客的评论中与我联系@christianposta 。

翻译自: https://www.javacodegeeks.com/2019/02/exposing-running-microservices.html

gloo pytorch

gloo pytorch_使用Solo Gloo等微服务/ API网关公开在AWS EKS中运行的微服务相关推荐

  1. 使用微服务/ API网关(如Solo Gloo)公开在AWS EKS中运行的微服务

    因此,您决定在AWS中运行Kubernetes工作负载. 正如我们在设置AWS EKS 之前所看到的,需要很多耐心和头痛. 您也许可以使其正常运行. 对于其他用户,您应该从Weaveworks中 ek ...

  2. vivo亿级微服务 API 网关架构实践

    一.背景介绍 网关作为微服务生态中的重要一环,由于历史原因,中间件团队没有统一的微服务API网关,为此准备技术预研打造一个功能齐全.可用性高的业务网关. 二.技术选型 常见的开源网关按照语言分类有如下 ...

  3. 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul

    通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...

  4. 又肝了下微服务 API 网关“金刚”,也是蛮香的~

    " 摘要: 原创出处 http://www.iocoder.cn/Kong/install/ 「芋道源码」欢迎转载,保留摘要,谢谢! 1. 概述 2. 快速安装 3. Kong 控制台 4. ...

  5. api网关选型_微服务 API 网关 APISIX 发布 0.5 版本,达到可用状态

    项目介绍 APISIX (https://github.com/iresty/apisix)  是一个云原生.高性能.可扩展的微服务 API 网关. APISIX 基于 OpenResty 和 etc ...

  6. Kong 1.0 GA 版本正式发布,微服务 API 网关

    Kong 1.0 GA 版本已正式发布,这是一款可扩展.快速且开源的微服务 API 网关,用于管理.保护与连接混合及云原生架构.Kong 运行于全部服务之前,并可以通过插件实现各种扩展,例如身份验证. ...

  7. vivo 微服务 API 网关架构实践

    一.背景介绍 网关作为微服务生态中的重要一环,由于历史原因,中间件团队没有统一的微服务API网关,为此准备技术预研打造一个功能齐全.可用性高的业务网关. 二.技术选型 常见的开源网关按照语言分类有如下 ...

  8. C# Windows服务启动错误1083配置成在该可执行程序中运行的这个服务不能执行该服务

    今天参考微软的软件windows服务的教程 :https://docs.microsoft.com/zh-cn/dotnet/framework/windows-services/walkthroug ...

  9. 建设微服务API网关的一些实践

    随着这些年微服务的流行,API网关已经成为微服务架构中不可或缺的一环.一方面它承担着服务对外的唯一门户,一方面它提取了许多应用的共性功能. 整体架构 我们的API网关目前的架构如下图所示,可以看到AP ...

最新文章

  1. Windows10下Python3做OpenGL的编程
  2. u盘里文件夹变成屏幕保护程序_嘘!免费告诉你这几款U盘加密软件
  3. weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB cannot be cast to oracle.sql.BLOB 解决方法
  4. ZeroC ICE的远程调用框架 代理引用地址
  5. FLOAT或DOUBLE列与具有数值类型的数值进行比较 问题
  6. 230. Kth Smallest Element in a BST
  7. 1024程序员节 | 我敢____,你敢么?Are you ready?
  8. 手机号段对应地区编码_什么是编码器?了解两种类型的编码器
  9. mysql高可用架构_MySQL高可用架构对比
  10. Matlab·Simulink的使用—【S函数的创建与应用】
  11. 【51单片机】蜂鸣器程序
  12. 打开eclipse翻译错误值13 的解决办法
  13. 【算法竞赛入门经典】习题1-4:正弦和余弦
  14. 利用费马小定理进行素性测试
  15. 菜鸟教程中的面试题总结
  16. 此计算机上无法找到autocad2017,电脑安装cad2017时提示错误:无法定位inf文件怎么办...
  17. Vue Echarts世界地图
  18. Oracle Datapump实验
  19. python urllib模块
  20. 外语配音软件“布谷鸟配音“和ffmepg转换软件的使用以及SYD_Calculator提取文件到C语言

热门文章

  1. android 电信4gapn,电信apn怎么设置4g最快最稳定的网络?
  2. 【化解数据结构】详解字典结构,并实现一个字典
  3. 《“胡”说IC——菜鸟工程师完美进阶》
  4. Es检索 must与filter区别
  5. 双重边际效用(Double Marginalization)
  6. POJ 2942 圆桌骑士 (点双学习笔记)
  7. 部分ARCGIS菜单翻译——初练
  8. 创业可以做什么项目,六个轻资产创业项目推荐
  9. 论文阅读:Oriented RepPoints for Aerial Object Detection (CVPR 2022)
  10. ajax调用fastreport,使用Ajax更新ASP.Net MVC项目中的报表对象