简介
- Kong Gateway
Kong Gateway是为微服务优化的开源、轻量级API网关,提供无与伦比的延迟、性能和可伸缩性。如果您想要基于此基础进行建设,这将是符合您的选择。
- kong的企业版与免费试用
本指南还包括一些特定于Kong Enterprise和Kong Gateway (Enterprise)的功能。它们会在下面的蓝色的方块中被调用,或者在它们自己的Kong Manager标签中被调用。
Kong Enterprise以企业特色和支持扩展了Kong Gateway。它使用插件提供高级功能,以保证安全性、协作性、可伸缩性和高级协议的使用。
如果你目前还没有Kong Enterprise,但想体验一下,请查看我们的免费试用版(https://konghq.com/products/kong-enterprise/free-trial?itm_source=website&itm_medium=nav)。
概念和功能
以下是本指南的内容,以及各部分如何组合在一起的:
Kong 结构图
- Service:服务对象是Kong Gateway用来引用其管理的上游API和微服务的ID。
- Routes:路由指定请求到达API网关后如何(以及是否)发送到它们的服务。单个服务可以有多个路由。
- Consumers:消费者代表API的最终用户。消费者对象允许您控制谁可以访问您的api。它们还允许您使用日志插件和Kong Vitals来报告流量。
- Kong Manager:Kong Manager是基于浏览器的工具,用于监视和管理Kong Enterprise。只有Kong的企业版才有此功能。
- Admin API:Kong Gateway提供了一个用于管理的内部RESTful API。API命令可以在集群中的任何节点上运行,配置将一致地应用于所有节点。此功能在企业版中进行了增强。
- Plugins:插件提供了一个修改和控制Kong网关的能力模块系统。例如,为了保护您的API,您可能需要一个访问密钥,您可以使用key-auth插件设置它。插件提供了广泛的功能,包括访问控制、缓存、速率限制、日志记录等等。
- Rate Limiting plugin:这个插件允许你限制客户端在给定时间内可以发出的HTTP请求的数量。此功能在企业版中进行了增强。
- Rate Limiting Advanced plugin:这个插件的高级版本还提供了滑动窗口支持,以及通过头和服务进行限制的能力。此功能在企业版中进行了增强。
- Proxy Caching plugin:这个插件提供了一个反向代理缓存实现。它根据响应代码、内容类型和请求方法在给定时间内缓存响应实体。此功能在企业版中进行了增强。
- Proxy Caching Advanced plugin:这个插件的高级版本支持Redis和Redis哨兵部署。此功能在企业版中进行了增强。
- Key Auth plugin:这个插件允许您向服务或路由添加key认证(也称为API key)。此功能在企业版中进行了增强。
- Key Auth - Encrypted plugin:此插件的高级版本将API key以加密格式存储在Kong Gateway数据存储中。此功能在企业版中进行了增强。
- Load Balancing:Kong Gateway提供了两种负载均衡方法:直接DNS-based或使用ring-balancer。在本指南中,您将使用ring-balancer,它需要配置上游实体和目标实体。此方法后端服务的添加和删除都由Kong Gateway处理,无需DNS更新。
- User Authorization (RBAC):Kong Gateway(企业版)通过基于角色的访问控制(RBAC)处理用户授权。一旦启用,RBAC允许您创建团队和管理员,并在工作空间内或跨工作空间为他们分配粒度权限。只有Kong的企业版才有此功能。
- Developer Portal:开发人员门户为所有开发人员定位、访问和使用服务提供了一个单一的真实来源。只有Kong的企业版才有此功能。
了解Kong Gateway的流量
默认情况下,Kong Gateway监听其配置的代理端口8000和8443上的流量。它评估传入的客户机API请求,并将它们路由到适当的后端API。在路由请求和提供响应时,可以根据需要通过插件应用一些策略。
例如,在路由请求之前,可能需要对客户端进行身份验证。这带来了几个好处,包括:
- 服务不需要自己的身份验证逻辑,因为Kong Gateway正在处理身份验证。
- 该服务仅接收有效请求,因此不会浪费周期来处理无效请求。
- 所有请求都被记录下来以实现中心流量的可见性。
Kong的流量过程图
开始之前
在开始使用本指南之前,请注意以下几点:
- 安装
- 本指南假设您已在您选择的平台上安装并运行了Kong Gateway或Kong Gateway(企业版),或者您已经注册了企业版免费试用版。
- 安装过程中,请注意KONG_PASSWORD;在本指南后面的部分中,您将需要它来设置用户授权;
- 部署指南
- 可以使用此向导开始在生产环境中工作,但此向导不提供生产环境所需的所有必要配置和安全设置。
- 本指南中的示例都使用来引用Kong Gateway实例的Admin API URL。请确保将变量替换为您的Kong Gateway安装的实际URL。(要查找URL,请检查/etc/孔/孔.conf文件中的admin_listen属性)
- 本指南
- 在本指南中,您可以选择以几种不同的方式配置Kong。选择你喜欢的方法,每一项都是可用的——你不需要遍历所有:
- 使用基于rest的管理API以编程方式管理Kong
- 使用Kong Manager GUI(仅供企业或免费试用用户使用)
- 使用decK进行声明性配置(YAML)
- 如果你在混合模式下运行Kong,本指南中包含的所有任务都将在控制平面上进行。
- 本指南在HTTPie和cURL中提供了Kong管理API示例。如果你想使用HTTPie,从这里安装它(https://httpie.org/)。
- 凡提及“Kong Gateway”,均指Kong Gateway和Kong Gateway(企业版)共同的功能或概念。