① Kong 可视化UI 选择
+++++++++++++++ '官方kong-dashboard' +++++++++++++++
1)收费:当前kong的'社区版是没有dashboard'的,但是'付费的企业版'是有带的
2)kong-dashboard最新版本v3.6.0,只支持到kongv0.14.x,对于更高的kong版本,功能支持不齐全
+++++++++++++++ 'konga' +++++++++++++++
1)konga支持'两种'方式部署分别是docker和nodejs原生部署,这里'采用 nodejs 原生安装'方法
2)konga是一个nodejs写的界面,'开源'的
3)前提 'git [拉konga源代码]'、'nodejs [npm工具]'、'postgres [数据库持久化]'安装完毕
强调: Konga 的所有'UI操作'也是基于'HTTP Restful API'进行的
说明:'konga'安装在和'kong'同一台机器'VM'上
+++++++++ 'npm下载慢' +++++++++
1)先'执行'这个命令 npm config set strict-ssl false
2)设'国内'镜像源
npm install -g cnpm --registry=http://registry.npm.taobao.org -->'cnpm工具'
npm config set registry https://registry.npm.taobao.org
npm config get registry -->'查看使用哪个镜像源'
3)npm config set registry https://registry.npmjs.org/ 换回'默认值'
备注: 官网'有时候'可能比'淘宝源'更快
③ pg数据库初始化
说明: 这里'kong'和'konga'使用同一个'pg'数据库
CREATE ROLE konga LOGIN PASSWORD 'konga';
CREATE DATABASE konga OWNER konga;
grant all privileges on database konga to konga;
④ 下载konga并启动
git clone https://github.com/pantsel/konga.git
cd konga
推荐:安装'konga'一定要'使用'代理
git config --global http.proxy 'http://user:passwd@proxy_ip:proxy_port'
npm i安装报错汇总 相关参考 Encountered end of file git下载加速
This is probably not a problem with npm. There is likely additional logging output above
gyp ERR! stack Error: EACCES: permission denied
npm i --unsafe-perm -->'root帐号临时执行'
1) npm 出于安全考虑'不支持以 root 用户'运行
2) 即使你用 root 用户身份运行了,npm 会自动转成一个叫 'nobody 的用户'来运行
3) 不要使用'root权限'安装,应该sudo npm install
yum install gcc-c++ gcc make camke -y --> "基础软件的安装"
1)导航到'项目(konga)'目录,在把之前装的都'清空'
rm -rf node_modules package-lock.json
npm cache clear --force
npm --unsafe-perm
⑤ 生产环境迁移数据库并启动
说明: konga'不支持'postgresql的11、'12'、13版本,只能选择'postgresql9.5+或10'版本
+++++++++++++ '这里使用容器安装pg:9.6' +++++++++++++
docker volume create konga-pg
docker run -d --name konga-database \
-p 5433:5432 \
-v konga-pg:/var/lib/postgresql/data \
-e "POSTGRES_USER=konga" \
-e "POSTGRES_DB=konga" \
-e "POSTGRES_PASSWORD=konga" \
postgres:9.6
推荐: nohup npm start production &
⑥ 客户端登陆Konga UI
访问方式: ip:1337
说明: 先'注册',再'登陆'
⑦ konga汉化
说明: '了解'即可
说明: konga完成登录后,由于没'有连接到Kong',因此需要'新建'一个到Kong的链接
备注: 一个'Konga'可以管理多个'Kong'
1)当我们使用'第三方UI来'连接管理kong的时候,如konga
2)需要通过'连接kong'的管理端口['一般使用8001']来对其进行管理
1)Kong开源版官方'不提供'该插件,'Enterprise企业版'支持,但是收费
备注: 也有'第三方插件'支持kong-plugins-canary
2)支持通过'ip、header、cookie、args'四种匹配方案来做'灰度流量'控制
3)并支持'单个、多个、正则'匹配规则
+++++++++++ '说明' +++++++++++
+++++++++++++ '分割线' +++++++++++++
说明: 企业版的'kong'自带了'canary'灰度插件,'不授权'不能使用,导致安装'第三方'冲突
⑩ 第三方灰度插件
1)推荐源码安装
说明:下面使用'非企业版kong'安装第三方canary
补充: 基于'kong2.3安装的canary'
++++++++++++++ 'Kong 灰度插件canary' ++++++++++++++
# 在线安装 lua-resty-iputils
luarocks install lua-resty-iputils
# 安装 canary
git clone https://github.com/raoxiaoyan/kong-plugins-canary.git
-- 源码项目'没有'1.0.4
wget https://luarocks.org/manifests/raoxiaoyan/canary-1.0.4-1.rockspec
unzip kong-plugins-canary-master.zip
cd kong-plugins-canary-master
cp ../canary-1.0.4-1.rockspec .
luarocks make canary-1.0.4-1.rockspec
1)启用canary,在/etc/kong/kong.conf增加如下配置:
plugins = bundled,canary
2)kong restart 重启即可
备注: 有'在线'和'离线'两种方式安装
2)原理讲解
canary插件的'使用范围'支持global、service、route
1)canary_upstream
canary_upstream为'必填项',设置'灰度策略匹配后',默认'转发'的上游代理名称
2)'灰度规则1' -->ip
range: 设置ip支持'单个、多个、范围分段IP(满足CIDR notation规则)',以下值都为合法
192.168.1.100
172.25.2.100/24
upstream: 非必填项,设置'符合ip灰度规则'时,转发的上游代理名称
3)'灰度规则2' --> uid
on :uid的参数'从哪里'获取;参数所处位置'可选'为:
header:'请求头'中获取uid参数
cookie:从'cookie中'获取uid参数
args: 从'请求参数'中获取uid参数
name: uid在'请求中的参数名'
range: 设置uid的匹配规则,支持单个、多个、'正则匹配'(前缀、后缀等)
[1]、1234
[2]、^UID%d+$ //匹配前缀
upstream: 非必填项,设置符合'uid灰度规则'时,转发的上游代理名称
4)'灰度规则3' --> customize -->'自定义'规则
5)优先级如下:
ip > uid > customize > default