概述
Kong 是一个流行的高性能网关。
在本文中,我们将会演示如何通过 Docker 来安装和部署 Kong 及其相关依赖服务。
KongGateway 安装 StepByStep
Step1: 拉取相关镜像
docker pull kong/kong-gateway:2.7.0.0-alpine # Kongdocker pull postgres:9.6 # 依赖 DB
Step2: 创建容器网络
docker network create kong-network
Step3: 启动数据库
# 将本地目录挂载至容器中指的数据持久化mkdir -p /Users/wangzhe/Desktop/services/postgreschmod -R 777 /Users/wangzhe/Desktop/services/postgresdocker run -d --name postgres \--network=kong-network \-p 5432:5432 \-e "POSTGRES_USER=kong" \-e "POSTGRES_DB=kong" \-e "POSTGRES_PASSWORD=password" \-v /Users/wangzhe/Desktop/services/postgres:/var/lib/postgresql/data \postgres:9.6
Step4: 初始化数据库Schema
docker run --rm --network=kong-network \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=postgres" \-e "KONG_PG_PASSWORD=password" \-e "KONG_PASSWORD=password" \kong/kong-gateway:2.7.0.0-alpine kong migrations bootstrap
Step5: 启动 Kong 网关服务
docker run -d --name kong \--network=kong-network \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=postgres" \-e "KONG_PG_USER=kong" \-e "KONG_PG_PASSWORD=password" \-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" \-e "KONG_ADMIN_GUI_URL=http://{HOSTNAME}:8002" \-p 8000:8000 \-p 8443:8443 \-p 8001:8001 \-p 8444:8444 \-p 8002:8002 \-p 8445:8445 \-p 8003:8003 \-p 8004:8004 \kong/kong-gateway:2.7.0.0-alpine
Step6: 访问 admin 服务验证 Kong 官方正常启动
curl -i -X GET --url http://127.0.0.1:8001/services
此时,你应该能够看到 HTTP 请求已经正常了,且返回码为 200。
Step7: 浏览器访问 Kong Web 管理页面看一下吧
地址:http://localhost:8002/overview
正常情况下,你应该能够看到如下 Web 管理页面:
但是需要注意的是,Kong Manager 中大部分功能都是企业版功能,需要付费购买 licenses 后才能使用。
为了使用 Web 页面进行 Kong 相关的管理,下面,我们再来安装一个 Konga WEB 管理服务。
Konga 安装 StepByStep
Step1: 拉取镜像
docker pull pantsel/konga:latest
Step2: 初始化数据库 Schema
docker run --rm \--network=kong-network \pantsel/konga:latest \-c prepare -a postgres -u postgresql://kong:password@postgres:5432/konga
Step3: 启动 Konga 服务
docker run -d -p 1337:1337 \--network kong-network \--name konga \-e "NODE_ENV=development" \-e "TOKEN_SECRET=xilihuala" \-e "DB_ADAPTER=postgres" \-e "DB_HOST=postgres" \-e "DB_PORT=5432" \-e "DB_USER=kong" \-e "DB_PASSWORD=password" \-e "DB_DATABASE=konga" \pantsel/konga
Step4: 访问 Web 页面看一下吧
地址:http://localhost:1337/
首次访问后,你应该能看到如下页面,需要创建一个 ADMIN 用户。
注册用户后,再次输入对应的邮箱和密码即可完成登录。
登录后,你应该会再次看到如下的页面:
可以看到,你希望对 Konga 绑定一个对应的 Kong 服务从而实现能够通过 Konga 来进行 Kong 的管理。
由于我们的 Kong 服务启动时是免密启动的,因此我们只需要通过 DEFAULT 方式来配置 Konga 对 Kong 的连接即可。
其中:
- Name 字段可以根据个人意愿填写,保证唯一即可。
- Admin URL 对应的是 Kong 服务的 Admin URL 地址,此处为:http://kong:8001/
填写完成并保存后,可以看到如下页面:
至此为止,我们 Kong 及 Konga 的服务就搭建完成了。
