【k8s部署kong一】kong k8s 安装 以及可视化管理界面
官方安装: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
- 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
- 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
配置文件
Deployment
控制器部署到集群 kubectl create -f kong_postgres.yaml
您现在可以看到已经使用的资源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
docker run -d -p 8080:8080 pgbi/kong-dashboard:v2
API node 输入 k8snodeip:service nodeport
例如我的是:192.168.1.216:31572
API Gateway 模式: http://microservices.io/patterns/apigateway.html
Nginx: https://www.nginx.com/blog/introduction-to-microservices/
Kong 项目官网:https://getkong.org/
【k8s部署kong一】kong k8s 安装 以及可视化管理界面的更多相关文章
- kong k8s 安装 以及可视化管理界面
1. git clone $ git clone git@github.com:Mashape/kong-dist-kubernetes.git $ cd kong-dist-kubernetes ...
- windows环境下安装rabbitmq及配置可视化管理界面
1.环境 windows7 64位 rabbitmq3.7.9 erlang10.22.先安装erlang,后安装rabbitmq.下载地址: rabbitmq http://www.rabbitmq ...
- RabbitMQ Server安装及显示管理界面Installing on Windows
接上一篇文章,继续讲解 文件很小, 1.下载路径:http://www.rabbitmq.com/download.html 2.运行rabbitmq-server-3.6.5.exe,选择要安装的目 ...
- linux CentOS6.5 安装SVN & 可视化管理工具iF.SVNAdmin
转:http://tanghenxin.lofter.com/post/1cc667b3_5ac50dc 实际系统环境: CentOS 6.5 x64 一.安装Apache 通常系统都已经装好了,但我 ...
- 安装mongo可视化管理工具mongo admin
https://github.com/mrvautin/adminMongo github地址 安装要求下载下来,然后安装即可 中间出现了问题: 说是开了代理,可以关掉代理之后,然后把下载下来的删了, ...
- IDEA 安装 zookeeper 可视化管理插件
1. 安装 zookeeper 插件 打开 IDEA->Settings->Plugins,然后在 Marketplace 输入 "zookeeper" 如下: 插件安 ...
- ubuntu16.04安装docker图形管理界面portainer
下载镜像 docker pull portainer/portainer 单机版运行 docker run -d --name portainer \ -p 9000:9000 \ --restart ...
- 最简单的 K8S 部署文件编写姿势,没有之一!
1. 头疼编写K8S部署文件? K8S yaml 参数很多,需要边写边查? 保留回滚版本数怎么设? 如何探测启动成功,如何探活? 如何分配和限制资源? 如何设置时区?否则打印日志是GMT标准时间 如何 ...
- zookeeper 伪集群安装和 zkui管理UI配置
#=======================[VM机器,二进制安装] # 安装环境# OS System = Linux CNT7XZKPD02 4.4.190-1.el7.elrepo.x86_ ...
随机推荐
- klia linux tools 使用方法整理
第一部分 信息收集工具 1.Zenmap 和nmap 作用是一样的,只是使用的操作方式不一样, Zenmap使用 的GUI,nmap 是基于命令行的.在两个使用的命令是一样的. 使用SYN扫描 就 ...
- Tornado框架 源码基本分析
在python2 的环境中 pip install tornado==1.2.1 1.2.1版本Tornado源码少,利于了解. import tornado.ioloop import tornad ...
- 【DevOps】在CentOS中安装Rancher2,并配置kubernetes集群
准备 一台CentOS主机,安装DockerCE,用于安装Rancher2 一台CentOS主机,安装DockerCE,用于安装kubernetes集群管理主机 多台CentOS主机,安装Docker ...
- 助教培训总结——熟练掌握GitHub及Git的使用方法
一.Git 命令的理解和使用 1.使用git前需要建立一个本地仓库,用Git GUI Here的话就可以直接选择Create New Repository.Git Bash Here输入 命令git ...
- 关于Go Modules的一些内容
安装 配置环境 启用Go Modules go mod在Go >= 1.13才默认启用,在Go >= 1.11已经开始支持了go mod. 设置环境变量 # 启用go module exp ...
- Laravel 队列的简单使用例子
场景: 在一个a系统中注册一个用户时,发送请求到b系统中也注册一个相同信息的账号,考虑到网络有可能错误的原因,所以使用队列去处理 1.修改根目录 .env 文件的QUEUE_CONNECTION字段配 ...
- POI进行导出时候发现有不可读取的内容
通过后台查询数据,然后使用poi进行导出时候,excel进行打开会出现下面的异常: 但是在WPS中就没有问题, 如果点击否,则不会显示任何内容,点击是,就会弹出来 查看修改记录为: 刚开始也进行了很多 ...
- plus代码闪光点
1. 快速变成 String 格式: { stamp: +new Date() } 2. 封装axios请求: axios.get(this.URI, { params: { }, withCrede ...
- sqlplus、exp、imp不是内部或外部命令,也不是可运行的程序
oracle 想exp导出数据库,参考网上的作业,进入CMD命令,黑屏后输入命令出现EXP后出现EXP不能内部或外部命令. 网上找到下列解决方法 摘自:http://blog.csdn.net/suz ...
- Python 高级
GIL面试题如下 描述Python GIL的概念, 以及它对python多线程的影响?编写一个多线程抓取网页的程序,并阐明多线程抓取程序是否可比单线程性能有提升,并解释原因. Guido的声明:ht ...