KONG 配置负载均衡

配置说明:

1.Service Object

2.Route Object

3.Consumer Object

4.Plugin Object

5.Upstream Object

6.Target Object

 

routes 是kong的路径匹配规则,通过routes,kong知道这个请求应该转发给哪个service;

A single Service can have many Routes.

service 通过host知道上游服务在哪里,其path属性是上游服务的路径;

upstream是上游服务,仅有一个名字属性;upstream 必须要配置health check ,要不,其中一个target挂掉了,kong依然把流量转发过去;有health check 的话,kong会自动切换流量。

target 是上游服务对应的物理服务地址,负载均衡就放到这里。

# upstreams
curl -i -X PATCH --url http://localhost:8001/upstreams --data 'name=tileserver' 
--data 'algorithm=round-robin' --data 'healthchecks.active.type=http' 
--data 'healthchecks.active.timeout=2' --data 'healthchecks.active.healthy.successes=2' 
--data 'healthchecks.active.healthy.interval=10' --data 'healthchecks.active.unhealthy.tcp_failures=1' 
--data 'healthchecks.active.unhealthy.timeouts=1' 
--data 'healthchecks.active.http_path=/data/pgis_poi/15/26692/14218.pbf' 
--data 'healthchecks.active.unhealthy.interval=3'

************
上面配置的是主动健康检查,--data 'healthchecks.active.healthy.interval=10' 
代表10秒就发送一个请求,检测一次,主动健康检查占用流量。


**************
Active health checks
Active health checks 就是主动探测他们的健康状态。
当 upstream 实体启用活动健康检查时,Kong 将定期向 upstream 的每个 target 的配置路径发出 HTTP 或 HTTPS 请求。
这允许 Kong 根据探测结果自动启用和禁用 balancer 中的 target 。Active health checks 的周期性是可以被配置的,
当 target 是健康还是不健康。如果其中一个的interval值设置为零,则在相应的场景中禁用检查。如果两者都为零,则完全禁用活动健康检查。

Passive health checks
Passive health checks 是否基于由 Kong 代理的请求(HTTP/HTTPS/TCP)执行检查,而不生成额外的流量。
当 target 变得无响应时,被动健康检查器将检测到这一点,并将目标标记为不健康。
Ring-balancer 将开始跳过这个 target ,因此不会有更多的流量被路由到它。
# target
curl -i -X POST --url http://localhost:8001/upstreams/tileserver/targets --data 'target=192.168.1.7:8083'


**************
targets 无法删除,delete方法实际上是把它设置为weight=0

**************
下面是更新语法

curl -i -X PATCH --url http://localhost:8001/upstreams/tileserver/targets/192.168.1.7:8083 
--data 'target=192.168.1.7:8083' --data 'weight=100'
curl -i -X PATCH --url http://localhost:8001/upstreams/tileserver/targets/192.168.1.7:8085 
--data 'target=192.168.1.7:8085' --data 'weight=100'
# services
curl -i -X PATCH --url http://localhost:8001/services/1/ --data 'name=1' 
--data 'protocol=http' --data 'host=tileserver' --data 'path=/data/1/'
curl -i -X PATCH --url http://localhost:8001/services/2/ --data 'name=2' 
--data 'protocol=http' --data 'host=tileserver' --data 'path=/data/2/'
curl -i -X PATCH --url http://localhost:8001/services/3/ --data 'name=3' 
--data 'protocol=http' --data 'host=tileserver' --data 'path=/data/3/'
curl -i -X PATCH --url http://localhost:8001/services/4/ --data 'name=4' 
--data 'protocol=http' --data 'host=tileserver' --data 'path=/data/4/'
curl -i -X PATCH --url http://localhost:8001/services/5/ --data 'name=5' 
--data 'protocol=http' --data 'host=tileserver' --data 'path=/data/5/'
# routes
curl -i -X PATCH --url http://localhost:8001/services/1/1/ --data 'name=1' 
--data 'protocols[]=http' --data 'paths[]=/data/1/' 
curl -i -X PATCH --url http://localhost:8001/services/2/2/ --data 'name=2' 
--data 'protocols[]=http' --data 'paths[]=/data/2/' 
curl -i -X PATCH --url http://localhost:8001/services/3/routes/3/ --data 'name=3' 
--data 'protocols[]=http' --data 'paths[]=/data/3/' 
curl -i -X PATCH --url http://localhost:8001/services/4/routes/4/ --data 'name=4' 
--data 'protocols[]=http' --data 'paths[]=/data/4/' 
curl -i -X PATCH --url http://localhost:8001/services/5/routes/5/ --data 'name=5' 
--data 'protocols[]=http' --data 'paths[]=/data/5/' 
# plugins
curl -i -X POST --url http://localhost:8001/services/1/plugins --data 'name=key-auth'
curl -i -X POST --url http://localhost:8001/services/2/plugins --data 'name=key-auth'
curl -i -X POST --url http://localhost:8001/services/3/plugins --data 'name=key-auth'
curl -i -X POST --url http://localhost:8001/services/4/plugins --data 'name=key-auth'
curl -i -X POST --url http://localhost:8001/services/5/plugins --data 'name=key-auth'
# consumers
curl -i -X POST --url http://localhost:8001/consumers --data 'username=agan' --data 'custom_id=001'
curl -i -X POST --url http://localhost:8001/consumers/agan/key-auth --data 'key=20200402'

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值