kong简介-1

前言

kong 可用作api gateway,用起来比较灵活,插件也比较丰富

安装

创建docker 网络
docker network create kong-net

创建postgres容器
docker run -d --name kong-database \
               --network=kong-net \
               -p 5432:5432 \
               -e "POSTGRES_USER=kong" \
               -e "POSTGRES_DB=kong" \
               postgres:9.6

创建kong 容器 
docker run -d --name kong \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
     -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
     -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
     -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
     -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
     -p 8000:8000 \
     -p 8443:8443 \
     -p 8001:8001 \
     -p 8444:8444 \
     kong:latest

验证
 curl -i http://localhost:8001/

反向代理

创建service
curl -i -X POST http://localhost:8001/services/ \
    -d 'name=foo-service' \
    -d 'url=http://www.baidu.com'

service_id为创建service响应中的id
创建route
curl -i -X POST http://localhost:8001/routes/ \
    -d 'hosts[]=example.com' \
    -d 'paths[]=/foo' \
    -d 'service.id=d54da06c-d69f-4910-8896-915c63c270cd'
service_id为创建service响应中的id

验证
 curl -H 'Host:example.com' http://localhost:8000/foo/

健康检查

分主动和被动两种

主动:

主动发送请求检测接口,会产生额外流量

被动:

根据Kong代理的请求执行的检查,不会产生额外的流量。
当目标变得无响应时,被动健康检查程序将检测到该目标并将目标标记为不健康,不再将流量路由到该目标.
如果已恢复,管理员可以通过Admin API端点手动通知运行状况检查器应该再次启用目标.

负载均衡

分dns负载均衡和环形负载均衡

dns负载均衡

解析域名获取ip列表均衡

环形负载均衡

每个upstream都有自己的ringbalancer。
每个upstream可以附加许多target条目,代理到“virtual hostname”的请求将在target上进行负载平衡。

你可能感兴趣的:(kong简介-1)