Kong的安装步骤请参考官方文档, 没有任何文档有官方的权威, 很多同学会去百度, 然后打开搜索结果的前10项, 最后发现他们都是从一个地方Copy过来的, 关键最后发现还是一篇错误的文章, 时间很重要, 不能浪费时间, 且看且珍惜⌚. 安装完Kong服务, 只需4步即可创建一个可以用服务路由. 通过Kong提供的Admin API, 可以很简单的对服务"对象"做增删查改的操作.
第一步, 创建upstream
curl -X POST http://kong:8001/upstreams \
--data "name=mars.v1.upstreams" \
--data "healthchecks.active.timeout=3" \
--data "healthchecks.active.concurrency=1" \
--data "healthchecks.active.http_path=/mars/actuator/health" \
--data "healthchecks.active.healthy.interval=3" \
--data "healthchecks.active.healthy.successes=1" \
--data "healthchecks.active.unhealthy.interval=3" \
--data "healthchecks.active.unhealthy.timeouts=30" \
--data "healthchecks.active.unhealthy.http_failures=30" \
--data "healthchecks.passive.healthy.successes=1" \
--data "healthchecks.passive.unhealthy.timeouts=10" \
--data "healthchecks.passive.unhealthy.http_failures=3"
这里我们创建了一个名为mars.v1.upstreams的upstream, 关键点是服务健康检查入口, 其他的具体每项值可参考Kong文档.
第二步, 创建upstream下的target
curl -X POST http://kong:8001/upstreams/mars.v1.upstreams/targets \
--data "target=192.168.0.10:10000" \
--data "weight=100"
curl -X POST http://kong:8001/upstreams/mars.v1.upstreams/targets \
--data "target=192.168.0.10:10001" \
--data "weight=100"
这里我们在mars.v1.upstreams下在同一台主机上创建了2个服务实例, 运行在不同端口, 不同主机上部署实例的话端口就可以一样了.
第三步, 创建service
curl -X POST http://kong:8001/services/ \
--data "name=mars-service" \
--data "host=mars.v1.upstreams" \
--data "path=/mars"
这里我们创建了名为mars-service的服务, host指向第一步创建的upstream.
第四步, 创建路由(routes)切入点
curl -X POST http://kong:8001/services/mars-service/routes/ \
--data "hosts[]=api.demo.com" \
--data "paths[]=/mars"
这里创建了一个请求路由规则并挂在服务mars-service下, 得到可用的服务请求入口为: https://api.demo.com/mars
各对象之间的关系
通过这图可以清楚看到Kong里面各对象之间的关系.