Kong 的官方有很多详细的参考说明,比如配置文件、命令行、Admin API、代理、负载均衡,接下来我们简单看一下,都提供什么内容。
本文主要基于 Kong 1.3 版本进行描述,如有更新,请查看最新文档。
通过对配置文件的 深入理解,可以优化 Kong 集群、使用的数据库、配置 Nginx ,
官方的参考资料是 Configuration Reference
Kong 在启动时,可以通过 -c
或者 --conf
参数来指定配置文件,比如:
kong start -c /path/to/kong.conf
可以使用 check 命令来校验配置文件的语法正确性,
$ kong check <path/to/kong.conf>
configuration at <path/to/kong.conf>
is valid
Kong 的配置在加载的时候也会去找同名的环境变量,所有也可以通过环境变量来配置 Kong,而且环境变量的优先级高于配置文件。可以通过环境变量来配置 Kong 这样方便了基于容器的部署和运行。如果要使用环境变量,需要以 KONG_
字段开头。
所提供的CLI(命令行接口)允许您启动、停止和管理 Kong 实例。CLI 可以管理本地节点(如在当前机器上)。可以参考官网文档
CLI Reference
主要由如下命令
所有的命令都可以使用如下参数
Admin API 的说明可以参考官网文档:
Admin API Reference
Admin API 接受 2 两种连接类型在每个终端。
分别是
共有 9 个对象,分别是:
在本文档中,我们将通过详细解释Kong的路由功能和内部工作原理来介绍它的代理功能。
Kong 公开了几个接口,可以通过两个配置属性进行调整:
Kong 经常用到的术语有:
Kong 为多个后端服务提供了多种负载平衡请求的方法: 一种简单的基于 DNS 的方法,另一种是更动态的环形平衡器,该平衡器还允许在不需要DNS服务器的情况下进行服务注册。
负载均衡可以参考官网文档
Load Balancing Reference 来了解。
当使用基于 DNS 的负载平衡时,后端服务的注册是在 Kong 之外完成的,而 Kong 只接收来自 DNS 服务器的更新。
如果主机名没有解析为上游名称或 DNS 主机文件中的名称,则使用包含主机名(而不是IP地址)的主机定义的每个服务都将自动使用基于 DNS 的负载平衡。
DNS 记录 ttl 设置(生存时间)决定信息刷新的频率。当使用 ttl 为 0 时,每个请求都将使用自己的 DNS 查询进行解析。这将带来性能损失,但是更新/更改的延迟将非常低。
A 记录
一个 A 记录对应一个或者多个 IP 地址,因此,当主机名解析为 A 记录时,每个后端服务必须有自己的IP地址。
因为没有权重信息,所以所有条目在负载平衡器中都将被视为同等权重,并且平衡器将进行直接的循环。
SRV 记录
SRV记录包含所有IP地址的权重和端口信息。后端服务可以通过IP地址和端口号的唯一组合来标识。因此,一个IP地址可以在不同的端口上承载相同服务的多个实例。
因为权重信息是可用的,所以每个条目将在负载平衡器中获得自己的权重,并执行加权循环。
DNS 的优先级
1、前面解析的最后一个成功类型
2、SRV 记录
3、A记录
4、CNAME 记录
这些可以在配置文件的 dns_order
进行配置。
使用 Ring-balancer 时,后端服务的添加和删除将由 Kong 处理,不需要 DNS 更新。Kong 将作为服务注册处。节点可以通过一个HTTP请求添加/删除,并将立即启动/停止接收流量。
配置 Ring-balancer 工作需要有 Upstream 和 target 两个实体。
virtual hostname
,可用于路由的 host
字段,例如一个 upstream 是 weather.v2 会收到服务 host=weather.v2.service 的所有请求。本来大致讲述了 Kong 的配置文件、命令行、代理、负载均衡等内容。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。