一、kong安装
安装机器地址:192.168.19.50
1、自定义一个docker网络
[root@min ~]# docker network create kong-net
a9bde4e7d16e4838992000cd5612476b238f7a88f95a07c994a9f57be7f64c10
查看网络是否创建成功
[root@min ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
e30d2ad88f06 bridge bridge local
f5707c0bc33a host host local
a9bde4e7d16e kong-net bridge local
469a9f965ac7 none null local
可以看到kong-net网络已经创建成功
2、启动PostgreSQL容器
docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kongpass" \
postgres:13
3、准备kong所需要的数据
docker run --rm --network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kongpass" \
-e "KONG_PASSWORD=test" \
kong/kong-gateway:3.3.0.0 kong migrations bootstrap
初始化完成后,数据库会新增一些表:
4、 启动Kong容器
docker run -d --name kong-gateway \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kongpass" \
-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" \
-e "KONG_ADMIN_GUI_URL=http://localhost:8002" \
-e KONG_LICENSE_DATA \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
-p 8002:8002 \
-p 8445:8445 \
-p 8003:8003 \
-p 8004:8004 \
kong/kong-gateway:3.3.0.0
5、验证是否安装成功
curl -i -X GET --url http://localhost:8001/services
通过上面可以看到,可以看出来kong已经安装成功
由于开源版本的kong manage不可以使用,所以我们需要安装konga来进行界面化管理,konga的安装如下:
二、konga安装
1、数据库准备
konga支持MySQL、MongoDB、PostgresSQL三种数据库,这里我们选用mysql数据作为konga的持久化层,使用如下指令启动一个mysql数据库
docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
2、安装konga(虚拟机地址:192.168.19.50)
2.1 执行初始化数据库操作,建表操作:
docker run --rm pantsel/konga:latest -c prepare -a mysql -u mysql://root:my-secret-pw@192.168.19.50:3306/konga_databas
创建完成后:
2.2 真正执行安装
docker run -d -p 1337:1337 --network=kong-net -e "DB_ADAPTER=mysql" -e "DB_HOST=192.168.19.50" -e "DB_PORT=3306" -e "DB_USER=root" -e "DB_PASSWORD=my-secret-pw" -e "DB_DATABASE=konga_databas" -e "NODE_ENV=production" --name konga pantsel/konga
2.3 在外部主机浏览器上输入
192.168.19.50:1337
填写好信息,
userName: kong-test
email: kong@kong.com
password:1234567
点击CREATE ADMIN 按钮,跳转到登录页面:
, 输入刚刚的注册的信息进行登录,然后填好信息进行管理
三、测试kong的网关转发能力
1、创建service,使用postman创建一个kong_service
2、基于刚刚创建好的kong_service来创建一个route
3、准备一个springboot项目,项目的请求路径如下:
4、将jar包上传到192.168.19.50这台服务器上,然后启动
nohup java -jar kong-demo-0.0.1-SNAPSHOT.jar --server.port=8080
5、在外部主机的浏览器上进行访问
192.168.19.50:8000/kong_service/hello
192.168.19.50:8000/kong_service/hello/sub
至此,我们已经成功安装了kong,并且成功创建了一个service及route,最后测试kong 能够成功进行请求转发