本次操做都是基于 Docker 进行操做的,使用的 Kong 的版本是 1.2.0 ,使用的 PostgreSQL 版本是 9.6。本文档的前提是已经安装最新版 Docker,并可以链接至 Docker 官方镜像中心下载镜像。若是有不知足的条件,自行调整命令。docker
建立 Kong 专用网络数据库
建立一个 Kong 相关镜像的专用网络,经过这个网络实现网络互通。bootstrap
docker network create kong-network
安装数据库bash
使用 Docker 安装 PostgreSQL 数据库,加入 Kong 专用网络,建立用户kong,建立数据库kong。网络
docker run -d \ --name kong-database \ --net kong-network \ -p 5432:5432 \ -e "POSTGRES_USER=kong" \ -e "POSTGRES_DB=kong" \ postgres:9.6
初始化数据库post
使用 Kong 官方镜像提供的功能初始化 PostgreSQL 数据库。由于接入了Kong专用网络,因此这里的KONG_PG_HOST 直接写 kong-database ,也就是前面建立的 PostgreSQL 数据库的容器 name。code
docker run --rm \ --net kong-network \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ -e "KONG_PG_PASSWORD=kong" \ -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \ kong:1.2.0 kong migrations bootstrap
安装 Kongssl
安装完成后在宿主机请求 http://localhost:8001/ ,能正常响应则表示部署成功了。文档
docker run -d --name kong \ --net kong-network \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ kong:1.2.0
安装 konga部署
咱们使用 konga 的图形界面来更方面的管理 kong。访问 http://localhost:1337/ 能正常访问则表示安装成功。咱们使用的最简单的部署方式,Konga 相关的信息是存储在本地的。
docker run -d --name konga \ --net kong-network \ -p 1337:1337 \ pantsel/konga
新增一个链接至刚刚新建的kong,Kong Admin URL 填 http://kong:8001 ,type 选择 default。