docker安装Kong API Gateway(3.6.x)及管理UI
在微服务架构中,API 网关扮演着至关重要的角色,它负责请求路由、负载均衡、安全防护以及 API 管理等任务。本文指导使用 Docker 容器化技术从零开始安装和配置 Kong API Gateway 以及与其配套的可视化管理界面 Konga。
在微服务架构中,API 网关扮演着至关重要的角色,它负责请求路由、负载均衡、安全防护以及 API 管理等任务。本文指导使用 Docker 容器化技术从零开始安装和配置 Kong API Gateway 以及与其配套的可视化管理界面 Konga。按照以下步骤进行:
一、Kong安装
1. 创建 Docker 网络
为了方便容器间通信,我们首先创建一个名为 kong-net 的 Docker 网络:
docker network create kong-net
2. 部署 Kong 依赖的 PostgreSQL
接下来,启动一个用于存储 Kong 数据的 PostgreSQL 容器。这里使用版本 13,并指定相关环境变量以设置数据库用户名、密码、数据库名及端口映射
docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=kongpass" \
postgres:13
3. 安装 Kong Gateway
现在,准备 Kong 数据库并执行初始化迁移。运行以下命令以执行 Kong 数据库迁移脚本:
docker run --rm --network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kongpass" \
-e "KONG_PASSWORD=test" \
kong/kong-gateway:3.6.1.3 kong migrations bootstrap
随后,启动 Kong Gateway 容器。配置环境变量以连接到 PostgreSQL 数据库,并暴露必要的端口以供外部访问:
docker run -d --name kong-gateway \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_USER=kong" \
-e "KONG_PG_PASSWORD=kongpass" \
-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://localhost:8002" \
-e KONG_LICENSE_DATA \
-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:3.6.1.3
4. 验证 Kong Gateway 安装
访问 Kong Admin API 和 GUI 以验证安装是否成功:
•Admin API:
使用浏览器访问 http://{host}:8001 或使用 curl 命令测试 API 响应。
•GUI (Workspaces):Kong Manager
访问 http://{host}:8002/workspaces 来查看 Kong 的管理界面。
二、Konga 管理UI安装
5. 部署 Konga 的 PostgreSQL
为 Konga 创建一个新的 Docker 卷 konga-postgresql 用于持久化数据,并启动一个使用 PostgreSQL 9.6 版本的数据库容器(注:选用 PostgreSQL 13 可能会导致兼容性问题,故使用 9.6 版本):
docker volume create konga-postgresql
docker run -d --name konga-database \
--network=kong-net \
-p 5433:5432 \
-v konga-postgresql:/var/lib/postgresql/data \
-e "POSTGRES_USER=konga" \
-e "POSTGRES_DB=konga" \
-e "POSTGRES_PASSWORD=konga" \
postgres:9.6
6. 初始化 Konga 数据库
使用以下命令初始化 Konga 的 PostgreSQL 数据库:-a表示 adapter -u表示 url数据库连接。
docker run --rm --network=kong-net \
pantsel/konga:latest \
-c prepare \
-a postgres \
-u postgres://konga:konga@konga-database:5432/konga
7. 安装并运行 Konga UI
最后,启动 Konga UI 容器,配置环境变量以连接到 PostgreSQL 数据库,并映射端口以便访问:
docker run -d -p 1337:1337 \
--network=kong-net \
-e "DB_ADAPTER=postgres" \
-e "DB_URI=postgres://konga:konga@konga-database:5432/konga" \
-e "NODE_ENV=production" \
-e "DB_PASSWORD=konga" \
--name konga \
pantsel/konga
8. 访问 Konga 管理界面
使用默认的登录凭据访问 Konga 管理界面:
•URL: http://{host}:1337
建立一个连接,连接到 Kong 网关即可配置。
至此,成功安装并配置了 Kong API Gateway 及其配套的可视化管理界面 Konga。通过 Konga,可以便捷地管理 Kong 中的服务、路由、插件等配置,实现对 API 网关的高效管控。
请注意,为确保生产环境的安全性,务必更改默认的登录凭证,并遵循最佳实践对数据库、Kong Gateway 和 Konga 的配置进行进一步定制。此外,定期备份数据库以防止数据丢失,并密切关注官方更新以及时升级到最新版本。
9.参考文档
更多推荐
所有评论(0)