Kong是一款云原生(cloud-native)、平台无关(platform-agnostic)、可扩展(scalable)的 API 网关,以通过插件实现的高性能和可扩展性而著称。
通过提供代理、路由、负载平衡、运行状况检查、身份验证等功能,Kong可以作为中心层轻松协调微服务或传统API流量。
用Kong作为您的API网关好处多多,赶紧将它部署到您的轻量应用服务器吧~
在Docker中创建Kong的专用网络:
docker network create kong-net
此时我们创建了一个名为kong-net
的专用网络。
通过以下命令拉取Kong相关镜像:
docker pull kong
docker pull postgres:9.6
docker pull pantsel/konga
其中kong
镜像为Kong的主镜像;postgres:9.6
镜像为PostgreSQL数据库,用于存储Kong的数据;pantsel/konga
镜像为Konga面板,用于为Kong提供基于Web的图形化管理面板。
docker run -d \
--name kong-database \
--network kong-net \
-e "POSTGRES_USER=konguser" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kongpw" \
--restart always \
postgres:9.6
此时将创建一个容器名为kong-database
,连接到网络kong-net
,数据库用户名为konguser
,数据库名为kong
,数据库用户对应密码为kongpw
的PostgreSQL容器。
对数据库进行初始化,创建表结构:
docker run --rm \
--network kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=konguser" \
-e "KONG_PG_PASSWORD=kongpw" \
kong \
kong migrations bootstrap
其中KONG_PG_HOST
环境变量指定为数据库的主机,此处填写其容器名kong-database
即可;KONG_PG_USER
环境变量填写数据库的用户名;KONG_PG_PASSWORD
环境变量填写数据库用户对应的密码。
注意:此处默认操作系统为Debian/Ubuntu,如果是其他系统请查看下面的说明。
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=kongpw" \
-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" \
-e "KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/ca-certificates.crt" \
-v /etc/ssl/certs:/etc/ssl/certs \
-p 80:8000 \
-p 443:8443 \
-p 127.0.0.1:8001:8001 \
-p 127.0.0.1:8444:8444 \
--restart always \
kong
此时访问http://IP/
即可发现Kong已经部署成功,如下图所示:
其他系统的用户请按照以下说明进行部署:
将KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/ca-certificates.crt
替换为KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/ca-bundle.crt
将KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/ca-certificates.crt
替换为KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/tls-ca-bundle.pem
。并且将-v /etc/ssl/certs:/etc/ssl/certs
替换为-v /etc/pki/ca-trust/extracted/pem:/etc/ssl/certs
docker run -d \
--name konga \
--network kong-net \
-e "TOKEN_SECRET=your_token_secret" \
-e "NODE_ENV=production" \
-p 8007:1337 \
--restart always \
pantsel/konga
此时访问http://IP:8007/
即可进入Konga管理面板。第一次访问会引导你进行注册。注册的第一个用户为管理员用户。此时便可以愉快地管理Kong了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。