kong和konga的安装部署

Posted youngq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kong和konga的安装部署相关的知识,希望对你有一定的参考价值。

简介

本篇文章演示完整的 kong + konga 安装步骤。

软件版本:

  • Postgresql:9.6 (不使用最新版,是因为 konga 不支持)

  • Kong:3.1.1.3

  • konga:0.14.9

使用Docker-Compose安装Postgresql

docker-compose.yml 如下:

version: \'3\'
services:
  postgres:
    image: postgres:9.6
    container_name: postgres_9.6
    volumes:
      - /docker/data/postgresql/data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: root #在此填写postgres的用户名
      POSTGRES_DB: postgres #在此填写postgres的数据库名,默认是postgres
      POSTGRES_PASSWORD: qweQWEasdASD #在此填写posgres的数据库密码
    ports:
      - "5432:5432"

启动数据库,使用命令:

docker-compose up -d

数据库安装完成后,连接测试,我这儿是用的Navicat

连接成功后,需要建立存储kong数据的数据库,如下图,进入数据库的命令行界面:

然后执行命令创建kong用户和kong数据库:

CREATE USER kong WITH PASSWORD \'kongpassword\';
CREATE DATABASE kong OWNER kong;

kong的数据库准备工作完成了。

安装kong

官网安装文档地址:Kong Gateway - v3.2.x | Kong Docs

文档提供了多种安装方式,本文主要是ubuntu上使用安装APT存储库安装。

如上图所示,查看对应系统的安装方法,按照官网给的步骤走,安装好kong。

安装完毕后,执行命令,初始化数据库表:

完成步骤:Install Kong 后,路径切换到/etc/kong可以看到kong.conf.default配置文件模板:

然后使用命令,复制一份配置文件,并编辑:

cp kong.conf.default kong.conf  # 复制配置文件
nano kong.conf        # 使用nano编辑配置文件,没有nano可以使用vim

配置文件修改如下(不启用注释的地方kong会使用默认值):

# 开启后台管理Api监听,0.0.0.0 不限制,127.0.0.1 限制本机访问
admin_listen = 0.0.0.0:8001 reuseport backlog=16384, 0.0.0.0:8444 http2 ssl reuseport backlog=16384

# 添加Nginxhttp模块,kong的底层Nginx 会加载符合规则的配置文件
nginx_http_include = /etc/kong/nginx/*.kong.conf

# 配置kong的数据库

database = postgres            #使用 PostgreSQL 作为数据库

pg_host = 127.0.0.1             # 数据库Ip
pg_port = 5432                  # 数据库端口
pg_timeout = 5000               # 数据库Timeout 时间

pg_user = kong                  # 登录用户.
pg_password = kongpassword      # 登录用户密码
pg_database = kong              # 连接的数据库名称

# 设置kong的监听端口 此处可以修改80端口
proxy_listen = 0.0.0.0:8000 reuseport backlog=16384, 0.0.0.0:8443 http2 ssl reuseport backlog=16384

保存配置文件后,初始化kong数据库表:

kong migrations bootstrap -c /etc/kong/kong.conf

初始化出现一下提示:

[warn] ulimit is currently set to "1024". For better performance set it to at least "4096" using "ulimit -n"

在文件/etc/security/limits.conf最后追加:

* hard nofile 65535
* soft nofile 65535
* hard nproc 65535
* soft nproc 65535

重启服务器即可

使用以下命令启动 Kong 网关:

kong start -c /etc/kong/kong.conf

如果一切顺利,应该会看到一条消息 ( Kong started),通知 Kong Gateway 正在运行。

还可以使用 Admin API 进行检查:

curl -i http://localhost:8001

默认情况下,侦听以下端口:

  • :8000:侦听来自客户端的传入 HTTP 流量并将其转发到上游服务的端口。
  • :8443:侦听传入 HTTPS 流量的端口。此端口具有与:8000端口类似的行为,只是它只需要 HTTPS 流量。可以使用配置文件禁用此端口kong.conf
  • :8001:Admin API 用于配置侦听的端口。
  • :8444:Admin API 侦听 HTTPS 流量的端口。

安装Konga(kong后台管理)

首先准备数据库:

CREATE USER konga WITH PASSWORD \'kongapassword\';
CREATE DATABASE konga OWNER konga;

执行命令,初始化konga数据库:

docker run --rm --link postgres_9.6:postgresql  --net postgresql-9-6_default pantsel/konga:latest -c prepare -a postgres -u postgres://konga:kongapassword@postgresql:5432/konga

命令参数:

--net postgresql-9-6_default :将当前启动容器加入到postgresql的docker网络中,注:容器网络查看命令docker inspect postgres_9.6,如下图就是容器当前的网络名称:

--link postgres_9.6:postgresql :将当前启动容器连接到指定容器,--link 连接容器名称:别名

-c prepare -a postgres:必带,初始化数据库参数

-u postgres://konga:kongapassword@postgresql:5432/konga:数据库连接信息 postgres://数据库用户名称:用户密码@[Ip或 容器名称]:端口号/数据库名

数据库初始化完成:

然后使用命令启动konga:

docker run -d -p 1337:1337  -e "DB_ADAPTER=postgres"  -e "DB_HOST=192.168.2.7"  -e "DB_PORT=5432"  -e "DB_USER=konga"   -e "DB_PASSWORD=kongapassword" -e "DB_DATABASE=konga"   -e "NODE_ENV=production"  --name konga  pantsel/konga

启动成功后浏览器访问:http://192.168.2.7:1337 就可以看到注册界面

注册并登录,登录需要添加配置kong的Admin Api,这里我用 jwt Auth:

配置如下所示,NameKeySecret 可以随意填写:

成功部署后就可以看到这个界面了

以上是关于kong和konga的安装部署的主要内容,如果未能解决你的问题,请参考以下文章

网关服务Kong、Konga搭建记录

Konga平台特点

3.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- Kong 的管理运维

使用Kong和Konga管理微服务和API

konga的初步使用

kong配置service和route实现简单API代理