Docker下网关服务kong安装

it2022-05-05  172

一、创建一个Docker网络(实现容器间的网络通信)

docker network create kong-net

–network=kong-net:将postgres、kong、dashboard的网络都指向新建的kong-nnet网络解决多个容器间的通信问题

二、安装数据库

数据库版本可自定

docker run -d --name kong-database \ --network=kong-net \ -p 5432:5432 \ -e "POSTGRES_USER=postgres" \ -e "POSTGRES_PASSWORD=postgres" \ -e "POSTGRES_DB=postgres" \ postgres:9.6

数据库安装后,可进入postgres容器,创建kong用户及数据库kong,操作步骤如下:

#进入到postgres容器中 docker exec -it container_id /bin/bash #切换用户 su postgres #进入命令 psql; #创建用户kong及密码 create user kong with password 'kong'; #创建数据库kong create database kong owner kong; #查看创建后的数据库(可省) \l

三、初始化数据库

docker run --rm \ --network=kong-net \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ -e "KONG_PG_PASSWORD=kong" \ kong:0.13.1 kong migrations up

docker run --rm \ --network=kong-net \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ -e "KONG_PG_PORT=5432" \ -e "KONG_PG_USER=kong" \ -e "KONG_PG_PASSWORD=kong" \ -e "KONG_PG_DATABASE=kong" \ kong:0.13.1 kong migrations up

这里有两点需要注意:

kong:latest 表示安装最新版本,但是由于前端管理工具Dashboard目前只支持到0.14.x,如果管理kong版本过高,界面有点bug,所以我实际安装时这里选择kong:0.13.1如果kong版本低于0.15时,kong migrations bootstrap应改为kong migrations up,>=0.15时使用 bootstrap

四、安装kong镜像并启动kong

数据库安装好了,并按指定kong版本进行对应的初始化后,现在可以通过docker拖取镜像并启动kong了

docker run -d --name kong \ --network=kong-net \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ -e "KONG_PG_PASSWORD=kong" \ -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:0.13.1

如果数据库是本地化部署,可以直接写IP及相关信息,注意这样写后面启动dashbord时不需要–network kong-net了,且url里直接写IP:

docker run -d --name kong \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=172.20.10.4" \ -e "KONG_PG_PORT=5432" \ -e "KONG_PG_USER=kong" \ -e "KONG_PG_PASSWORD=kong" \ -e "KONG_PG_DATABASE=kong" \ -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:0.13.1

默认情况下,KONG监听的端口为:

8000: 此端口是KONG用来监听来自客户端传入的HTTP请求,并将此请求转发到上有服务器; 8443: 此端口是KONG用来监听来自客户端传入的HTTP请求的。它跟8000端口的功能类似,但是它只是用来监听HTTP请求的,没有转发功能。可以通过修改配置文件来禁止它; 8001: Admin API,通过此端口,管理者可以对KONG的监听服务进行配置; 8444: 通过此端口,管理者可以对HTTP请求进行监控.

五、安装kong-dashboard

docker run --rm --network kong-net -p 8080:8080 pgbi/kong-dashboard start --kong-url http://kong:8001

docker run --rm --network kong-net -p 8080:8080 \ --name kong-dashboard \ pgbi/kong-dashboard start --kong-url http://kong:8001

六、展示

通过地址 http://localhost:8080

参考文档: https://konghq.com/install/ https://blog.csdn.net/qism007/article/details/89521454 https://blog.csdn.net/imilli/article/details/87860829 https://blog.csdn.net/imilli/article/details/87860829


最新回复(0)