赞
踩
在微服务架构中,API 网关扮演着至关重要的角色,它负责请求路由、负载均衡、安全防护以及 API 管理等任务。本文指导使用 Docker 容器化技术从零开始安装和配置 Kong API Gateway 以及与其配套的可视化管理界面 Konga。按照以下步骤进行:
为了方便容器间通信,我们首先创建一个名为 kong-net 的 Docker 网络:
docker network create kong-net
接下来,启动一个用于存储 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
现在,准备 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
访问 Kong Admin API 和 GUI 以验证安装是否成功:
•Admin API:
使用浏览器访问 http://{host}:8001 或使用 curl 命令测试 API 响应。
•GUI (Workspaces):Kong Manager
访问 http://{host}:8002/workspaces 来查看 Kong 的管理界面。
为 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
使用以下命令初始化 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
最后,启动 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
使用默认的登录凭据访问 Konga 管理界面:
•URL: http://{host}:1337
建立一个连接,连接到 Kong 网关即可配置。
至此,成功安装并配置了 Kong API Gateway 及其配套的可视化管理界面 Konga。通过 Konga,可以便捷地管理 Kong 中的服务、路由、插件等配置,实现对 API 网关的高效管控。
请注意,为确保生产环境的安全性,务必更改默认的登录凭证,并遵循最佳实践对数据库、Kong Gateway 和 Konga 的配置进行进一步定制。此外,定期备份数据库以防止数据丢失,并密切关注官方更新以及时升级到最新版本。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。