Kong简介
Kong是一款云原生(cloud-native)、平台无关(platform-agnostic)、可扩展(scalable)的 API 网关,以通过插件实现的高性能和可扩展性而著称。
通过提供代理、路由、负载平衡、运行状况检查、身份验证等功能,Kong可以作为中心层轻松协调微服务或传统API流量。
用Kong作为您的API网关好处多多,赶紧将它部署到您的轻量应用服务器吧~
部署方法
创建专用网络
在Docker中创建Kong的专用网络:
代码语言:shell复制docker network create kong-net
此时我们创建了一个名为kong-net
的专用网络。
拉取相关镜像
通过以下命令拉取Kong相关镜像:
代码语言:shell复制docker pull kong
docker pull postgres:9.6
docker pull pantsel/konga
其中kong
镜像为Kong的主镜像;postgres:9.6
镜像为PostgreSQL数据库,用于存储Kong的数据;pantsel/konga
镜像为Konga面板,用于为Kong提供基于Web的图形化管理面板。
创建Kong专用数据库(PostgreSQL)
代码语言:shell复制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容器。
对数据库进行初始化
对数据库进行初始化,创建表结构:
代码语言:shell复制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
环境变量填写数据库用户对应的密码。
运行Kong
代码语言:shell复制注意:此处默认操作系统为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已经部署成功,如下图所示:
其他系统的用户请按照以下说明进行部署:
- CentOS/Fedora/RHEL 7
将KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/ca-certificates.crt
替换为KONG_LUA_SSL_TRUSTED_CERTIFICATE=/etc/ssl/certs/ca-bundle.crt
- CentOS/Fedora/RHEL 8
将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
运行Kong管理面板(Konga)
代码语言:shell复制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了。