0).前提默认会使用docker
1).安装postgres数据库
使用docker命令拉取postgres数据库镜像(版本自定)
docker pull postgres:9.6
2)使用docker命令拉取kong镜像(版本自定)
docker pull kong:1.4
3)使用docker运行postgres数据库实例,指定实例名为kong-database,用户名为kong,DB名为kong
docker run -d --name kong-database -p 5432:5432 -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong" postgres:9.6
4)使用docker对postgres数据库进行初始化
docker run --rm --link kong-database:kong-database -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" kong kong migrations bootstrap
5)使用docker运行kong实例
docker run -d --name kong --link kong-database:kong-database -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -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 8001:8001 -p 8444:8444 kong
6)进入kong实例sh
docker exec -it kong /bin/sh
7)安装必须工具
//编译工具
apk add gcc
//安装库
apk add libc-dev
//lua支持
apk add lua
//lua包管理器
apk add luarocks
//安装lua库
luarocks install lua-cjson
//可以使用如下命令验证是否安装成功
luarocks list
8)安装kong插件教程
//安装插件
git clone https://github.com/xiaomastack/kong-plugin-upstream-url-penetrate.git
//进入插件目录
cd kong-plugin-upstream-url-penetrate/
//运行
luarocks make
kong-plugin-upstream-url-penetrate 1.0.0-1 is now installed in /usr/local (license: Apache-2.0)
9)配置kong.conf
$ vi /etc/kong/kong.conf
//找到plugins = bundled配置项,在其后面加上新增的插件名,并用逗号分隔
plugins = bundled, upstream-url-penetrate
//使用下面命令使kong不用重启加载插件
kong prepare
kong reload
就可以使用了
除此之外如果需要打包新的镜像:
10)打包镜像
sh命令:
yum install -y git
git clone https://github.com/xiaomastack/kong-plugin-upstream-url-penetrate.git
cd kong-plugin-upstream-url-penetrate/
luarocks make
cp /etc/kong/kong.conf.default /etc/kong/kong.conf
echo "plugins = bundled, upstream-url-penetrate" >> /etc/kong/kong.conf
DockerFile:
FROM kong:1.4
ADD install-kong-plugin-upstream-url-penetrate.sh /tmp/
RUN /bin/sh /tmp/install-kong-plugin-upstream-url-penetrate.sh
注意:运行新的镜像的时候
docker run -d --name kong --link kong-database:kong-database -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" -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 8001:8001 -p 8444:8444 kong(需要修改成你的镜像名称)