• API网关Kong系列(二)部署


    部署环境:

    [OS]

    centos 6.8(如果是centos6.5,请自行先升级到6.8,否则不支持docker)

    [Docker]

    Client version: 1.7.1

    Client API version: 1.19

    推荐使用Docker engine 1.9以上版本,支持docker-compose

    [Kong]

    Version: 0.9.9

    由于众所周知的原因,国内链接dockerhub以及github都有不同程度的问题,建议用daocloud.io的docker镜像加速服务提高image pull的速度

    部署过程


    1.部署数据库

    kong支持2类数据库 cassandra 和 postgres,这边应用场景不大,所以使用postgres

    使用命令:

    sudo docker run -d

    --name kong-database

    --restart=always

    -p 5432:5432

    -e POSTGRES_USER=kong

    -e POSTGRES_DB=kong

    -v /var/lib/containers/kong/data:/var/lib/postgresql/data

    postgres

    完成后容器自动启动

    P.S:注意最后 volume的映射,将容器内数据库映射到了本地/var/lib/containers/kong/data下做持久化用,如果迁移的时候不要忘记了挪数据

    2.部署kong服务

    sudo docker run -d

    --name kong-core

    --restart=always

    -p 8001:8001

    -p 20802:8443

    -p 20801:8000

    -p 7946:7946

    -p 7946:7946/udp

    --link kong-database:kong-database

    -e KONG_DATABASE=postgres

    -e KONG_PG_HOST=kong-database

    -v /etc/localtime:/etc/localtime:ro

    -v /etc/letsencrypt:/etc/letsencrypt:ro

    -v /usr/local/container/kong/kong.conf:/usr/local/kong/kong.conf:ro

    -v /usr/local/container/kong/nginx-kong.conf/:/usr/local/kong/nginx-kong.conf:ro

    kong

    配置SSL:

    这里使用letsencrypt的免费证书,如何生成,见另一篇文章

    sudo vi /usr/local/container/kong/kong.conf

    1.修改ssl_cert_key为你的私钥pem(这边路径对应上面的 /etc/letsencrypt/live/your.domain.com/privkey.pem)

    2.修改ssl_cert为你的证书 pem(这边路径对应上面的 /etc/letsencrypt/live/your.domain.com/fullchain.pem)

    sudo vi /usr/local/container/kong/nginx-kong.conf

    1.修改 ssl_certificate_key 为你的私钥pem(这边路径对应上面的 /etc/letsencrypt/live/your.domain.com/privkey.pem)

    2.修改 ssl_certificate 为你的证书 pem(这边路径对应上面的 /etc/letsencrypt/live/your.domain.com/fullchain.pem)

    完成后进入容器:

    sudo docker exec -it kong-core /bin/bash

    重新加载配置

    kong reload

    退出容器

    exit

    P.S:

    1.这里先将时区修正下,如果不对的话 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime (否则会由于服务端/客户端时间不一致影响之后的 hmac-sha1插件的验证)

    2.kong.conf以及nginx-kong.conf是为了之后配置ssl使用,挂载为readOnly,初次启动的时候先根据kong默认的,建立起这2个文件,否则如果不生成文件就启动会发生问题,也可以第一次run的时候先不要加载为ro,让它自动生成,然后rm掉这个容器,重新挂载为ro再启动一下,那本地就会先自动生成了。最后对这两个文件chomd 700。

    3.部署kong-dashboard

    为方便通过ui增改插件,装一个方便的插件ui

    sudo docker run -d

    --name kong-ui

    --restart=always

    --link kong-core:kong-core

    -p 8080:8080

    pgbi/kong-dashboard

    启动后Kong node URL,输入上面 link过的kong-core(这里就是"kong-core")名称(我之前尝试用ip什么都不太正常)

    备注 docker-compose.yml

     1 version: "2"
     2 
     3 services:
     4   kong-database:
     5     image: postgres
     6     container_name: kong-database
     7     restart: always
     8     ports:
     9       - "5432:5432"
    10     environment:
    11       - POSTGRES_USER=kong
    12       - POSTGRES_DB=kong
    13     volumes:
    14       - "/var/lib/containers/kong/data:/var/lib/postgresql/data"
    15   kong:
    16     image: kong:0.9.9
    17     container_name: kong-core
    18     environment:
    19       - KONG_DATABASE=postgres
    20       - KONG_PG_HOST=kong-database
    21     restart: always
    22     ports:
    23       - "20801:8000"
    24       - "20802:8443"
    25       - "8001:8001"
    26       - "7946:7946"
    27       - "7946:7946/udp"
    28     links:
    29       - kong-database
    30     volumes:
    31       - "/etc/localtime:/etc/localtime:ro"
    32       - "/etc/letsencrypt:/etc/letsencrypt:ro"
    33       - "/usr/local/container/kong/kong.conf:/usr/local/kong/kong.conf:ro"
    34       - "/usr/local/container/kong/nginx-kong.conf/:/usr/local/kong/nginx-kong.conf:ro"
    35   kong-ui:
    36     image: pgbi/kong-dashboard
    37     container_name: kong-ui
    38     restart: always
    39     links:
    40       - kong-core
    41     ports:
    42       - "8080:8080"
  • 相关阅读:
    递归
    Python 实例方法、类方法、静态方法的区别与作用
    内置函数和匿名函数
    迭代器和生成器
    函数动态传参详细,作用域和名称空间,global和nonlocal
    初识函数(定义,语法,返回值,参数)
    pycharm快捷键第二弹
    pycharm快捷键
    bmp图片显示
    jpg图片在开发板上显示
  • 原文地址:https://www.cnblogs.com/shown1985/p/6474074.html
Copyright © 2020-2023  润新知