云原生微服务网关Kong和可视化工具Konga安装配置

本文最后更新于:2024年5月19日 下午

Kong安装配置

资料

Kong或Kong API Gateway是一种云原生、平台无关、可扩展的 API 网关,以其高性能和插件可扩展性而著称。

通过为代理提供的功能,路由,负载平衡,健康检查,验证(和更多),孔用作用于编排微服务或常规API流量容易中心层。

开源地址:
https://github.com/Kong/kong
https://github.com/pantsel/konga

创建Docker network 用于容器通讯

1
docker network create kong-net

启动PostgreSQL数据库容器

1
2
3
4
5
6
7
docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6

初始化kong数据库,使用临时 Kong 容器运行迁移

1
2
3
4
5
6
7
8
docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations bootstrap

启动Kong

这里替换宿主机端口8000为8002,服务器端口被占用的解决方案
参数-p 0.0.0.0:8001:8001 是为了能外网访问8001端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=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 8002:8000 \
-p 8443:8443 \
-p 0.0.0.0:8001:8001 \
-p 127.0.0.1:8444:8444 \
kong:latest

使用kong

1
$ curl -i http://localhost:8001/

konga安装和配置

初始化数据konga数据库,使用临时 Konga 容器运行迁移

1
2
3
4
5
6
docker run --rm \
--network=kong-net \
pantsel/konga:latest \
-c prepare \
-a "postgres" \
-u "postgres://kong:kong@kong-database:5432/konga"

启动Konga

1
2
3
4
5
6
7
8
docker run -d --name konga \
--network kong-net \
-e "TOKEN_SECRET=secret123" \
-e "DB_ADAPTER=postgres" \
-e "DB_URI=postgres://kong:kong@kong-database:5432/konga" \
-e "NODE_ENV=development" \
-p 1337:1337 \
pantsel/konga

使用Konga

访问http://localhost:1337 来访问Konga:

在Konga上配置
注册admin用户
初次使用Konga前,需要先注册一个Admin用户。

配置Kong连接
在Konga上,打开Connections,选择新建一个Kong连接

选择连接类型为key Auth,输入连接名称、Loopback API URL和API Key。

更多内容可以参考官方资料:https://docs.konghq.com