kong/konga使用

作者: 肖金光xjg | 来源:发表于2019-12-26 16:51 被阅读0次

    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,默认端口为
    接受客户端流程端口

    • 8000:http
    • 8443:https

    Admin Api端口:

    • 8001:http
    • 8444:https
      kong的配置信息都是通过API接口控制
      信息获取使用: GET
      创建:POST
      更新:PATCH
      删除:DELETE

    功能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

    金丝雀部署

    网上案例文章

    相关文章

      网友评论

        本文标题:kong/konga使用

        本文链接:https://www.haomeiwen.com/subject/wulloctx.html