【k8s部署kong一】kong k8s 安裝 以及可視化管理界面

官方安裝:https://getkong.org/install/kubernetes/html

擴展講解:https://blog.fleeto.us/post/intro-kong/node

提示:本文是在k8s(kubernetes)上安裝kong以及Kubernetes Ingress Controller,將Kong部署到Kubernetes上很簡單,但將Kubernetes的服務與Kong整合是一個手動過程,因此在2018年5月8日,發佈了Kubernetes Ingress Controller。經過與Kubernetes Ingress Controller集成,Kong直接與Kubernetes生命週期相關聯。隨着應用程序的部署和新服務的建立,Kong將自動進行實時配置,爲這些服務提供流量mysql

簡介:Kong 是在客戶端和(微)服務間轉發API通訊的API網關,經過插件擴展功能。nginx

Kong 有兩個主要組件:git

  Kong Server :基於 nginx 的服務器,用來接收 API 請求。github

  Apache Cassandra & :用來存儲操做數據。sql

:Ambassador沒有數據庫 - 它依賴於ConfigMap來存儲狀態docker

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、初始設置

 1.下載或克隆如下代碼

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

       $ cd kong-dist-kubernetes

2. 修改配置文件主要是k8s 對應service 的類型 修改成 type: nodePort  

配置文件

 

2、部署數據存儲
 注意:此處由於鏡像的緣由沒有使用 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
相關文章
相關標籤/搜索