【API网关】KONG的安装记录

API网关KONG的安装记录

学习用途,搭建了以容器方式运行的KONG,步骤如下:

【1】创建一个网络:
让所有模块都基于这个网络下运行
docker network create kong-net

【2】用了依赖数据库版本的:
不用分布式的话,简单就用:postgres
docker run -d --name kong-database
–network=kong-net
-p 5432:5432
-e “POSTGRES_USER=kong”
-e “POSTGRES_DB=kong”
-e “POSTGRES_PASSWORD=kongpass”
postgres:9.6
((
初始化数据库
docker run --rm --network=kong-net
-e “KONG_DATABASE=postgres”
-e “KONG_PG_HOST=kong-database”
-e “KONG_PG_PASSWORD=kongpass”
-e “KONG_PASSWORD=test”
kong/kong-gateway:2.8.1.1-alpine kong migrations bootstrap
))

【3】启动KONG
注意不要携带企业版信息,否则启动有问题
docker run -d --name kong-gateway
–network=kong-net
-e “KONG_DATABASE=postgres”
-e “KONG_PG_HOST=kong-database”
-e “KONG_PG_USER=kong”
-e “KONG_PG_PASSWORD=kongpass”
-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”
-e “KONG_ADMIN_GUI_URL=http://localhost:8002”
-p 8000:8000
-p 8443:8443
-p 8001:8001
-p 8444:8444
-p 8002:8002
-p 8445:8445
-p 8003:8003
-p 8004:8004
kong/kong-gateway:2.8.1.1-alpine

【4】测试验证:
admin api
curl -i -X GET --url http://localhost:8001/services

admin GUI api
http://localhost:8002

【5】 添加服务入口验证
命令行方式如下:
curl -i -X POST http://localhost:8001/services
–data name=example_service
–data url=‘http://mockbin.org’

curl -i http://localhost:8001/services/example_service

添加路由
curl -i -X POST http://localhost:8001/services/example_service/routes
–data ‘paths[]=/mock’
–data name=mocking

测试路由:
curl -i -X GET http://localhost:8000/mock/request

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Date: Mon, 20 Jun 2022 11:13:21 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET
Access-Control-Allow-Headers: host,connection,accept-encoding,x-forwarded-for,cf-ray,x-forwarded-proto,cf-visitor,x-forwarded-host,x-forwarded-port,x-forwarded-path,x-forwarded-prefix,user-agent,accept,cf-connecting-ip,cdn-loop,x-request-id,via,connect-time,x-request-start,total-route-time
Access-Control-Allow-Credentials: true
X-Powered-By: mockbin
Vary: Accept, Accept-Encoding
Etag: W/“431-YzrpnqTc4FcgDmOGXuOs+eJjQQY”
Via: kong/2.8.1.1-enterprise-edition
CF-Cache-Status: DYNAMIC
Report-To: {“endpoints”:[{“url”:“https://a.nel.cloudflare.com/report/v3?s=RUIOwY5R9U%2BZW%2BNpRt7R1FcVHGmHvamRQlDAJLpOnACwMoQg1XjGIxeh4Fn0Xobn0bpqBkkQcndiRu8ijkfDTckDhCbjrOrsRixE89qTxXJCJumnZDWxzHmhyWQjyQ%3D%3D”}],“group”:“cf-nel”,“max_age”:604800}
NEL: {“success_fraction”:0,“report_to”:“cf-nel”,“max_age”:604800}
Server: cloudflare
CF-RAY: 71e41319d95e7b41-LAX
alt-svc: h3=“:443”; ma=86400, h3-29=“:443”; ma=86400
X-Kong-Upstream-Latency: 1117
X-Kong-Proxy-Latency: 3533

{
“startedDateTime”: “2022-06-20T11:13:21.039Z”,
“clientIPAddress”: “172.18.0.1”,
“method”: “GET”,
“url”: “http://localhost/request”,
“httpVersion”: “HTTP/1.1”,
“cookies”: {},
“headers”: {
“host”: “mockbin.org”,
“connection”: “close”,
“accept-encoding”: “gzip”,
“x-forwarded-for”: “172.18.0.1,59.42.24.86, 172.70.211.126”,
“cf-ray”: “71e41319d95e7b41-LAX”,
“x-forwarded-proto”: “http”,
“cf-visitor”: “{“scheme”:“http”}”,
“x-forwarded-host”: “localhost”,
“x-forwarded-port”: “80”,
“x-forwarded-path”: “/mock/request”,
“x-forwarded-prefix”: “/mock”,
“user-agent”: “curl/7.29.0”,
“accept”: “/”,
“cf-connecting-ip”: “59.42.24.86”,
“cdn-loop”: “cloudflare”,
“x-request-id”: “fad94785-a573-4a5e-b142-6f313073a988”,
“via”: “1.1 vegur”,
“connect-time”: “0”,
“x-request-start”: “1655723601038”,
“total-route-time”: “0”
},
“queryString”: {},
“postData”: {
“mimeType”: “application/octet-stream”,
“text”: “”,
“params”: []
},
“headersSize”: 585,
“bodySize”: 0
}

安装konga做图形化管理==========
docker run --rm
–network=kong-net
pantsel/konga -c prepare -a postgres -u postgresql://kong:kongpass@kong-database:5432/konga_db

docker run -d -p 1337:1337
–network=kong-net
-e “DB_ADAPTER=postgres”
-e “DB_HOST=kong-database”
-e “DB_USER=kong”
-e “DB_PASSWORD=kongpass”
-e “DB_DATABASE=konga_db”
-e “KONGA_HOOK_TIMEOUT=120000”
-e “NODE_ENV=production”
–name konga
pantsel/konga

跑起来了:
http://192.168.*.*:1337/#!/dashboard

参考资料:
(1)Install Kong Gateway on Docker
https://docs.konghq.com/gateway/latest/install-and-run/docker/
(2)发布服务
https://docs.konghq.com/gateway/2.8.x/get-started/comprehensive/expose-services/
(3)KONG API配置UPSTREAM
https://www.jianshu.com/p/3ac6b5f89228
(Upstream(上游)模块可以理解为服务请求处理器,他可以模拟成一个虚拟域名,
然后将进入的请求进行负载均衡处理,最后将命令分发到不同的微服务(Target))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值