docker开发kong

安装docker

  1. 如果是centos,最好用最新的7.6版本。

  2. 安装docker依赖。

   yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 设置yum源。
   yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装docker。
   yum install docker
  1. 启动并加入开机启动。
   systemctl start docker
   systemctl enable docker
  1. 验证安装。
   docker version

安装kong

  1. 使用docker-compose部署kong,也可以按照官方步骤来,但是这样需要每次手动执行或者使用shell脚本。使用docker-compose可以在单机上启动一组相关容器。

  2. 安装docker-compose。

   yum -y install epel-release
   yum -y install python-pip
   pip install docker-compose
  1. 在指定当前目录添加一个docker-compose.yml文件。
   version: '2.1'
   services:
     kong-migrations:
       image: "kong:latest"
       command: kong migrations bootstrap
       depends_on:
         db:
           condition: service_healthy
       environment:
         KONG_DATABASE: postgres
         KONG_PG_DATABASE: kong
         KONG_PG_HOST: db
         KONG_PG_PASSWORD: kong
         KONG_PG_USER: kong
       links:
         - db:db
     kong:
       image: "kong:latest"
       depends_on:
         db:
           condition: service_healthy
       environment:
         KONG_ADMIN_ACCESS_LOG: /dev/stdout
         KONG_ADMIN_ERROR_LOG: /dev/stderr
         KONG_ADMIN_LISTEN: '0.0.0.0:8001'
         KONG_CASSANDRA_CONTACT_POINTS: db
         KONG_DATABASE: postgres
         KONG_PG_DATABASE: kong
         KONG_PG_HOST: db
         KONG_PG_PASSWORD: kong
         KONG_PG_USER: kong
         KONG_PROXY_ACCESS_LOG: /dev/stdout
         KONG_PROXY_ERROR_LOG: /dev/stderr
       links:
         - db:db
       ports:
         - "8000:8000/tcp"
         - "8001:8001/tcp"
         - "8443:8443/tcp"
         - "8444:8444/tcp"
       restart: on-failure
     db:
       image: postgres:9.6
       environment:
         POSTGRES_DB: kong
         POSTGRES_PASSWORD: kong
         POSTGRES_USER: kong
       healthcheck:
         test: ["CMD", "pg_isready", "-U", "kong"]
         interval: 30s
         timeout: 30s
         retries: 3
       restart: on-failure
       stdin_open: true
       tty: true
  1. 运行。
   docker-compose up -d
  1. 检查,通过8001端口查看。

安装konga

  1. 因为kong只能通过api来管理,所以一般我们需要个图形界面来方便操作。

  2. 安装konga。

   docker run -p 1337:1337 \
                --network kong-net \
                --name konga \
                -e "NODE_ENV=production" \
                pantsel/konga:latest
  1. 运行后通过1337端口访问,先注册登录。

  2. 在初始化界面中,填入kong的后台管理端口8001的url进行连接。也可以管理多个kong实例。

  3. kong也有它的缺陷,因为默认是API的配置方式,所以备份很困难,konga刚好提供了一套kong备份机制

kong的插件开发

  1. kong开放4个端口,分别用途如下:

    • 8000: 监听HTTP请求,向后端服务进行转发;
    • 8443: 监听HTTPS请求,同8000;
    • 8001: 用户管理api访问端口;
    • 8444: 监听HTTPS用于管理api端口;

← 算法大全  架构修炼之道读书笔记 →