插件(Plugins)

插件是什么?

Kong Gateway是一个Lua应用程序,旨在加载和执行Lua或Go模块,我们通常称为插件。Kong提供了一组标准的Lua插件,这些插件与Kong Gateway捆绑在一起。您可以访问的插件集取决于您的安装方式:开源、企业版或在Kubernetes上运行的这些Kong Gateway选项之一。

Kong社区也可以开发自定义插件,并由插件的创建者提供支持和维护。如果它们在Kong插件中心发布,它们被称为社区或第三方插件。

为什么使用插件?

插件提供高级功能并扩展了Kong Gateway的使用,可以让您给实现添加新特性。插件可以配置在各种上下文中运行,从特定路由到所有upstreams,并可以在请求被代理到upstream API之前或之后以及在任何传入响应时在Kong内部执行操作。 

插件与部署类型的兼容性

Kong Gateway可以以多种方式进行部署,并非所有插件都与每种模式完全兼容。请参考插件兼容性进行比较。

优先级 

每个请求始终只运行一个插件实例。它运行的配置取决于为其配置的实体。插件可以配置为适用于各种实体,实体的组合,甚至全局。这在以下情况下很有用,例如,当您想要为大多数请求以某种方式配置插件,但希望对已认证的请求行为稍有不同时。

因此,当某个插件应用于具有不同配置的不同实体时,存在一个插件运行的优先顺序。配置给特定插件的实体数量直接与其优先级相关。配置给插件的实体越多,其优先顺序就越高。对于配置给多个实体的插件来说,完整的优先顺序如下:

  1. 配置在消费者、路由和服务的组合上的插件。
  2. 配置在消费者组、服务和路由的组合上的插件。
  3. 配置在消费者和路由的组合上的插件。
  4. 配置在消费者和服务的组合上的插件。
  5. 配置在消费者组和路由上的插件。
  6. 配置在消费者组和服务上的插件。
  7. 配置在路由和服务上的插件。
  8. 配置在消费者上的插件。
  9. 配置在消费者组上的插件。
  10. 配置在路由上的插件。
  11. 配置在服务上的插件。
  12. 全局配置的插件。 
术语 (Terminology)

 插件(Plugin)

Kong Gateway的扩展。
对于由Kong开发和维护的插件,插件版本通常不会对您的实现产生影响,除了了解哪个Kong版本包含哪个插件功能。Kong插件与Kong Gateway捆绑在一起,因此兼容的插件版本已经与正确的Kong版本关联起来。

Kong插件或Kong捆绑插件 

由Kong开发、维护和支持的插件。
由于第三方插件并非由Kong维护并且未捆绑在Kong Gateway中,版本兼容性是一个更大的问题。请查看每个单独插件页面以了解其经过测试的兼容性。

如果插件页面上的版本已过时,请直接联系维护者。

不支持的插件

由外部开发人员开发、测试和维护的自定义插件,而不是由Kong开发。Kong不会测试这些插件,也不会更新它们的版本兼容性。

开发自定义插件 

Kong提供了完整的开发环境,用于开发插件,包括Lua和Go的SDK,数据库抽象层,迁移工具等等。

插件由通过Plugin Development Kit(PDK)与请求/响应对象或流进行交互的模块组成,以实现任意逻辑。Kong为两种语言提供了PDK:Lua和Go。这两个PDK都是一组插件可以使用的函数,用于促进插件与Kong的核心(或其他组件)之间的交互。

 贡献自定义插件

如果您希望与其他Kong用户共享您的自定义插件,您还必须向Kong插件中心提交插件参考文档。请查看添加文档的贡献指南。 

 

你可能感兴趣的:(Kong,kong,gateway)