运维驿站kubernetes以及运维开发系列部署运维

kong/konga使用

2019-12-26  本文已影响0人  肖金光xjg

kong

基本特征

Cloud-Native:与平台无关,Kong可以从裸机运行到Kubernetes。
动态负载平衡:在多个上游服务之间平衡流量。
基于哈希的负载平衡:具有一致的哈希/粘性会话的负载平衡。
断路器:智能跟踪不健康的上游服务。
运行状况检查:主动和被动监视上游服务。
服务发现:在第三方DNS解析器(例如Consul)中解析SRV记录。
无服务器:直接从Kong调用和保护AWS Lambda或OpenWhisk功能。
WebSockets:通过WebSockets与您的上游服务进行通信。
gRPC:与gRPC服务进行通信,并通过日志记录和可观察性插件观察流量
OAuth2.0:轻松将OAuth2.0身份验证添加到您的API。
日志记录:通过HTTP,TCP,UDP或磁盘记录对系统的请求和响应。
安全性:ACL,僵尸程序检测,白名单/黑名单IP等。
Syslog:登录到系统日志。
SSL:为基础服务或API设置特定的SSL证书。
监视:实时监视提供关键的负载和性能服务器指标。
转发代理:使Kong连接到透明的中介HTTP代理。
认证:HMAC,JWT,Basic等。
速率限制:基于许多变量的阻止和限制请求。
转换:添加,删除或处理HTTP请求和响应。
缓存:在代理层缓存并提供响应。
CLI:从命令行控制Kong群集。
REST API:Kong可以使用其RESTful API进行操作,以实现最大的灵活性。
地理复制:跨不同区域的配置始终是最新的。
故障检测和恢复:如果您的Cassandra节点之一发生故障,则 Kong不会受到影响。
群集:所有Kong节点自动加入群集,并在各个节点之间更新其配置。
可伸缩性:Kong本质上分布,只需添加节点即可水平扩展。
性能:Kong通过扩展和使用NGINX作为核心轻松处理负载。
插件:可扩展的体系结构,用于向Kong和API添加功能。

系统架构

image.png

kong依赖数据库,一般使用postgres,默认端口为
接受客户端流程端口

Admin Api端口:

功能api使用

route: client请求入口
server: 后端服务的抽象层,维护route与upstream之间的映射关系,
upstream: 托管后端服务器
plugin: 作用整个流量代理周期

服务

kong:8001/services
官网文档

新增

/services

curl -i -X POST http://10.10.203.230:8001/services/ \
-d 'name=jintest' \
-d 'url=http://jintest-server:8000'

删除

curl -i -X DELETE http://10.10.203.230:8001/services/jintest

路由

通过paths,mathods,hosts来匹配客户请求。

新增

curl -i -X POST http://10.10.203.230:8001/services/jintest/routes \
-d 'hosts[]=10.10.203.230' \
-d 'paths[]=/webtest&paths[]=/webtest/' \
-d 'preserve_host=true'
-d 'strip_path=false'
-d 'service.id=86df56be-3a9e-4df2-bba0-5a616aa8cd3d'
重要变量说明
url

相当于protocol, host, port and path的组合,一个快捷命令
该指令相当于proxy_pass http://jintest-server

strip_path

值:false,true 默认true
是否把匹配成功的paths删除后在转发后端服务器.
该指令相当于proxy_pass http://jintest-server/

preserve_host

值:false,true 默认false
转发后端是否带host参数,默认不带。
该指令相当于proxy_set_header Host $host;

更新

curl -X PATCH -i http://10.10.203.230:8001/routes/403dcc8b-2941-494a-a8c7-f8a5e7cd083c \
-d 'id=403dcc8b-2941-494a-a8c7-f8a5e7cd083c' \
-d 'strip_path=false' \
-d 'preserve_host=true'

删除

curl -X DELETE -i http://10.10.203.230:8001/routes/403dcc8b-2941-494a-a8c7-f8a5e7cd083c

upstream/garget

新增

新增upstream
curl -i -X POST http://10.10.203.230:8001/upstreams \
-d 'name=jintest-server'
新增garget
curl -i -X POST http://10.10.203.230:8001/upstreams/jintest-server/targets \
-d 'target=10.10.203.169:32574'

删除

通过DELETE方法,请求API

删除upstram

curl -i -X DELETE http://10.10.203.230:8001/upstreams/jintest123

删除garget

garget没有更新,只有新增/删除,设置weight=0就是删除。

curl -i -X POST http://10.10.203.230:8001/upstreams/jintest123/targets \
-d 'target=10.10.203.169:32574' \
-d 'weight=0'

konga

一款开源的kong UI程序

常用功能

添加kong服务地址

image.png

服务

image.png

路由

image.png

upstream

image.png

garget

image.png

更新

通过调整garget后端服务的weight来控制请求量的比例

蓝绿部署

image.png

金丝雀部署

网上案例文章

上一篇下一篇

猜你喜欢

热点阅读