尝试使用DockerCompose使用Kong + Konga
Kong是指…
在Microsoft的设计模式中,有一种被称为网关聚合的方法被公开。
通过使用网关,将多个独立的请求集成为一个请求。当客户端需要对多个后端系统进行多个调用以执行操作时,这种模式非常方便。
一般来说,在微服务架构中创建服务时会产生多个应用程序与服务器之间的连接。这样会增加连接信息的管理和错误处理的复杂度。因此,可以在中间添加反向代理等功能,使应用程序看起来像一个统一的接口。这就是网关聚合。
这次我们使用了名为Kong的东西,不过Sentinel和Gloo等也很有名。
使用图像
kong
https://hub.docker.com/_/kong
控
Konga是一个Docker镜像,可在https://hub.docker.com/r/pantsel/konga/找到。
konga是什么?简而言之,konga是为kong设计的WebUI。商业版的kong提供了WebUI,而开源版则没有。因此,我们使用名为konga的开源软件来提供WebUI服务。
DockerCompose 的中文翻译可以是「容器组合」。
version: '2.1'
services:
kong:
image: kong
ports:
- 0.0.0.0:8000:8000
- 8443:8443
- 8001:8001
- 8444:8444
environment:
- "KONG_PROXY_ACCESS_LOG=/dev/stdout"
- "KONG_ADMIN_ACCESS_LOG=/dev/stdout"
- "KONG_PROXY_ERROR_LOG=/dev/stderr"
- "KONG_ADMIN_ERROR_LOG=/dev/stderr"
- "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl"
- "KONG_DATABASE=postgres"
- "KONG_PG_HOST=kong-db"
- "KONG_PG_USER=kong"
- "KONG_PG_PASSWORD=kong"
- "KONG_CASSANDRA_CONTACT_POINTS=kong-db"
depends_on:
- "kong-migrate"
restart: "on-failure:3"
kong-migrate:
image: kong
depends_on:
- "kong-db"
environment:
KONG_DATABASE: "postgres"
KONG_PG_HOST: "kong-db"
KONG_PG_USER: "kong"
KONG_PG_PASSWORD: "kong"
KONG_CASSANDRA_CONTACT_POINTS: "kong-db"
command: "kong migrations bootstrap"
restart: "on-failure:3"
kong-db:
image: "postgres:9.6"
environment:
POSTGRES_USER: "kong"
POSTGRES_PASSWORD: "kong"
POSTGRES_DB: "kong"
volumes:
- ./kong_data:/var/lib/postgresql/data
konga:
image: pantsel/konga
ports:
- 1337:1337
environment:
- "DB_ADAPTER=postgres"
- "DB_HOST=konga-db"
- "DB_USER=konga"
- "DB_PASSWORD=konga"
restart: "on-failure:3"
depends_on:
- konga-db
konga-db:
image: "postgres:9.6"
environment:
POSTGRES_USER: "konga"
POSTGRES_PASSWORD: "konga"
POSTGRES_DB: "konga"
volumes:
- ./konga_data:/var/lib/postgresql/data
设定和重点
从左侧的连接面板中选择并创建一个连接。
同时,在Kong Admin URL中输入http://kong:8001/。
这是为了进行本地简单验证,因此不需要SSL。域名为kong,而不是localhost。