kong网关部署

kong · 浏览次数 : 0

小编点评

本文主要介绍了如何部署一个包含PostgreSQL和Kong的应用环境,并配置Konga的管理界面。 **一、PostgreSQL部署** 首先,我们需要创建一个名为`postgres_9.6`的Docker容器来运行PostgreSQL数据库。在`docker-compose.yml`文件中,我们定义了以下服务: ```yaml version: '3' services: postgres: image: postgres:9.6 container_name: postgres_9.6 restart: always volumes: - /home/kong/konga_test_ctw/postgres9.6_data:/var/lib/postgresql/data environment: POSTGRES_USER: root POSTGRES_DB: postgres POSTGRES_PASSWORD: qweqweasdASD ports: - "5432:5432" ``` 接下来,我们需要在容器中创建一个名为`kong`的用户,并为其提供数据库连接权限: ```sql psql -U root -d postgres CREATE USER kong WITH PASSWORD 'kong'; CREATE DATABASE kong OWNER kong; ``` 最后,我们从`https://docs.konghq.com/gateway/3.4.x/install/linux/rhel/`文档中找到安装Kong的步骤,并按照指南进行操作。 **二、Kong 3.4.2部署** 首先,通过以下命令安装Kong: ```bash yum install -y ./kong-3.4.2.rpm ``` 然后,修改`kong.conf`配置文件: ```bash sudo cp kong.conf.default kong.conf ``` 编辑`kong.conf`文件,将`admin_listen`设置为`0.0.0.0:8001`,并将`proxy_listen`设置为`0.0.0.0:80`。 接下来,初始化Kong数据库: ```bash bootstrap -c /etc/kong/kong.conf ``` 最后,启动Kong并验证: ```bash start -c /etc/kong/kong.conf curl -i http://localhost:8001 ``` **三、Konga管理后台部署** 首先,通过以下命令拉取Konga的镜像: ```bash docker pull pantsel/konga:0.14.7 ``` 然后,创建并启动Konga容器: ```bash docker run --rm --link postgres_9.6:postgresql --net kong_default pantsel/konga:0.14.7 -c prepare -a postgres -u postgres://konga:konga@192.168.0.95:5432/konga ``` 最后,通过浏览器访问`http://192.168.0.95:1337`来验证Konga管理界面是否正常工作。 **总结** 本文详细介绍了如何在Linux环境中部署一个包含PostgreSQL和Kong的应用环境,并配置Konga的管理界面。通过使用Docker Compose工具,我们可以快速地搭建一个可靠、可扩展的数据库和API网关环境。

正文

软件版本:

  • Postgresql:9.6 (不使用最新版,是因为 konga 不支持)

  • Kong:3.4.2

  • konga:0.14.7 (UI管理界面)

### Postgresql部署

## docker-compose.yml

version: '3'
services:
postgres:
image: postgres:9.6
container_name: postgres_9.6
volumes:
- /home/kong/konga_test_ctw/postgres9.6_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: root #在此填写postgres的用户名
POSTGRES_DB: postgres #在此填写postgres的数据库名,默认是postgres
POSTGRES_PASSWORD: qweqweasdASD #在此填写posgres的数据库密码
ports:
- "5432:5432"

运行后需要创建用户,分别提供给kong、konga两个连接
进入容器:

psql -U root -d postgres
CREATE USER kong WITH PASSWORD 'kong';
CREATE DATABASE kong OWNER kong;

CREATE USER konga WITH PASSWORD 'konga';
CREATE DATABASE konga OWNER konga;

### kong3.4.2部署 (https://docs.konghq.com/gateway/3.4.x/install/linux/rhel/)

一、安装kong

yum install -y ./kong-3.4.2.rpm

/etc/kong/可以看到kong.conf.default配置文件模板
cp kong.conf.default kong.conf

vim kong.conf

admin_listen = 0.0.0.0:8001 reuseport backlog=16384, 0.0.0.0:8444 http2 ssl reuseport backlog=16384
nginx_http_include = /etc/kong/nginx/*.kong.conf

database = postgres #使用 PostgreSQL 作为数据库
pg_host = 127.0.0.1 # 数据库Ip
pg_port = 5432 # 数据库端口
pg_timeout = 5000 # 数据库Timeout 时间
pg_user = kong # 登录用户.
pg_password = kong # 登录用户密码
pg_database = kong # 连接的数据库名称

proxy_listen = 0.0.0.0:80 reuseport backlog=16384, 0.0.0.0:443 http2 ssl reuseport backlog=16384

二、初始化

kong migrations bootstrap -c /etc/kong/kong.conf

三、启动

kong start -c /etc/kong/kong.conf

四、验证

curl -i http://localhost:8001


### konga管理后台

一、初始化数据库

docker run --rm --link postgres_9.6:postgresql --net kong_default pantsel/konga:0.14.7 -c prepare -a postgres -u postgres://konga:konga@192.168.0.95:5432/konga

解析

--net postgresql-9-6_default :将当前启动容器加入到postgresql的docker网络中,注:容器网络查看命令docker inspect postgres_9.6,如下图就是容器当前的网络名称:

--link postgres_9.6:postgresql :将当前启动容器连接到指定容器,--link 连接容器名称:别名

-c prepare -a postgres:必带,初始化数据库参数

-u postgres://konga:kongapassword@postgresql:5432/konga:数据库连接信息 postgres://数据库用户名称:用户密码@[Ip或 容器名称]:端口号/数据库名

二、启动konga

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

三、验证

http://192.168.0.95:1337

 

 

总结优化容器写法

vim docker-compose.yml

version: '3'
services:
  postgres:
    image: postgres:9.6
    container_name: postgres_9.6
    restart: always
    volumes:
      - /home/n8n8/kong/postgres9.6_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: root #在此填写postgres的用户名
      POSTGRES_DB: postgres #在此填写postgres的数据库名,默认是postgres
      POSTGRES_PASSWORD: qweqweasdASD #在此填写posgres的数据库密码
    ports:
      - "5432:5432"
  konga:
    image: pantsel/konga:0.14.7
    container_name: konga
    environment:
      - DB_ADAPTER=postgres
      - DB_HOST=192.168.0.95
      - DB_PORT=5432
      - DB_USER=konga
      - DB_PASSWORD=konga
      - DB_DATABASE=konga
      - NODE_ENV=production
    ports:
      - "1337:1337"
    restart: always

 

与kong网关部署相似的内容: