zoukankan      html  css  js  c++  java
  • 【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

    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

    [html] view plain copy
     
    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>:8001
    $ curl https://<admin-ssl-ip-address>:8444
    $ curl <kong-proxy-ip-address>:8000
    $ 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
  • 相关阅读:
    Android实战项目——家庭记账本(六)
    Android实战项目——家庭记账本(五)
    周总结(十五)
    Android实战项目——家庭记账本(四)
    Auto-Encoder(自编码器)原理
    Android实战项目——家庭记账本(三)
    Android实战项目——家庭记账本(二)
    Android实战项目——家庭记账本(一)
    Android实战项目——家庭记账本设计思路
    防止或减少过拟合的方式(二)——Dropout
  • 原文地址:https://www.cnblogs.com/geekmao/p/9100350.html
Copyright © 2011-2022 走看看