【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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM