docker、docker-compose 下安装kong网关、konga管理页面

1、kong网关的安装–官网步骤

详细可以参考

《官网文档》

《github-kong》

《docker-hub-kong》

1.1、下载镜像,然后镜像本地打个tag

docker pull kong/kong-gateway:2.5.0.0-alpine
docker tag kong/kong-gateway:2.5.0.0-alpine kong-ee

1.2、创建一个docker网络

docker network create kong-ee-net

1.3、创建一个pgsql的实例

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

1.4、初始化kong组件需要的数据库

docker run --rm --network=kong-ee-net \
  -e "KONG_DATABASE=postgres" \
  -e "KONG_PG_HOST=kong-ee-database" \
  -e "KONG_PG_PASSWORD=kong" \
  -e "KONG_PASSWORD={PASSWORD}" \
  kong-ee kong migrations bootstrap

1.5、创建一个kong的实例

docker run -d --name kong-ee --network=kong-ee-net \
  -e "KONG_DATABASE=postgres" \
  -e "KONG_PG_HOST=kong-ee-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" \
  -e "KONG_ADMIN_GUI_URL=http://{HOSTNAME}:8002" \
    -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-ee

2、kong安装的实际步骤–优化

版本上,我选择2.6.0,最新版本;

pgsql数据库,用的也是比较多的,我们选择另外部署,所以也就忽略掉上面的,创建docker network

2.1、部署pgsql

version: '3.1'
services:
  postgres:
    image: postgres:9.5
    container_name: postgres_db
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres
    volumes:
       - './data:/var/lib/postgresql/data'
    ports:
      - 5432:5432

选择9.x版本,10版本之后,密码加密方式改了,我本地虚拟机的ip是 192.168.68.129

2.2、拉取镜像,2.6.0版本

docker pull kong:2.6.0

2.3、初始化kong的数据库

docker run --rm \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=192.168.68.129" \
-e "KONG_PG_PORT=5432" \
-e "KONG_PG_USER=postgres" \
-e "KONG_PG_PASSWORD=postgres" \
-e "KONG_PG_DATABASE=kong" \
 kong:2.6.0 kong migrations bootstrap

注意,KONG_PG_DATABASEkong,需要先建一个数据库,数据库的ip、端口、用户名/密码、写自己的

2.4、创建kong的容器

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

注意,数据库的ip、端口、用户名/密码、写自己的;

关于/usr/local/share/lua/5.1/kong/templates这个目录挂在的问题,可以不挂载,里面有一些nginx的配置,如果需要的话,可以先启动一个,然后把容器里的文件拷贝出来

docker cp kong:/usr/local/share/lua/5.1/kong/templates /opt/kong/templates

2.5、测试–有返回json,就是正常的

curl http://192.168.68.129:8001/

3、kong的管理页面 konga的安装

参考《konga官网》

《docker-hub-konga》

《github-konga》

3.1、下载镜像

docker pull pantsel/konga:0.14.9

3.2、初始化konga的数据库

docker run -it --rm \
--name kong_dashboard_a \
-e "DB_ADAPTER=postgres" \
-e "DB_HOST=192.168.68.129" \
-e "DB_PORT=5432" \
-e "DB_USER=postgres" \
-e "DB_PASSWORD=postgres" \
 -e "DB_DATABASE=konga" \
 -e "NODE_ENV=development" \
 pantsel/konga:0.14.9

注意,DB_DATABASEkonga,需要先建一个数据库,数据库的ip、端口、用户名/密码、写自己的;

3.3、创建konga的实例

docker run -d \
--name kong_dashboard_konga \
-p 1337:1337 \
 -e "DB_ADAPTER=postgres" \
 -e "DB_HOST=192.168.68.129" \
-e "DB_PORT=5432" \
-e "DB_USER=postgres" \
-e "DB_PASSWORD=postgres" \
-e "DB_DATABASE=konga" \
-e "NODE_ENV=production" \
 pantsel/konga:0.14.9

注意,数据库的ip、端口、用户名/密码、写自己的;

3.4、启动-测试

http://192.168.68.129:1337/

打开页面,需要注册一个管理员帐号,登录之后,把kong的连接放进去http://192.168.68.129:8001

4、docker-compose脚本kong–konga

version: '3'
services:
  kong:
    image: kong:2.6.0
    container_name: kong_01
    environment:
    - KONG_PROXY_ACCESS_LOG=/dev/stdout
    - KONG_ADMIN_ACCESS_LOG=/dev/stdout
    - KONG_PROXY_ERROR_LOG=/dev/stdout
    - KONG_ADMIN_ERROR_LOG=/dev/stdout
    - KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl
    - KONG_DATABASE=postgres
    - KONG_PG_HOST=192.168.68.129
    - KONG_PG_PORT=5432
    - KONG_PG_USER=postgres
    - KONG_PG_PASSWORD=postgres
    - KONG_PG_DATABASE=kong
    ports:
    - 8000:8000
    - 8443:8443
    - 8001:8001
    - 8444:8444
  konga:
    image: pantsel/konga:0.14.9
    container_name: konga_01
    environment:
    - DB_ADAPTER=postgres
    - DB_HOST=192.168.68.129
    - DB_PORT=5432
    - DB_USER=postgres
    - DB_PASSWORD=postgres
    - DB_DATABASE=konga
    - NODE_ENV=production
    ports: 
    - 1337:1337

最终,数据库kongkonga的数据库初始化后,把docker run指令,转换成docker-compose 脚本就可以了

启动、卸载

docker-compose up -d
docker-compose down
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐