安装docker

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

  2. 安装docker依赖。

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
  3. 设置yum源。

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
  4. 安装docker。

    yum install docker
    
  5. 启动并加入开机启动。

    systemctl start docker
    systemctl enable docker
    
  6. 验证安装。

    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
    
  3. 在指定当前目录添加一个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
    
  4. 运行。

    docker-compose up -d
    
  5. 检查,通过8001端口查看。

安装konga

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

  2. 安装konga。

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

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

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

kong的插件开发

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

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