kong学习笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档



提示:以下是本篇文章正文内容,下面案例可供参考

一、kong简介

1.1kong简介

Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的,能提供易于使用的RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。
官网:https://konghq.com/

1.2 kong主要包含三大组件

(1). Kong Server :基于nginx的服务器,用来接收API请求。
(2). Apache Cassandra/PostgreSQL :用来存储操作数据。
(3). Kong dashboard:官方推荐UI管理工具,当然,也可以使用 restfull 方式 管理admin api。
1.1

1.3 Kong网关的特性

Kong网关具有以下的特性:
可扩展性: 通过简单地添加更多的服务器,可以轻松地进行横向扩展,这意味着您的平台可以在一个较低负载的情况下处理任何请求;
模块化: 可以通过添加新的插件进行扩展,这些插件可以通过RESTful Admin API轻松配置;
在任何基础架构上运行: Kong网关可以在任何地方都能运行。您可以在云或内部网络环境中部署Kong,包括单个或多个数据中心设置,以及public,private 或invite-only APIs。

1.4 Kong网关架构


(1).Kong核心基于OpenResty构建,实现了请求/响应的Lua处理化;
(2).Kong插件拦截请求/响应;
(3).Kong Restful 管理API提供了API/API消费者/插件的管理;
(4).数据中心用于存储Kong集群节点信息、API、消费者、插件等信息,目前提供了PostgreSQL和Cassandra支持,如果需要高可用建议使用Cassandra;
(5).Kong集群中的节点通过gossip协议自动发现其他节点,当通过一个Kong节点的管理API进行一些变更时也会通知其他节点。每个Kong节点的配置信息是会缓存的,如插件,那么当在某一个Kong节点修改了插件配置时,需要通知其他节点配置的变更。

二、环境部署

2.docker部署

官网地址:https://konghq.com/install
前提:搭建好docker环境

2.1.1 搭建kong依赖数据库环境

Postgresql为例

构建Kong的容器网络
docker network create kong-net
创建数据库持久化Volume
docker volume create pgdata
搭建数据库环境
docker run -d \
--name kong-database \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=wowjoy@123" \
-e PGDATA=/var/lib/postgresql/data/ \
-v pgdata:/var/lib/postgresql/data \
postgres:9.6
2.1.2 搭建kong环境
初始化或者迁移数据库
docker run --rm \
--network=kong-net   
-e "KONG_DATABASE=postgres"  \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=wowjoy123" \
-e "KONG_PASSWORD=test"  \
kong:2.5 kong migrations bootstrap
启动kong
docker run -d \
--name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=wowjoy123" \
-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:2.5

通过 curl -i http://127.0.0.1:8001/验证是否部署成功

2.1.3 安装Kong 管理UI
创建数据库持久化Volume
docker volume create kongadata
搭建konga数据库环境
docker run -d \
--name konga-database \
--network=kong-net \
-p 5433:5432 \
-v kongadata:/var/lib/postgresql/data \
-e "POSTGRES_USER=konga"  \
-e "POSTGRES_DB=konga" \
-e "POSTGRES_PASSWORD=wowjoy123" \
postgres:9.6
初始化Konga数据库
docker run --rm  \
--network=kong-net \
pantsel/konga:0.14.9  \
-c prepare \
-a postgres \
-u postgres://konga:wowjoy123@konga-database:5432/konga
搭建konga
docker run -d \
--name konga1 \
--network=kong-net \
-e "DB_ADAPTER=postgres" \
-e "DB_URI=postgres://konga:wowjoy123@konga-database:5432/konga" \
-e "NODE_ENV=production" \
-e "DB_PASSWORD=wowjoy123" \
-p 1337:1337  \
pantsel/konga:0.14.9

3.kubernetes部署

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值