1.安装kong管理工具:konga或者kong-dashboard,这里选择konga
-
拉取konga镜像:
sudo docker pull pantsel/konga:0.14.4
-
初始化konga
docker run --rm --network=mynetwork pantsel/konga:0.14.4 -c prepare -a postgres -u postgresql://kong:kong@172.18.0.7:5432/konga
报错:
解决:
postgresql版本太高导致: Failed to prepare database: error: column r.consrc does not exist,把postgresql换成低版本(9.6.4)即可
-
创建konga容器
docker run -d --name konga --network=mynetwork --ip 172.18.0.9 -p 1337:1337 -e "DB_ADAPTER=postgres" -e "DB_HOST=172.18.0.7" -e "DB_PORT=5432" -e "DB_USER=kong" -e "DB_PASSWORD=kong" -e "DB_DATABASE=konga" -e "KONGA_HOOK_TIMEOUT=120000" -e "NODE_ENV=production" pantsel/konga:0.14.4
-
通过宿主机ip+映射端口(1337)访问konga
创建用户名:xj**,密码:Xu**** -
新建一个连接,连接kong网关
点击"ACTIVATE"按钮去激活
2. Kong网关添加Consul服务注册信息(利用dns轮训访问后端)
-
查看node info,查看一下dns的配置信息
图中,dns_resolver就是配置的consul的信息
我们打开kong的配置文件:kong.conf.default,编辑节点#dns_resolver =信息,把consul的访问地址信息添加上
红圈中的172.18.0.10:8600地址为consul的dns轮询地址,8600为默认端口,不写端口,默认端口为53
把配置文件copy到容器中:
docker cp /home/xujk/Work/Docker/Kong/kong/conf/kong.conf.default kong:/etc/kong/kong.conf
重启kong容器,通过konga查看参数