这篇文章主要介绍了如何使用Docker安装Kong网关。首先,创建一个Docker网络,然后创建PostgreSQL或Cassandra数据库。接着,准备数据库并启动Kong服务。Kong服务默认监听8000、8443、8001和8444端口。验证Kong服务后,安装Konga,一个Kong的管理界面。最后,提供了几个参考链接,包括Kong的官方文档和其他相关文章。
创建Docker network
$ docker network create kong-net
创建数据库
本案例使用的是
PostgreSQL
数据库
Cassandra数据库
$ docker run -d --name kong-database \
--network=kong-net \
-p 9042:9042 \
cassandra:3
PostgreSQL数据库
$ 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
准备数据库
此命令使用的是
postgres
数据库
$ 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服务
$ 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 8000:8000 \
-p 8443:8443 \
-p 127.0.0.1:8001:8001 \
-p 127.0.0.1:8444:8444 \
kong:latest
Kong默认监听下面端口:
8000,监听来自客户端的HTTP流量,转发到你的upstream服务上。
8443,监听HTTPS的流量,功能跟8000一样。可以通过配置文件禁止。
8001,Kong的HTTP监听的api管理接口。
8444,Kong的HTTPS监听的API管理接口。
验证Kong服务
$ curl -i http://127.0.0.1:8001/
安装Konga
$ docker pull postgres:latest
$ docker run -d -p 1337:1337 --network kong-net -e "TOKEN_SECRET=kongtoken" -e "DB_ADAPTER=postgres" -e "DB_HOST=kong-database" -e "DB_USER=kong" -e "DB_PASSWORD=kong" --name konga pantsel/konga
访问URL:http://{konga-ip}:1337/
参考
https://docs.konghq.com/install/docker/