Kong
创建自定义 Docker 网络以允许容器相互发现和通信
docker network create kong-net
创建一个pg用的卷轴
docker volume create kong-volume-postgres
启动一个 PostgreSQL 容器
docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=qwert12345" \
-v kong-volume-postgres:/var/lib/postgresql/data \
postgres:9.6
准备Kong数据库
docker run --rm --network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=qwert12345" \
-e "KONG_PASSWORD=qwert12345" \
kong:latest kong migrations bootstrap
运行以下命令以使用 Kong Gateway 启动容器
这里为方便后续使用把端口设置为80
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=qwert12345" \
-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 80:8000 \
-p 8443:8443 \
-p 127.0.0.1:8001:8001 \
-p 127.0.0.1:8444:8444 \
kong:latest
/services使用 Admin API访问端点
curl -i -X GET --url http://localhost:8001/services
您应该会收到一个
200
状态代码
konga
GitHub - pantsel/konga: More than just another GUI to Kong Admin API
准备Konga数据库
docker run --rm --network=kong-net pantsel/konga:latest -c prepare -a postgres -u postgresql://konga:qwert12345@kong-database:5432/konga
启动Konga容器了
docker run -d -p 1337:1337 --network kong-net -e "TOKEN_SECRET=qwert12345" -e "DB_ADAPTER=postgres" -e "DB_HOST=kong-database" -e "DB_PORT=5432" -e "DB_USER=konga" -e "DB_PASSWORD=qwert12345" -e "DB_DATABASE=konga" -e "NODE_ENV=production" --name konga pantsel/konga
通过域名或者ip:1337访问konga管理页面
konga配置示例
首先配置konga.xxx.com解析到kong所在的服务器
配置service
打开service菜单->点add service
创建服务
配置路由
选择当前service下Routes->add route

输入域名等信息需需要回车生效
配置完后即可以使用:konga.xxx.com来打开konga的管理界面了;
这个demo使用了最简单的代理方式,你可以说用nginx也可以完成。但是这个kong可以动态的配置代理,且实时生效,且无需重启;牛在这。
并且kong还有很多插件等更强的功能。