五分钟初识Gloo

Gloo是一种基于Kubernetes原生设计的功能丰富的Ingress Controller,致力于成为下一代API网关标杆产品。 Gloo在函数级路由等方面表现优异;对旧式应
用、微服务和serverless提供支持; 它具备高效的发现能力,且功能多样; 并与领先的开源项目(如Envoy、KNative等)紧密集成。 Gloo的独特设计旨在支持
异构应用程序,与多种技术,体系结构,协议和云中共存。


一、何为Gloo

  • Kubernetes ingress controller*: 当部署在Kubernetes上时,Gloo可以充当功能丰富的入口控制器,并且当部署到AWS EKS等公共云时,可以简化路由功能。

  • 异构应用: Gloo创建的应用程序路由到实现为微服务,无服务器功能和旧式应用程序的后端。 此功能可以帮助用户逐渐从旧代码迁移到微服务、无服务器架构。
    用户在保持其原有代码逻辑前提下,使用云原生技术添加新功能; 组织中的不同团队可以选择不同架构及其他场景。

  • 服务网格Ingress: 服务网格技术解决了跨云网络的服务到服务通信问题。 可以使用服务网格解决诸如服务标识,七层网络遥测信息收集,服务弹性,服务之
    间的流量路由以及策略执行(例如配额,速率限制等)之类的问题。 为了使服务网格正常运行,它需要一种使流量进入网格的方法。 将流量从边缘传输到集群内部的
    问题与服务到服务的问题有所不同。 前端网关应当提供缓存,安全性和流量管理,Oauth和最终用户身份验证/授权,用户速率限制,Web应用程序防火墙等。 Gloo
    解决了以上问题,兼容所有服务网格技术,包括Istio,Linkerd,Consul Connect和AWS App Mesh。


二、Gloo特色

  • 功能级路由允许集成旧版应用程序,微服务和无服务器:Gloo可以路由
    直接向_functions_请求,可以是:无服务器功能调用(例如Lambda,Google Cloud Function,OpenFaaS函数等);
    微服务或旧服务上的API调用(例如REST API调用,OpenAPI操作,XML / SOAP请求等);
    或发布到邮件队列(例如,NATS,AMQP等)。 这种独特的功能使Gloo成为唯一的API网关
    支持混合应用程序,以及不将用户绑定到特定范例的唯一应用程序。

  • Gloo包含经过审查的开源项目,以提供广泛的功能:Gloo通过与顶级开源项目(包括gRPC,GraphQL,OpenTracing,NATS等)集成来支持高质量功能。
    Gloo的体系结构允许在将来流行的开源项目出现时快速集成它们。

  • 全自动发现使用户可以快速移动:Gloo在启动时会创建所有可用目的地的目录,并不断对其进行更新。 这使开发人员无需承担“记账”的责任,并确保新功能
    在准备就绪后立即可用。 Gloo跨IaaS,PaaS和FaaS提供程序以及Swagger,gRPC和GraphQL发现。

  • Gloo与用户环境紧密集成:通过Gloo,用户可以自由选择自己喜欢的调度工具(例如K8S,Nomad,OpenShift等),持久性(K8s,Consul等)和安全性
    (K8s, Vault)。

路由特性

  • 动态负载均衡:跨多个上游服务负载均衡流量。

  • 健康检查: 主动和被动监视上游服务。

  • OpenTracing标准: 使用支持良好的OpenTracing标准监视请求。

  • 监控: 支持Prometheus、Statsd方式监控。

  • SSL: 高度可定制的选项,用于向上游服务添加SSL加密,并完全支持SNI。

  • 转换: 添加,删除或处理HTTP请求和响应。

通用特性

Gloo可以轻松应对管理入口流量进入应用程序架构(不单单是Kubernetes)的挑战。在Kubernetes,AWS Lambda,VM,Terraform,EC2,Consul
等架构/平台中运行时,可以动态发现后端服务。Gloo同时也被选为KNative项目的首选ingress项目,其主要有以下特性。

  • 解决云原生和混合云的挑战:微服务使应用程序的API更加复杂。 Gloo实现了API网关模式,通过实现管理平面来提升业务的可操作性。
  • 构建Envoy代理:Gloo是Envoy Proxy的控制平面,使开发人员和操作员可以通过以声明性格式的xDS gRPC API动态更新Envoy配置。
  • 服务网格的基石:Gloo将服务网格功能添加到集群入口。 Gloo允许您以迭代的方式渐进式使用高级功能,并与诸如Flagger的系统进
    行金丝雀自动化发布,同时以本地化方式插入服务网格实现(如Istio,Linkerd或Consul)。
  • 针对应用程序的集成:Gloo可以将请求直接路由到Function、微服务或遗留服务上的API,或发布到消息队列。这种独特的功能使Gloo成为支持混合应用程序的唯一
    API网关,而不会将用户束缚于特定的技术方案。
  • 强大的社区特性:Gloo通过与顶级开源项目(如gRPC,GraphQL,OpenTracing,NATS等)集成来支持高级别功能。 Gloo的技术架构允许在未来流行的开源项目
    出现时快速集成。
  • 全自动发现能力:Gloo动态发现能力,跨IaaS,PaaS和FaaS
  • 与现有工具集成:使用Gloo,用户可以自由选择自己喜欢的调度工具(例如K8S,Nomad,OpenShift等),持久化(K8S,Consul等)和安全特性(K8,Vault)。