kong网关: service+route+upstream
对于刚开始学习kong网关,总是一脑子浆糊迷迷糊糊。虽然已经安装好,但却不知道接下来如何下手,
因为包含项太多:service、routes、upstream、consumer、plugins等等。一时不知从何下手配置服务。
最后又重新打开kong网关的基本介绍,看完之后决定先把问题简单化。所以第一步就先搭建一个service和route,
随后又构建了upstream。这三部分完成之后,一个基本的网关功能就算实现了。

简单画了一个流程图,基本表现了kong网关的调用过程。一共分为五部分:用户客户端、routes、services、upstream、target服务端。
客户端就是调用方,
routes路由匹配客户端的请求规则。匹配成功后分配到service层。一个路由指向一个service,一个service可以被多个不通规则的路由routes指向。
访问地址是kong网关地址+代理端口(默认http:8000,https:8443)
service服务是一个抽象服务层,可以用于指向具体物理服务(target),也可以指向upstream用于实现物理服务的负载效果。一个service对于upstream、target都是一对一的关系。
upstream主要用于实现kong的负载功能,一个service匹配到一个upstream后,upstream可以指向多个target服务以此来实现负载的效果。
target服务端指的就是最后的物理服务,当然也可以是其他的虚拟服务。
接下来开始搭建,因为上面的每一层都需要依赖下一层进行配置,所以我们可以从低层开始配置(也开始先创建高层,随后再行修改配置)
注意:以下新增命令都是post请求,如果使用get请求会返回已创建的信息;kongIp指的是kong网关的地址。http请求使用8001端口,https请求使用8444端口。
一、upstream
命令:http://kongIp:8001/upstreams/
主要参数:name(不能为空,service指向时使用),
algorithm(负载规则):默认round-robin。目前支持三种:round-robin, consistent-hashing, or least-connections
healthchecks.active.type:检查目标服务器target的健康方式。一共三类tcp、http、https
healthchecks.active.http_path:使用http协议检查target服务是否健康时绑定的路径。该路径可以指向target服务的一个请求地址,用于检测
target:指向具体得服务地址或者其他中间件服务。可匹配多个target。在新增target时需设定weight(权重),用于负载。
每个新建的target会有一个health指标,用于标记target是否联通健康。就是通过 healthchecks.active.type、healthchecks.active.http_path以及其他参数监测。
二、services
命令:http://kongIp:8001/services
主要参数:name:可为空,创建后生成一个id。routes通过id绑定service
protocol:请求upstream的协议(http、https)。默认http
host:upstream name(一定要和upstream名称保持一致)
port:请求upstream的端口(虚拟端口,可自定义)。默认80
path:请求upstream的路径。
三、routes
命令:http://kongIp:8001/routes
主要参数:name:route Name
protocols:允许访问该路由的协议;http\https。默认两个都允许
methods:匹配该路由的http方法,GET\POST
hosts: 匹配该路由的host地址,可以是ip也可以是域名。可以配置多个。如果是域名的话注意需要有域名解析
paths:匹配路由访问的路径
service.id:指向服务的id
以上就是这三部分构造的主要参数值。还有未列出的参数值大多有默认值。需要的话可自行添加修改
ps:
routes:http://centos7.kong:8000/land
service:http://landservice:9000/
upstream:http://land_up
target:http://192.168.60.1:9003/land
以上是我配置的信息,配置完成后可以通过访问routes地址直接访问到http://192.168.60.1:9003/land应用服务
主要通过这边文章对kong网关的配置先有个简单的梳理,有个大概的流程模型。后续再针对每个模块单独进行整理。
人生在世,杂事七八;饭要少吃,事要多知;抽个时间,总结一下;乐在分享,自在提升
kong网关: service+route+upstream的更多相关文章
- API网关之Kong网关简介
1. Kong简介 那么,Kong是一个什么东东呢?它是一个开源的API网关,或者你可以认为它是一个针对API的一个管理工具.你可以在那些上游service之上,额外去实现一些功能.Kong是开源的, ...
- kong网关命令(一)
上次在虚拟机里安装kong网关后,因为版本(1.4)太高,目前Kong Dashboard无法支持, 后续发现Git上有个开源工具Kong admin ui,下载源码并部署到NGINX. 但是发现使用 ...
- 在K3s上使用Kong网关插件,开启K3s的无限可能!
我的工作中很重要的一部分是参加各种各样的技术会议.最近参加的是去年11月的北美KubeCon,在会议的最后一天,所有人都焦头烂额,我也一直机械地向不同的人重复我的自我介绍.后来,我已经十分烦躁,决定逃 ...
- 使用KONG网关实现接口迁移的灰度验证
在我们对一个API站点进行微服务化的过程中,使用KONG网关可以实现以下几个效果: 1. 业务线无感知,其实内部已经被Kong转到其他站点上执行了,这对业务线特别友好. 2. 可以实现租户级/接口级灰 ...
- MacOs下安装Kong网关
写在前面: 持续记录一下自己在解决api网关kong上的各种问题. 1.关于Kong网关 这是官网地址:https://konghq.com/ 2.通过brew安装postgres 因为kong的数据 ...
- Kong网关安装之Docker版(2)
1.安装kong管理工具:konga或者kong-dashboard,这里选择konga 拉取konga镜像: sudo docker pull pantsel/konga:0.14.4 初始化kon ...
- Kong网关安装之Docker版(1)
前言: Kong 是天生的微服务网关.她的官方简介是:Kong 是一个云原生,高效,可扩展的分布式 API 网关. 自 2015 年在 github 开源后,广泛受到关注,目前已收获 1.9w+ 的 ...
- kong配置service和route实现简单API代理
目录 通过konga连接kong实现API接口代理 1. ADD NEW SERVICE 2. ADD ROUTE 3. 验证API 代理 浏览器验证 请求kong api kong使用Admin A ...
- k8s运维记 - 如何让部署到k8s的kong网关托管自定义静态资源?
目的 使用kong作为目录/data/reports的静态资源服务器,为了测试,已于目录/data/reports下创建文件report.html,如下: <html> <head& ...
随机推荐
- Git<一> 手工编辑冲突
一:背景 Neo君之前在写东西时,都是自己负责各自的模块,没有出现代码拉下来冲突的情况.最近Neo君在搞一搞前端的东东,跟同事功能有些冲突,所以就难免会冲突. 所以简单总结下,这次针对的情况是不同的用 ...
- net start mysql 发生系统错误2 系统找不到指定的文件
以管理员身份运行,在命令行输入cd+mySQL的bin目录的安装路径 C:\Windows\system32>cd C:\Program Files\MySQL\MySQL Server5.6\ ...
- Realsense D430 save
rs-save-to-disk.cpp // License: Apache 2.0. See LICENSE file in root directory. // Copyright(c) 2015 ...
- Expression: __acrt_first_block == header
File: minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp Line: 996 Expression: __acrt_first_block == ...
- 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_02-用户认证-认证服务查询数据库-需求分析&搭建环境
1.2 认证服务查询数据库 1.2.1 需求分析 认证服务根据数据库中的用户信息去校验用户的身份,即校验账号和密码是否匹配. 认证服务不直接连接数据库,而是通过用户中心服务去查询用户中心数据库. 完整 ...
- Transaction check error:
Transaction check error: file /etc/my.cnf from install of MariaDB-common-10.3.16-1.el7.centos.x86_6 ...
- javascript模拟生成uuid
function guid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r ...
- (二)Centos之在VM虚拟机中安装Centos操作系统
一.下载 阿里云镜像 https://mirrors.aliyun.com/centos/7/isos/x86_64/ 下载那个 DVD版本即可. 二.安装 在安装操作系统之前 我们来给这个“机器”搞 ...
- iOS中处理json解析出现的null,nil的解决办法
最开始是使用的一个函数进行处理,代码如下: - (id) setNoNull:(id)aValue{ if (aValue == nil) { aValue = @"";//为nu ...
- 函数 、while、case、select 语句结合
[root@bogon ~]# cat menue.sh #!/bin/bash yum_list(){ #列出所有yum安装包 yum repolist [ $? -eq ] && ...