官方安装:https://getkong.org/install/kubernetes/

扩展讲解:https://blog.fleeto.us/post/intro-kong/

提示:本文是在k8s(kubernetes)上安装kong以及Kubernetes Ingress Controller,将Kong部署到Kubernetes上很简单,但将Kubernetes的服务与Kong整合是一个手动过程,所以在2018年5月8日,发布了Kubernetes Ingress Controller。通过与Kubernetes Ingress Controller集成,Kong直接与Kubernetes生命周期相关联。随着应用程序的部署和新服务的创建,Kong将自动进行实时配置,为这些服务提供流量

简介:Kong 是在客户端和(微)服务间转发API通信的API网关,通过插件扩展功能。

Kong 有两个主要组件:

Kong Server :基于 nginx 的服务器,用来接收 API 请求。

Apache Cassandra & :用来存储操作数据。

注:Ambassador没有数据库 - 它依赖于ConfigMap来存储状态

Kong 还有如下几个基础功能:
  HTTP 基本认证、密钥认证、CORS( Cross-origin Resource Sharing,跨域资源共享)、TCP、UDP、文件日志、API 请求限流、请求转发以及 nginx 监控

Serf是一个去中心化的集群成员管理、故障检测解决方案,Kong用它做清缓存,看来Kong里面核心的数据consumer、api、plugin都是做了缓存的,还可以做集群节点的监控

不足:数据库不支持常用的mysql,只支持Postgres/Cassandra

扩展Kong需要会写lua脚本

不修改源码的情况下,无法自定义nginx配置文件,因为重启后会重新初始化有变更的nginx配置文件【nginx.conf|nginx-kong.conf】

安装过程中会创建一个 Postgres 的 StatefulSet,前面提到,这一版本对 Kubernetes 集群的最低版本要求是 1.8

Kong的限流从技术上来讲支持三种,分别是本地限流(local)、数据库限流(cluster)和Redis限流
 Kong的这三种限流方式都没有考虑并发情况

限流:https://my.oschina.net/chinamerp/blog/851613

当到达限流的临界值(max-1)时,此时有多条请求同时执行get_usage,计算结果全部通过,而我们期望的是仅有一条请求能通过

8000端口是可以给用户访问,就是说用户发送请求先到 Kong 项目的 8000 端口,然后Kong 项目帮你转到你的后端应用api。

8001 端口是管理端口,比如说,管理员可以通过 8001端口来得到你加入过的 api

管理:

 列出 所加过的 api

curl localhost:8001/apis/ 

 加入 api

  1. curl -i -X POST --url http://localhost:8001/apis/ --data 'upstream_url=http://camp.uats.cc' --data 'request_path=login'


上面这段命令表示:

    • --url:http://localhost:8001/apis/ 固定的,加入 api 就得写这个,表示给 kong管理。

    • upstream_url:表示我们的网站。相当于一个请求前缀。

    • request_path:就是具体我们的 api。

删除 api

  1. curl -i -X DELETE localhost:8001/apis/00f90ca9-cf2d-4830-c842-3b90f6cd08af

后面 这个串表示 加入的api的 id。

一、初始设置

 1.下载或克隆以下代码

      $ git clone https://github.com/Kong/kong-dist-kubernetes.git

$ cd kong-dist-kubernetes

2. 修改配置文件主要是k8s 对应service 的类型 修改为 type: nodePort

配置文件

二、部署数据存储
 注意:此处因为镜像的原因没有使用 cassandra
 1.(创建数据库)
  kubectl create -f postgres.yaml   
 2.(准备数据库运行迁移作业
  kubectl create -f kong_migration_postgres.yaml 
 
 3.将Kong管理员,代理服务和Deployment控制器部署到集群
  kubectl create -f kong_postgres.yaml
4.验证您的部署
 

您现在可以看到已经使用的资源kubectl

$ kubectl get all

一旦EXTERNAL_IP可用于Kong代理和管理服务,您可以通过发出以下请求来测试Kong:

$ curl <kong-admin-ip-address>:
$ curl https://<admin-ssl-ip-address>:8444
$ curl <kong-proxy-ip-address>:
$ curl https://<kong-proxy-ssl-ip-address>:8443

我这可以看到kong以及启动了,kong-rc都是running,

举例测试例如:curl 192.168.1.216:31572

三. kong UI管理工具----启动一个dashboard (kong)
 
 1.使用docker 进行启动
 
  1. docker run -d -p 8080:8080 pgbi/kong-dashboard:v2
 
. 2.配置管理界面
 
  1. API node 输入 k8snodeip:service nodeport

例如我的是:192.168.1.216:31572

 
3. 操作界面

 

 
4. 进行可视化的API 操作处理
 

5. 测试接口
 

 
6.  参考资料
http://www.cnblogs.com/shown1985/p/6484822.html

【k8s部署kong一】kong k8s 安装 以及可视化管理界面的更多相关文章

  1. kong k8s 安装 以及可视化管理界面

    1. git  clone $ git clone git@github.com:Mashape/kong-dist-kubernetes.git $ cd kong-dist-kubernetes ...

  2. windows环境下安装rabbitmq及配置可视化管理界面

    1.环境 windows7 64位 rabbitmq3.7.9 erlang10.22.先安装erlang,后安装rabbitmq.下载地址: rabbitmq http://www.rabbitmq ...

  3. RabbitMQ Server安装及显示管理界面Installing on Windows

    接上一篇文章,继续讲解 文件很小, 1.下载路径:http://www.rabbitmq.com/download.html 2.运行rabbitmq-server-3.6.5.exe,选择要安装的目 ...

  4. linux CentOS6.5 安装SVN & 可视化管理工具iF.SVNAdmin

    转:http://tanghenxin.lofter.com/post/1cc667b3_5ac50dc 实际系统环境: CentOS 6.5 x64 一.安装Apache 通常系统都已经装好了,但我 ...

  5. 安装mongo可视化管理工具mongo admin

    https://github.com/mrvautin/adminMongo github地址 安装要求下载下来,然后安装即可 中间出现了问题: 说是开了代理,可以关掉代理之后,然后把下载下来的删了, ...

  6. IDEA 安装 zookeeper 可视化管理插件

    1. 安装 zookeeper 插件 打开 IDEA->Settings->Plugins,然后在 Marketplace 输入 "zookeeper" 如下: 插件安 ...

  7. ubuntu16.04安装docker图形管理界面portainer

    下载镜像 docker pull portainer/portainer 单机版运行 docker run -d --name portainer \ -p 9000:9000 \ --restart ...

  8. 最简单的 K8S 部署文件编写姿势,没有之一!

    1. 头疼编写K8S部署文件? K8S yaml 参数很多,需要边写边查? 保留回滚版本数怎么设? 如何探测启动成功,如何探活? 如何分配和限制资源? 如何设置时区?否则打印日志是GMT标准时间 如何 ...

  9. zookeeper 伪集群安装和 zkui管理UI配置

    #=======================[VM机器,二进制安装] # 安装环境# OS System = Linux CNT7XZKPD02 4.4.190-1.el7.elrepo.x86_ ...

随机推荐

  1. Android笔记(六) Android中的组件

    一个软件可以吸引到用户,除了优秀的功能可以解决用户的问题之外,良好的用户界面也并不可少.一个软件的功能不管多么优秀,但是没有提供友好的界面来让用户操作,将很难吸引到最终用户. Android提供了大量 ...

  2. 【问题】root账号的UID和GID永远是0吗?

    参考:Does the root account always have UID/GID 0? 这实际上是2个问题 Does the superuser account always have uid ...

  3. rabbitMq实现延时队列

    原文:https://my.oschina.net/u/3266761/blog/1926588 rabbitMq是受欢迎的消息中间件之一,相比其他的消息中间件,具有高并发的特性(天生具备高并发高可用 ...

  4. mybatis3.1-[topic-18-20]-_映射文件_参数处理_单个参数&多个参数&命名参数 _POJO&Map&TO 三种方式及举例

    笔记要点出错分析与总结 /**MyBatis_映射文件_参数处理_单个参数&多个参数&命名参数 * _POJO&Map&TO 三种方式及举例 _ * 单个参数 : #{ ...

  5. 《AlwaysRun团队》第三次作业:团队项目的原型设计

    <AlwaysRun团队>第三次作业:团队项目的原型设计 项目 内容 这个作业属于哪个课程 [任课教师博客主页链接](https://home.cnblogs.com/u/nwnu-dai ...

  6. 【图文教程】CentOS 7配置静态IP地址

    文档目标:帮助新手在刚刚安装好的CentOS 7上设置静态IP地址. 目标人群:本篇教程比较简单,针对的是初学者,专业人士请跳过,不喜勿喷.谢谢! 在vmware中安装好centos7(安装过程省略) ...

  7. Selenium(十三)调用js,控制浏览器的滚动条

    WebDiver 不能操作本地 Windows 控件,但对于浏览器上的控件也不是都可以操作的.比如浏览器的滚动条,虽然 WebDriver 提供操作浏览器的前进和后退按钮,但对于滚动条并没有提供相应用 ...

  8. machine learning(12) -- classification: One-vs-all classfication

    Multiclass classification例子: 邮箱的邮件的分类: 工作邮件,私人邮件,朋友的邮件,兴趣爱好的邮件 医学诊断: 没有生病,患有流感,患有普通感冒 天气: 晴天,兩,多云等 O ...

  9. 进程间的通信----队列queue

    import multiprocessing def download_from_web(q): """下载数据""" # 模拟下载数据 d ...

  10. 2019牛客暑期多校训练营(第十场)Coffee Chicken——递归

    题意 $S(1) = "COFFEE", S(2)="CHICKEN"$,$S(n) = S(n-2)+S(n-1)$,请输出 $S(n)$ 中从第 $k$ 个 ...