Rainbond上部署API Gateway Kong及环境配置教程

目录
  • 什么是Kong
  • 从应用市场快速安装
  • 注意事项
  • 配置Kong
    • 环境变量
    • 注入Nginx配置
    • 注入单个Nginx配置
    • 通过注入的Nginx指令包含文件
  • Kong应用怎么制作
  • 数据库自动初始化
  • 部署Kong
  • 部署Konga
  • 发布应用

什么是Kong

Kong是一个可扩展的开源API平台(也称为API网关,API中间件或微服务服务网格)。Kong最初是由Kong Inc.(以前称为Mashape)实现的,用于为其API Marketplace维护、管理和扩展超过15,000个微服务,这些微服务每月产生数十亿个请求。

技术上讲,Kong是在Nginx中运行的Lua应用程序,并且通过lua-nginx-module实现。Kong是与OpenResty一起分发的,而不是使用此模块来编译Nginx,OpenResty已经包括lua-nginx-module。

OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。

OpenResty® 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。

参考 组件 可以知道 OpenResty® 中包含了多少软件。

参考 上路学习如何从最简单的 hello world 开始使用 OpenResty® 开发 HTTP 业务,或前往 下载直接获取 OpenResty® 的源代码包开始体验。

了解更多有关Kong的事情,你需要点击Kong Inc.了解一下。

从应用市场快速安装

目前我们已经将最新版本(v1.4.X)的Kong发布到了应用市场,如果你想要快速的搭建以及使用Kong,你只需要做一件事情,那就是点击一下安装:

等待一小段时间后,Kong就已经部署在了你的Rainbond集群中了。在这个应用中,我们已经集成了Konga作为UI管理工具,接下来的步骤,需要你访问Konga,做几步简单的设置,就可以愉快的探索Kong了。

  • 注册Konga

  • 配置Kong的连接地址,写入 http://127.0.0.1:8001即可

  • 连接成功,就可以使用Konga来管理你的Kong了

注意事项

如果你所使用的Rainbond平台,是在2019年12月25日以前安装的,并且没有进行过任何升级操作,那么你可能遇到Konga连接不到Kong的问题,解决的方案如下:

  • 如果你使用了v5.1.9以前的版本,请升级到最新版本。
  • 如果你现在已经在使用v5.1.9版本,那么请点击链接,打个补丁。

Kong的启动很消耗内存

配置Kong

环境变量

Kong支持以KONG_开头的环境变量进行配置。举例说明:

对于部署在Rainbond上的Kong来说,直接添加环境变量

KONG_LOG_LEVEL = error

即可在Kong的配置文件中生成

log_level = error

添加完成后,点击更新,即可使之生效。

注入Nginx配置

通过调整Kong实例的Nginx配置,可以优化其基础架构的性能。

Kong启动时,将构建一个Nginx配置文件。你可以通过Kong配置直接将自定义Nginx配置注入此文件。

注入单个Nginx配置

Kong的配置文件中的任何前缀为的条目nginx_http_, nginx_proxy_或nginx_admin_通过删除前缀将其转换为等效的Nginx指令,并将其添加到Nginx配置的相应部分:

前缀为的条目nginx_http_将注入到整体http 块指令中。

前缀为的条目nginx_proxy_将注入到server处理Kong代理端口的block指令中。

前缀为的条目nginx_admin_将注入到server处理Kong的Admin API端口的block指令中。

例如,如果将以下行添加到kong.conf文件中:

nginx_proxy_large_client_header_buffers=16 128k

它将以下指令添加到serverKong的Nginx配置的代理块中:

large_client_header_buffers 16 128k;

为了达到这个目的,你需要参考环境变量,为Kong添加以下环境变量:

KONG_NGINX_HTTP_OUTPUT_BUFFERS = "4 64k"

通过注入的Nginx指令包含文件

对于更复杂的配置方案,例如添加整个新 server块,可以使用上述方法include向Nginx配置注入 指令,指向包含其他Nginx设置的文件。

可以通过在kong.conf文件中添加以下条目来包含目标文件:

nginx_http_include = /path/to/your/my-server.kong.conf

在Rainbond上,可以通过环境变量进行配置:

KONG_NGINX_HTTP_INCLUDE="/path/to/your/my-server.kong.conf"

Kong应用怎么制作

即点即用的Kong,使用起来非常方便。那么这个应用是怎么制作的呢?

我们只需要做到以下几点,就可以发布出可以即点即用的云市场应用:

目标应用的所有组件都已经部署在Rainbond并正常运行各服务组件使用的数据库具备自动初始化数据的功能各服务组件间的依赖关系已经处理妥当,从业务层面已经正常运行

接下来,只需要参考应用分享与发布,将你的应用发布出去即可。

数据库自动初始化

Kong可以使用的数据库包括 Postgres与Cassandra,我们这里使用了前者。

首先利用docker run 命令快速部署一个Postgresql:

docker run -d --name kong-database \
                -p 5432:5432 \
                -e "POSTGRES_USER=kong" \
                -e "POSTGRES_DB=kong" \
                postgres:9.6

使用Kong的镜像,即可初始化数据库表结构,在部署初始化组件时,要记得建立从 kong-init 指向 kong-database的依赖关系:

docker run --rm \
    --name kong-init \
    --link kong-database:kong-database \
    -e "KONG_DATABASE=postgres" \
    -e "KONG_PG_HOST=127.0.0.1" \
    -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
    kong kong migrations bootstrap

kong-init 运行完成后会自动退出,在Rainbond上显示运行异常,不用担心,它已经完成了使命,验证下 kong-database 中已存在数据表结构,就可以删除kong-init 了。

进入 kong-database 的容器实例,通过命令行工具备份出数据库。

pg_dump -U kong -d kong > /var/lib/postgresql/data/data.sql

找到 kong-database 的数据持久化目录,得到 data.sql,kong-database 的使命也就达成了,可以被关闭删除。

自定义一个代码仓库,参考 https://github.com/dazuimao1990/pri-postgresql/tree/kong 将 data.sql 放到 sql 目录下,即可用这份代码创建一个可以自动初始化表结构的Postgresql了。创建之,命名为 kong-postgres 备用。

部署Kong

直接使用docker run 命令创建Kong,要记得建立从 Kong 指向 kong-postgres 的依赖关系:

docker run -d --name kong \
    --link kong-database:kong-database \
    -e "KONG_DATABASE=postgres" \
    -e "KONG_PG_HOST=127.0.0.1" \
    -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
    -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 8001:8001 \
    -p 8444:8444 \
    kong

内存至少提高至4G。

部署Konga

直接使用docker run 命令创建Konga,要记得建立从 Konga 指向 Kong 的依赖关系:

docker run -p 1337:1337 \
             --name konga \
             pantsel/konga

完成后,最终拓扑将会是这个样子的:

发布应用

点击 发布到市场,编辑它的信息,即可发布了。

以上就是Rainbond上部署API Gateway Kong及环境配置教程的详细内容,更多关于Rainbond部署API Gateway Kong环境配置的资料请关注我们其它相关文章!

(0)

相关推荐

  • Rainbond自动部署初始化Schema的数据库步骤教程

    目录 为什么使用Rainbond? Schema初始化在传统模式中一般有两种方案: 目录结构 Dockerfile文件 为什么使用Rainbond? 我们使用容器的方式部署数据库组件,特别是企业有大量的项目开发业务的,部署的开发.测试数据库组件较多时.经常会遇到以下问题: 业务需要使用数据库,但部署完数据库后,需要在数据库中执行创建schema的操作或者一些初始化数据的创建. 开发测试多套部署环境,需要多次重复1的步骤. 项目比较多,时间久了项目需要的数据库Schema不清楚. 项目交付时数据库

  • Rainbond对前端项目Vue及React的持续部署

    目录 前言: 部署前检查 1.1 添加 nodestatic.json 文件 1.2 添加 web.conf 文件 1.3 源码部署Vue项目 常见问题 前言: 以往我们在部署 Vue.React 前端项目有几种方法: 项目打包好之后生成dist目录,将其放入nginx中,并进行相应的访问配置. 将项目打包好放入tomcat中. 将项目打包好的dist目录中的static和index.html文件放入springboot项目的resources目录下 直接运行一个前端server,类似本地开发那

  • Rainbond云原生快捷部署生产可用的Gitlab步骤详解

    目录 Gitlab简介 准备工作 部署步骤 部署Postgresql组件 部署Redis组件 部署Gitlab-Server组件 配置网关访问策略 FAQ Gitlab简介 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释.同时Gitlab集成了一系列的CI功能.不得不说,Gitlab在企业中是的使用率非常高. Rainbond非常推荐

  • Rainbond云原生部署开源社区Discourse的配置过程

    目录 概述 基于应用市场快速安装 Discourse应用如何制作 获取镜像 环境的要求 获取discourse_docker 配置模版 自定义配置 构建数据库镜像 redis 部署 postgresql部署 部署Discourse_web 建立依赖 访问 一些踩过的坑 邮件配置 数据恢复 概述 Discourse 是一个完全开源的论坛平台.具有丰富的插件库与主题库,适用于开源社区的构建.Rainbond官方社区就是基于Discourse搭建的实际案例. Rainbond官方社区建立之初就已经使用

  • Rainbond配置组件自动构建部署官方文档讲解

    目录 前言 前提条件 基于源代码操作流程 1.开启组件 Git-Webhook 2.配置代码仓库 基于镜像仓库操作流程 1.开启镜像仓库 Webhook 自动构建 2.Tag 触发自动修改策略 3.配置镜像仓库 API 触发自动构建 前言 通过自动构建的功能,可以实现代码或镜像提交后组件自动触发构建和部署,Rainbond 提供了基于代码仓库 Webhooks.镜像仓库 Webhooks 和自定义 API 三种方式触发组件自动部署.自动构建的功能可以辅助开发者便捷的实现敏捷开发. 前提条件 组件

  • Rainbond部署组件Statefulset的使用官方文档

    目录 前言 组件部署类型 服务的“状态” 处理服务的 “状态” 前言 对于kubernetes老玩家而言,StatefulSet这种资源类型并不陌生.对于很多有状态服务而言,都可以使用 StatefulSet 这种资源类型来部署.那么问题来了:挖掘机技术哪家强?额,不对. 如何在 Rainbond 使用 StatefulSet 资源类型来部署服务呢? 组件部署类型 通过在服务组件的其他设置中,更改 组件部署类型 即可选择使用 StatefulSet 资源类型部署服务,操作之前要注意以下几点: 组

  • Rancher部署配置开源Rainbond云原生应用管理平台

    目录 前言 前提条件 开始安装 添加 Rainbond Operator 到应用商店 安装 Rainbond Operator 访问 Rainbond 安装 UI,完善集群配置 基于 Rancher 的 Rainbond 运维参考 查看 Rainbond 各组件运行状态与日志 按需扩容 Rainbond 各组件 Rancher用户使用Rainbond优势 参考视频 常见问题 前言 本文适用于正在使用 Rancher 或对 Rancher 有所了解的用户 Rancher,Kubernetes 生态

  • Rainbond云原生部署SpringCloud应用架构实践

    目录 示例项目详情 模块说明: 部署环境说明: 模块构建 部署 Mysql 部署 Redis 部署 pig-ui 依赖与端口梳理 最终成果 示例项目详情 本文档以Pig 快速开发框架为例,演示如何在Rainbond上部署一套完整的Spring Cloud项目. Pig Microservice Architecture V2.1.0: 基于 Spring Cloud Finchley .Spring Security OAuth2 的RBAC权限管理系统 基于数据驱动视图的理念封装 Elemen

  • Rainbond上部署API Gateway Kong及环境配置教程

    目录 什么是Kong 从应用市场快速安装 注意事项 配置Kong 环境变量 注入Nginx配置 注入单个Nginx配置 通过注入的Nginx指令包含文件 Kong应用怎么制作 数据库自动初始化 部署Kong 部署Konga 发布应用 什么是Kong Kong是一个可扩展的开源API平台(也称为API网关,API中间件或微服务服务网格).Kong最初是由Kong Inc.(以前称为Mashape)实现的,用于为其API Marketplace维护.管理和扩展超过15,000个微服务,这些微服务每月

  • Docker安装Kong API Gateway并使用的详细教程

    1 简介 Kong不是一个简单的产品,本文讲的Kong主要指的是Kong API Gateway,即API网关.这次主要是简单体验一把,通过Docker安装,然后使用它的Route功能. 2 安装 创建Docker的Network: # 创建 $ docker network create kong-net # 检查 $ docker network list Kong可以使用无数据库模式,为了窥探一下它的配置,我们还是使用数据库,启动如下: $ docker run -itd --networ

  • VS Code C/C++环境配置教程(无法打开源文件“xxxxxx.h” 或者 检测到 #include 错误,请更新includePath) (POSIX API)

    一.问题描述与分析 编辑C/C++程序,我推荐使用C/C++,VS Code相对于别的编译器来说有很多的优势.但是如果第一次使用的话,会觉得其不好用.因为如果不配置好的话,操作会比较麻烦. 注意:我这里是在windows下编写Linux程序. 例如在使用VS Code编辑C/C++程序在没有配置好的情况下,会出现如下图情况, 出现这种情况的原因是 在VS Code没有找到头文件.或者是VS Code没有配置好. 为了很好的解释上述的问题,请先了解下Cygwin.MinGW.POSIX等,并了解下

  • VS Code C/C++环境配置教程(无法打开源文件“xxxxxx.h”或者检测到 #include 错误,请更新includePath)(POSIX API)

    一.问题描述与分析 编辑C/C++程序,我推荐使用C/C++,VS Code相对于别的编译器来说有很多的优势.但是如果第一次使用的话,会觉得其不好用.因为如果不配置好的话,操作会比较麻烦. 注意:我这里是在windows下编写Linux程序. 例如在使用VS Code编辑C/C++程序在没有配置好的情况下,会出现如下图情况, 出现这种情况的原因是 在VS Code没有找到头文件.或者是VS Code没有配置好. 为了很好的解释上述的问题,请先了解下Cygwin.MinGW.POSIX等,并了解下

  • WIN7系统JavaEE(tomcat7 Eclipse)环境配置教程(二)

    在进行Java Web环境开发之前,首先要做的第一件事就是搭建开发环境,开发环境搭建成功,接下来便是对整个开发环境进行测试,可以通过编写一个简单的JSP程序发布到Tomcat应用服务器上运行. 本文重点介绍Tomcat配置过程,具体内容如下 1.下载Tomcat7.0;下载地址:http://tomcat.apache.org/download-70.cgi:根据自己系统下载相应版本. 2.把下载的压缩包,解压到某硬盘根目录,我解压到D盘根目录. 3.配置Tomcat环境变量: 右击[我的电脑]

  • WIN7系统JavaEE(java)环境配置教程(一)

    在进行Java Web环境开发之前,首先要做的第一件事就是搭建开发环境,开发环境搭建成功,接下来便是对整个开发环境进行测试,可以通过编写一个简单的JSP程序发布到Tomcat应用服务器上运行. 工具/原料: JDK-8-windows-i586 Tomcat-7.0.54 Eclipse WIndos7 java配置: 首先下载安装JDK安装包,下载地址http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2

  • Windows安装配置C/C++(VS2017)OpenSSL开发环境配置教程

    OpenSSL开发环境配置教程分享给大家,具体内容如下 [环境信息] Windows 10 Enterprise Version 10.0.15063 下载地址:http://www.itellyou.cn/) Visual Studio Enterprise 2017 Version 15.2(26430.12) 下载地址:https://www.visualstudio.com/downloads) OpenSSL v1.1.0f 下载地址:https://slproweb.com/prod

  • springboot 多环境配置教程

    在上一课中我们通过idea工具没有做任何配置就构建了一个springboot项目,并且已经成功启动了,但我们都很清楚这些都远远不能达到我们实际项目的需求,比如我们要引入我们自己的redis配置.mysql配置等,应该如何处理呢?在spring mvc中我们都是通过spring.xml相关文件配置,在springboot中这些都已经不存在了,我们应该怎样配置呢?别急,马上为大家揭晓谜底,跟着我一起来吧! NO1.我们在做项目的时候是不是都会区分很多环境呢?比如开发环境.测试环境.生产环境等,那么第

  • python3.6环境安装+pip环境配置教程图文详解

    1.python安装可以跨平台 2.有两个版本2.7和3.6,第三方库适用2.7版,两个版本不兼容 windows安装: 第一种方法官网安装: 在官网下载安装包如图: 图下点击是默认下载32位所以我们需要历史版本下载 如图点击: 下载途中标记的: 按照图中箭头执行: 这里选中存放的路径和把配置环境变量选项勾上,如图: 安装完成 测试结果 如果出现图下的就是环境变量没有配置好: 配置环境变量: 把图中2个路径配置到环境变量中 再次输入python 如图: python就安装好了; 第二种安装方法,

  • Windows下MongoDB的下载安装、环境配置教程图解

    下载MongoDB 1.进入MongoDB官网,Products -> 选择SOFTWARE下的MongoDB Server 2.选择下载最新版 3.选择对应的版本下载 msi安装包形式安装MongoDB 1.选择complete,完整安装(安装全部组件).complete,完整的.完全的. 当然也可以选自定义安装,影响不大. 2. data目录是数据存储目录,数据库中的数据就存储在这个目录中.log是日志文件的输出目录. 需要在该盘的根目录下新建一个data文件夹(必须要是MongoDB安装盘

随机推荐