Kong(一)概览和安装

一   Kong是什么

目标: 本篇章有一个'粗框'的理解即可,后续会基于'某些概念'深入讲解

知乎Kong中文文档 

①   API Gateway

1)Kong是一个云原生'Cloud Native'、快速、可伸缩及高性能的'API网关',通过'插件'扩展功能

  备注: 在'客户端'和'微服务'间'转发API通信'的API网关

②   nginx openresty Kong的关系

理解: nginx、openresty、Kong '三者'是一个'递进'的关系

1)Kong是一个在'nginx中运行的lua'应用程序,可以通过lua-nginx模块实现

2)Kong'不是'用这个模块'编译nginx',而是'与openrestry一起发布',包含了lua-nginx-module

③   插件提供扩展功能

++++++++++ 通过'插件'的形式提供'功能'  ++++++++++

常见: 负载均衡、日志记录、'灰度发布'、'认证和鉴权'、API请求'限流'

④   Kong术语简介

官方术语参考

1)Route:是请求的'转发规则',按照Hostname和PATH,将请求转发给Service 

2)Services:是'多个Upstream的集合',是Route的转发目标 

3)Consumer:是API的用户,里面记录用户的一些信息 

4)Plugin:是'插件',plugin可以是全局的,绑定到Service,绑定到Router,绑定到Consumer 

5)Certificate:是https证书 

6)Sni:是域名与Certificate的绑定,指定了一个域名对应的https证书 

7)Upstream:是'负载均衡策略'

8)Target:是'最终处理请求'的Backend服务

⑤   Kong的术语 与  nginx.conf 对应关系

说明: 这个很'重要',帮助我们从'nginx'无缝的衔接到'Kong'

⑥  Kong的组件

+++++++++ Kong主要有'三个'组件 +++++++++

1)Kong Server                    基于'nginx'的服务器,用来'接收'API请求

2)Apache Cassandra/'PostgreSQL'  用来'存储'操作数据,进行'持久化'

备注: 'Cassandra'已经废弃,官方推荐使用'pg'

3)Kong Dashboard                 非必须,但是官方'推荐'UI管理工具,典型代表'Konga'

备注:也可以使用 'Restfull 方式' 管理admin api

 二   安装Kong

说明: 本文基于'Centos 7.7'使用'虚拟机安装Kong',并使用'pg'进行数据持久化

 Centos7安装Kong指导

①  安装地址

说明: 注意选择'稳定'版本,'部署'方式根据实际需要选择

②  下载rpm包

说明: 国内下载比较'慢',推荐使用'代理'安装

地址: https://download.konghq.com/gateway-2.x-centos-7/Packages/k/

思考: 'enterprise-edition'和'普通版本'的区别

③  数据库安装

说明: 安装'Kong'服务之前的'前置'动作

​Kong支持PostgreSQL'9.5+'和Cassandra'即将废弃' 3.x.x 作为他的数据库

postgres镜像环境变量说明

+++++++++++++++  '测试环境采用docker安装pg'  +++++++++++++++

docker run -d --name kong-database -p 5432:5432 \
  -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong" \
  -v  /home/kiosk/pgdata:/var/lib/postgresql/data \
  --restart=always \
  -e "POSTGRES_PASSWORD=kong" --privileged=true postgres:12

-- 解读: --privileged=true  --> 获取宿主机root权限,否则是'伪'root

说明: 从官网查看'pg镜像'的 '-e 环境变量' 参数

-- '容器中'执行数据库初始化

-- 1)切换到linxu中的'postgres'用户
su - postgres 

-- 2)进入'数据库'中
psql -h localhost -U kong -p 5432

-- 3)创建数据库和密码(假定docker没有通过环境变量初始化) [可选]
CREATE USER kong WITH PASSWORD '123456';

-- 4)创建数据库并指定归属用户
CREATE DATABASE kong OWNER kong;

-- 5)授权'kong'用户对'kong'数据库的操作权限
GRANT ALL PRIVILEGES ON DATABASE kong to kong;

 报错解决

④   安装Kong

官方Kong中的kong.conf中的配置指令

/etc/kong/kong.conf.default  -->是'kong.conf'的一个实例文件,详解了'配置参数'

Kong的CLI命令行

+++++++++  kong config init [filename]  +++++++++ 

 1)生成一个'示例启动'的配置文件;

 2)如果'没有'给出文件名,默认使用'kong.yml',内容类似'nginx.conf'

 3)该配置文件'内容可以为空',但文件本身'不可缺失'

Kong服务非root特权用户启动 

Kong配置项向导

kong migrations bootstrap -c {PATH_TO_KONG.CONF_FILE}  -->'迁移'

⑤  验证

curl -i http://localhost:8001/services -->'验证'

curl -s localhost:8001 | jq '.configuration'

curl -s localhost:8001 | python -m json.tool

curl http://localhost:8001/services 2>/dev/null |python -m json.tool

Kong的端口

⑥  Admin API

++++++++++ '接口返回的都是json格式的数据'  ++++++++++

GET /routers/                                     #列出所有路由
GET /services/                                    #列出所有服务
GET /consumers/                                   #列出所有用户
GET /services/{service name or id}/routes         #列出服务关联的路由
GET /plugins/                                     #列出所有的插件配置
GET /plugins/enabled                              #列出所有可以使用的插件
GET /plugins/schema/{plugin name}                 #获得插件的配置模版
GET /certificates/                                #列出所有的证书
GET /snis/                                        #列出所有域名与证书的对应
GET /upstreams/                                   #列出所有的upstream
GET /upstreams/{name or id}/health/               #查看upstream的健康状态
GET /upstreams/{name or id}/targets/all           #列出upstream中所有的target

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值