文章目录

  • 以Docker方式安装和配置Kong网关和Konga控制台
    • 前言
    • 安装Kong
      • 创建容器网络
      • 启动PostgreSQL数据库
      • 初始化数据
      • 对Kong Admin API作安全防护
      • 启动Kong
    • 安装Konga
      • 启动PostgresSQL数据库
      • 初始化数据
      • 启动Konga
    • 在Konga上配置
      • 注册admin用户
      • 配置Kong连接
    • 参考文档

以Docker方式安装和配置Kong网关和Konga控制台

前言

本文描述了以Docker方式安装和配置Kong网关和Konga控制台。

安装Kong

Kong官方提供的以docker-compose方式安装的docker-compose.yml有问题,所以这里还是以docker方式直接安装。

参考文档:

  • https://docs.konghq.com/install/docker/
  • https://github.com/Kong/docker-kong/tree/master/compose

创建容器网络

docker network create kong-net

启动PostgreSQL数据库

docker run -d --name kong-database \--network=kong-net \-p 5432:5432 \-v $HOME/kong/postgres-data:/var/lib/postgresql/data \-e "POSTGRES_USER=kong" \-e "POSTGRES_DB=kong" \-e "POSTGRES_PASSWORD=kong" \postgres:9.6

说明:

  • Kong支持Cassandra和PostgreSQL两种数据库,这里选用PostgreSQL关系型数据库。
  • 挂载卷到本地宿主机的$HOME/kong/postgres-data 目录。

初始化数据

docker run --rm \--network=kong-net \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=kong-database" \-e "KONG_PG_USER=kong" \-e "KONG_PG_PASSWORD=kong" \kong:latest kong migrations bootstrap

对Kong Admin API作安全防护

这一步也可以等Kong和Konga启动完成后,再在Konga上配置。

  1. 创建一个admin-api的Service,url为http://127.0.0.1:8001
  2. 再创建一个admin-api 的Route,paths为/admin-api
  3. 再添加Key Auth认证插件。
  4. 再为admin Consumer 创建一个Key Auth credential,并设置apikey 值。

参见:

  • https://docs.konghq.com/gateway-oss/2.5.x/secure-admin-api/

设置不能通过http://<kong-host>:8001 访问Kong Admin API,只能通过<kong-host>:8000 代理后才能访问Kong Admin API,比如http://<kong-host>:8000/admin-api/?apikey=<secret>

将下面kong.yml 文件放到$HOME/kong/config 目录下。

_format_version: "1.1"services:
- name: admin-apiurl: http://127.0.0.1:8001routes:- paths:- /admin-apiplugins:- name: key-authconsumers:
- username: adminkeyauth_credentials:- key: secret

说明:

  • 这里采用了Key Authentiaction,设置keysecret,实际使用时需要将该key设置为复杂难以猜测的字符串。
  • 另外为了安全起见,实际使用中运行Kong的服务器不要对外开启8001端口,所有访问Kong的流量都通过8000进来。

导入Kong配置:

docker run --rm \--network=kong-net \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=kong-database" \-e "KONG_PG_USER=kong" \-e "KONG_PG_PASSWORD=kong" \-v $HOME/kong/config:/home/kong \kong:latest kong config db_import /home/kong/kong.yml

启动Kong

docker run -d --name kong \--network=kong-net \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=kong-database" \-e "KONG_PG_USER=kong" \-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, 0.0.0.0:8444 ssl" \-p 8000:8000 \-p 8443:8443 \-p 127.0.0.1:8001:8001 \-p 127.0.0.1:8444:8444 \kong:latest

可通过以下方式访问Kong Admin API:

  • http://localhost:8001
  • http://localhost:8000/admin-api?apikey=secret
  • http://<kong-host>:8000/admin-api?apikey=secret , 比如 http://192.168.0.100:8000/admin-api?apikey=secret

Tips: 在MacOS上可通过ipconfig getifaddr en0 获取本机IP。

安装Konga

因为Kong Community版本没有Web控制台,为了方便管理,选择安装Konga作为Kong Admin Web控制台。

参见:

  • https://github.com/pantsel/konga
  • https://hub.docker.com/r/pantsel/konga/
  • https://pantsel.github.io/konga/

启动PostgresSQL数据库

启动konga PostgresSQL数据库。

docker run -d --name konga-database \--network=kong-net \-p 5433:5432 \-v $HOME/kong/konga/postgres-data:/var/lib/postgresql/data \-e "POSTGRES_USER=konga" \-e "POSTGRES_DB=konga" \-e "POSTGRES_PASSWORD=konga" \postgres:9.6

说明:

  • Konga需要有自己的数据库保存相应配置,而不是直接使用Kong的数据库。
  • Konga读取Kong数据时,是通过Kong Admin API去读取,而不是直接读取Kong的数据库。
  • 挂载卷到本地宿主机的$HOME/kong/konga/postgres-data 目录。

初始化数据

docker run --rm \--network=kong-net \pantsel/konga:latest \-c prepare \-a "postgres" \-u "postgres://konga:konga@konga-database:5432/konga"

启动Konga

docker run -d --name konga \--network kong-net \-e "TOKEN_SECRET=secret123" \-e "DB_ADAPTER=postgres" \-e "DB_URI=postgres://konga:konga@konga-database:5432/konga" \-e "NODE_ENV=development" \-p 1337:1337 \pantsel/konga

访问http://localhost:1337 来访问Konga。

在Konga上配置

注册admin用户

初次使用Konga前,需要先注册一个Admin用户。

配置Kong连接

在Konga上,打开Connections,选择新建一个Kong连接。

选择连接类型为Kong Auth,输入连接名称、Loopback API URL和API Key。

示例:

Name: `kong-key`
Loopback API URL: `http://192.168.0.100:8000/admin-api/`
API KEy: `secret`

说明:

  • 不能在API URL中使用localhost127.0.0.1 ,不然会无法激活连接。参见:https://github.com/pantsel/konga/issues/136

创建连接后,点击Active按钮,激活Kong连接。

激活连接后可以看到Konga已经可以通过Kong Admin API读取到Kong的相关数据。

参考文档

  • How to setup Konga using Docker
  • Managing microservices and APIs with Kong and Konga
  • Setup (Kong + Konga) as API Gateway
  • https://docs.konghq.com/gateway-oss/2.5.x/secure-admin-api/
  • 云原生微服务网关 Kong 和Kong 管理UI Konga快速安装攻略

以Docker方式安装和配置Kong网关和Konga控制台相关推荐

  1. 第12章 CentOS7 中 Docker 的安装与配置

    第08章 CentOS7 中 Docker 的安装与配置 Docker 是什么? Docker 是世界领先的软件容器平台.[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img- ...

  2. Docker 方式安装 Nginx 、阿里云服务器上装 Ngnix

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 非 Docker 方式安装,直接 Linux 安装见另一文:Linux 上 安装 nginx .阿里 ...

  3. Docker方式安装巡风

    Docker方式安装巡风系统[基于CentOS7.6] # yum update # curl -sSL https://get.docker.com/ | sh # yum install git ...

  4. Docker 方式安装、运行 Nexus3 、重置默认密码、推送 jar 包到私服

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 找镜像: docker search nexus 2. 拉取镜像:(我已经拉取过,不选择版本时 ...

  5. 【Docker】Docker的安装及配置

    0.安装Docker Docker 分为 CE 和 EE 两大版本.CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月. Docker CE 分为 s ...

  6. 【Docker容器安装、配置、部署】

    一.什么是Docker? Dockers就是一个虚拟机,他是一个开源的容器平台,他和VM有相似的地方.也有不同的地方 Docker名词解释: 仓库(Docker仓库,Dockerhub):存放镜像的地 ...

  7. Docker方式安装showdoc

    基础安装 安装前请确保你的环境已经装好了docker服务 .docker的安装教程在网上比较多,可以搜索了解下.这里重点介绍showdoc # 原版官方镜像安装命令(中国大陆用户不建议直接使用原版镜像 ...

  8. docker的安装及配置加速器

    Docker的简介 Docker 是一个开源的应用容器引擎,诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc).Docker 是一个可以让开发者 ...

  9. ubuntu18.04 nvidia gpu驱动与tensorflow-gpu以 docker方式安装

    通过ubuntu标准库自动安装驱动 搜索系统当前支持的驱动(此方法可能无法安装最新版) $ ubuntu-drivers devices == /sys/devices/pci0000:00/0000 ...

最新文章

  1. Ubuntu Snap 简述
  2. python 连接字符的方法(全)
  3. CreateDesktop 创建虚拟桌面
  4. 【树链剖分】软件管理(luogu 2146/金牌导航 树链剖分-2)
  5. 【Flink】Flink Exceeded checkpoint tolerable failure threshold
  6. Windows 2008 实战之KMS实施(Revision 2)
  7. SAP固定资产业务场景及方案
  8. Word把普通表格改为三线表格的方法
  9. “你打算怎么构建云安全资源池”
  10. Java岗面试题--Java基础(日积月累,每日三题)
  11. 为什么我的单片机不是“跑车”而是“牛车”,过来人告诉你。
  12. 5G通信在应急系统中的应用
  13. anyconnect免密码登录
  14. c++ sleep函数 linux,sleep()函数 | C/C++程序员之家
  15. 【性能测试】轻量级压测工具Hey
  16. 英语基础不好可以学会编程吗?
  17. C语言入门教程||C语言常量||C语言存储类
  18. 微擎应用之医院挂号专家 微官网的实现
  19. 八月六日个人训练记录
  20. 关于测试网 gladios 节点公开部署

热门文章

  1. 【灵修】我去弘化禅寺一游——对学佛的理解(刘俊平)
  2. 计算机操作系统选择题
  3. 期末复习操作系统---设备管理
  4. 在VS2010中ActiveX控件注册方法,使用regsvr32命令
  5. 浏览器标签页形式运行【js代码】,小书签
  6. matlab这么画三维函数图,matlab 画三维图函数
  7. 不同类型的钻展图怎么设计?
  8. dom4j解析xml,dom4j创建xml
  9. 稀疏表征:稀疏字典构建
  10. 异步四位二进制计数器逻辑图