Kong使用概览

编程

Kong是什么

Kong原意为金刚,形容强健、力量、坚固、稳定。它基于Nginx和OpenResty,是一个具有分布式、高性能、高并发、可伸缩、可扩展、动态配置等特性的微服务抽象层,

Kong作为一个优秀的开源云源生项目,目前在GitHub上星数超过26000+,

最早被列入CNCF(Cloud Native Computing Foundation,云原生计算基金会)全景图。

Kong可以做什么

术语

  • client:向Kong代理端口发出请求的下游客户端
  • upstream service:指的是位于Kong后面的的API /服务,客户端请求/连接将转发到该API /服务
  • Service:服务实体,每个上游服务的抽象
  • Route:路由实体,进入Kong的入口点,它定义了要匹配的请求的规则,并路由到给定的服务。
  • Plugin:可以为全局、Service,Router配置,在代理的生命周期中执行业务逻辑
  • Consumer:消费者的核心原则是您可以将插件附加到他们,从而自定义请求行为,消费者可以代表一个用户,一个应用程序等。

代理

Kong将根据您配置的路由,评估任何传入的HTTP请求或L4连接,并尝试查找匹配的路由。 如果给定请求符合特定路由的规则,则Kong将处理代理请求。

Kong在匹配到路由之后,将运行在路由及其相关服务上配置的插件,然后再代理到上游请求。

路由匹配协议及属性:

  • http: methods, hosts, headers, paths (and snis, if https)
  • tcp: sources, destinations (and snis, if tls)
  • grpc: hosts, headers, paths (and snis, if grpcs)

如果Kong无法匹配路由(或者如果未配置任何路由),它将以以下方式响应:

{"message": "no route and no Service found with those values"}

匹配优先级:

when evaluating a request, Kong will first try to match the Routes with the most rules.

配置文件

默认配置文件在/etc/kong/kong.conf

从配置文件中加载属性时,Kong还将寻找同名的环境变量。 这使您可以通过环境变量完全配置Kong,

例如,这对于基于容器的基础结构非常方便。

要使用环境变量覆盖设置,请声明一个环境变量,其名称为该设置的名称,前缀为KONG_,并使用大写字母。

例如:

log_level = debug # 配置文件

KONG_LOG_LEVEL=error # 覆盖配置文件

认证

关于Consumer

在官方文档中,消费者的概念出现在认证章节中,“消费者的核心原则是可以将插件附加到他们,从而自定义请求行为”。

所以消费者是配合认证插件使用的,在使用认证插件时必须配置消费者的凭证。使用认证插件,就可以识别出是哪个消费者发起的请求,

而消费者又可以绑定插件,从而实现根据不同的消费者执行自定义请求行为。

Konga

Konga是一个非官方的,开源的目前最好用的UI管理工具。

konga 管理工具在添加任何插件时,第一行都是consumer,按照上面的理解,对任何插件这个值都是不应该填写的。应当在具体的consumer上,添加插件。

插件执行顺序

优先级越高,先执行

lua代码搜索路径

以上是 Kong使用概览 的全部内容, 来源链接: utcz.com/z/518230.html

回到顶部