在微服务架构中,API 网关扮演着至关重要的角色,它负责请求路由、负载均衡、安全防护以及 API 管理等任务。本文指导使用 Docker 容器化技术从零开始安装和配置 Kong API Gateway 以及与其配套的可视化管理界面 Konga。按照以下步骤进行:

一、Kong安装

1. 创建 Docker 网络

2. 部署 Kong 依赖的 PostgreSQL

3. 安装 Kong Gateway

4. 验证 Kong Gateway 安装

二、Konga 管理UI安装

5. 部署 Konga 的 PostgreSQL

6. 初始化 Konga 数据库

7. 安装并运行 Konga UI

8. 访问 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.参考文档

        具体完整安装步骤参考:Installation Options - Kong Gateway | Kong Docs

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐