kong閘道器部署

博客威發表於2024-06-23

軟體版本:

  • 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

相關文章