

微服务实践的第二个关键组件,微服务API网关设计,API网关是对微服务做统一的鉴权、限流、黑白名单、负载均衡等功能实现,这篇我们先来介绍Api网关的意义和安装kong/konga需要的组件。
网关可以使得服务本身更专注自己的领域,对服务提供者和服务调用着做了隔离。
缺点:
Kong的UI管理界面,以插件的方式Konga,Konga的特点:
这3个镜像的版本必须匹配,否则初始化kong、konga数据时会出现各种问题。
docker pull postgres:9.6-bullseye
docker pull kong/kong-gateway:2.4.1.0-alpine
docker pull pantsel/konga:0.14.9创建网络,把所有的依赖都放到一个network中。
docker network create gateway_net1. 安装postgres,kong依赖于postgres:
docker run -d --network=gateway_net --name postgres \
-p 5432:5432 \
-e "POSTGRES_USER=你的数据库用户名" \
-e "POSTGRES_DB=你的数据库名" \
-e "POSTGRES_PASSWORD=你的数据库密码" \
postgres:9.6-bullseye2.初始化kong数据表信息:
docker run --rm --network=gateway_net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=postgres" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_PASSWORD=kong" \
kong/kong-gateway:2.4.1.0-alpine kong migrations bootstrap3.启动kong,kong有5个端口需要对外暴露:
docker run -d --name kong-ee --network=gateway_net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=postgres" \
-e "KONG_PG_PASSWORD=kong" \
-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://127.0.0.1:9002" \
-p 9000:8000 \
-p 9443:8443 \
-p 9001:8001 \
-p 9444:8444 \
-p 9002:8002 \
kong/kong-gateway:2.4.1.0-alpinekong启动之后,可以在浏览器输入:http://127.0.0.1:9002/overview,可以通过这个链接,检查kong是否安装成功.
4.初始化konga数据信息
docker run --rm --network=gateway_net \
pantsel/konga:latest -c prepare -a postgres -u \
postgresql://kong:kong@postgres:5432/kong
5.启动konga
docker run -d -p 1337:1337 --network gateway_net --name konga \
-e "DB_ADAPTER=postgres" \
-e "DB_URI=postgresql://kong:kong@postgres:5432/kong" \
-e "DB_PASSWORD=kong" \
-e "NODE_ENV=production" \
pantsel/konga:0.14.9
kong 和 konga 、postgres就安装成功了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。