0
点赞
收藏
分享

微信扫一扫

Kong安装教程(docker-compose)

小猪肥 2022-01-14 阅读 67

Kong安装教程

下载postgresql启动

#安装yum仓库
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

#安装PostgreSQL:
sudo yum install -y postgresql10-server

Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
sudo systemctl enable postgresql-10
sudo systemctl start postgresql-10

kong安装环境搭建

#创建用户
useradd kong

#切换到postgres用户
su postgres

#进入控制台
psql

#首次登陆设置密码
\password postgres

#创建用户
create user kong with password 'kong';

#创建库
create database kong owner kong;

#授权
grant all privileges ondatabase kong tokong;


#修改var/lib/pgsql/9.6/data/pg_hba.conf 文件  添加host all all 0.0.0.0/0 trust
#修改var/lib/pgsql/9.6/data/postgresql.conf 添加listen_address 配置项为 *

#trust:凡是连接到服务器的,都是可信任的。只需要提供PostgresQL用户名,可以没有对应的操作系统同名用户。
password和md5:对于远程访问,需要提供PostgresQL用户名和密码。对于本地连接,提供PostgreSQL用户名密码之外,还需要有操作系统访问权(用操作系统同名用户验证)。password和md5的区别,就是远程访问时传输的密码是否用md5加密。
#ident:对于远程访问,从ident服务器获得客户端操作系统用户名,然后把操作系统作为数据库用户名进行登录对于本地连接,实际上使用了peer。
#peer:对于本地访问,通过客户端操作系统内核来获取当前系统登录的用户名,并作为PostgresQL用户名进行登录。

#重启后可使用软件连接postgresql数据库

使用docker-compose安装kong网关

#安装docker-compose
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version

pip install docker-compose #安装pip依赖
https://www.cnblogs.com/qq952693358/p/9592300.html  #解决code 1问题

kong模板文件(同时安装konga)

version: "3.7"

volumes:
  kong_data: {}

networks:
 kong-net:

services:

  #######################################

Postgres: The database used by Kong

  #######################################
  kong-database:
    image: postgres:9.6
    container_name: kong-postgres
    restart: on-failure
    networks:
      - kong-net
    volumes:
      - kong_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: kong
      POSTGRES_PASSWORD: ${KONG_PG_PASSWORD:-kong}
      POSTGRES_DB: kong
    ports:
      - "5432:5432"
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "kong"]
      interval: 30s
      timeout: 30s
      retries: 3

  #######################################

Kong database migration

  #######################################
  kong-migration:
    image: ${KONG_DOCKER_TAG:-kong:latest}
    command: kong migrations bootstrap
    networks:
      - kong-net
    restart: on-failure
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: kong-database
      KONG_PG_DATABASE: kong
      KONG_PG_USER: kong
      KONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong}
    depends_on:
      - kong-database

  #######################################

Kong: The API Gateway

  #######################################
  kong:
    image: ${KONG_DOCKER_TAG:-kong:latest}
    restart: on-failure
    networks:
      - kong-net
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: kong-database
      KONG_PG_DATABASE: kong
      KONG_PG_USER: kong
      KONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong}
      KONG_PROXY_LISTEN: 0.0.0.0:8000
      KONG_PROXY_LISTEN_SSL: 0.0.0.0:8443
      KONG_ADMIN_LISTEN: 0.0.0.0:8001
    depends_on:
      - kong-database
    healthcheck:
      test: ["CMD", "kong", "health"]
      interval: 10s
      timeout: 10s
      retries: 10
    ports:
      - "8000:8000"
      - "8001:8001"
      - "8443:8443"
      - "8444:8444"

  #######################################

Konga database prepare

  #######################################
  konga-prepare:
    image: pantsel/konga:latest
    command: "-c prepare -a postgres -u postgresql://kong:${KONG_PG_PASSWORD:-kong}@kong-database:5432/konga"
    networks:
      - kong-net
        restart: on-failure
        depends_on:
            - kong-database

  #######################################

Konga: Kong GUI

  #######################################
  konga:
    image: pantsel/konga:latest
    restart: always
    networks:
        - kong-net   
    environment:
      DB_ADAPTER: postgres
      DB_URI: postgresql://kong:${KONG_PG_PASSWORD:-kong}@kong-database:5432/konga
      NODE_ENV: production
    depends_on:
      - kong-database
    ports:
      - "1337:1337"

docker-compose部署

docker-compose up -d
docker stop compose_test_konga_1                          #停止正在运行的容器
docker cp compose_test_konga_1:/app/assets ./             #将容器的文件复制到本地 
docker pull jsonljd/konga-lang-plugin:latest      #拉取语言插件镜像
docker run -d --name konga-lang-plugin -v /Users/hezhaoming/Documents/docker/kong/assets:/app/assets jsonljd/konga-lang-plugin 
docker cp ./assets compose_test_konga_1:/app/   #覆盖成功后即可
docker start compose_test_konga_1                #重启容器
举报

相关推荐

0 条评论