中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker容器搭建kong-dashboard或konga

發布時間:2020-03-03 07:06:20 來源:網絡 閱讀:1537 作者:李佳良 欄目:安全技術

Kong 是在客戶端和(微)服務間轉發 API 通信的 API 網關,通過插件擴展功能。Kong 有

兩個主要組件:
Kong Server :基于 nginx 的服務器,用來接收 API 請求。
Apache Cassandra :用來存儲操作數據。
你可以通過增加更多 Kong Server 機器對 Kong 服務進行水平擴展,通過前置的負載均衡器向這些機器分發請求。根據文檔描述,兩個 Cassandra 節點就足以支撐絕大多數情況,但如果網絡非常擁擠,可以考慮適當增加更多節點。


對于開源社區來說,Kong 中最誘人的一個特性是可以通過插件擴展已有功能,這些插件在 API 請求響應循環的生命周期中被執行。插件使用 Lua 編寫,而且 Kong 還有如下幾個基礎功能:HTTP 基本認證、密鑰認證、CORS( Cross-origin Resource Sharing,跨域資源共享)、TCP、UDP、文件日志、API 請求限流、請求轉發以及 nginx 監控。


Kong 包可運行在某些 Linux 發行版、Mac OS X 和 Docker 中,無論是本地機還是云端服務器皆可運行。

除了免費的開源版本,Mashape 還提供了付費的企業版,其中包括技術支持、使用培訓服務以及API 分析插件。

docker容器搭建kong-dashboard或konga

安裝前準備

安裝好docker穩定版本
會docker 的基本使用
了解kong概念和使用(文檔地址: https://getkong.org/docs/)
概念術語
upstream: 是對上游服務器的抽象;
target: 代表了一個物理服務,是 ip + port 的抽象;
service: 是抽象層面的服務,他可以直接映射到一個物理服務(host 指向 ip + port),也可以指向一個 upstream 來做到負載均衡;
route: 是路由的抽象,他負責將實際的 request 映射到 service。
默認情況下,KONG監聽的端口為:
8000: 此端口是KONG用來監聽來自客戶端傳入的HTTP請求,并將此請求轉發到上有服務器;
8443: 此端口是KONG用來監聽來自客戶端傳入的HTTP請求的。它跟8000端口的功能類似,但是它只是用來監聽HTTP請求的,沒有轉發功能。可以通過修改配置文件來禁止它;
8001: Admin API,通過此端口,管理者可以對KONG的監聽服務進行配置;
8444: 通過此端口,管理者可以對HTTP請求進行監控.

Kong安裝

這里以0.13.x 以上的版本為例子,廢棄了API實體對象的使用。
創建docker網絡

docker network create kong-net

安裝數據庫,kong支持 postgres( postgres9.5以上)和Apache Cassandra
創建啟動數據庫,這里以postgres9.5作為數據庫來存儲數據,如下:

$ docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
postgres:9.6

數據庫準備,初始化Kong數據

docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
kong:0.14.1 kong migrations up

啟動kong

docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
-p 8000:8000 \
-p 8443:8443 \
-p 8001:8001 \
-p 8444:8444 \
kong:0.14.1

查看kong是否正在運行

$ curl -i http://localhost:8001

如出現以下則表示沒問題:

docker容器搭建kong-dashboard或konga

通過Restful Admin API 管理kong,參考地址:https://docs.konghq.com/0.14.x/admin-api/

啟動Kong Dashboard 或者 konga

官方推出了dashboard來管理Kong,界面清爽,使用方便,我們接著往下看。
創建并運行Kong dashboard容器

docker run -d \
--network=kong-net \
--link kong:kong -p 8008:8080 pgbi/kong-dashboard start \
--kong-url http://kong:8001 \
--basic-auth kong=kong

然后訪問 http://IP:8008

登錄賬號:kong 密碼:kong,如下圖:

docker容器搭建kong-dashboard或konga

Konga安裝過程

當前KONG的社區版是沒有dashboard的,但是付費的企業版是有帶的,并且還有一些企業版才能使用的插件以及升級后的企業版插件。所以對于使用社區版的用戶而言,排除自己去擼一個dashboard的這種選擇,第三方開源的dashboard無疑是首選。當前GitHub上還在更新維護的dashboard有三個,分別是kong-dashboard,kongdash 和 konga。

說道Kong的管理GUI,網上說的比較多的都是kong-dashboard,但目前最新版(v3.6.0)似乎并未支持最新版本的Kong。而目前在github能找到star比較多的就是konga了。konga不僅支持了Kong的最新版本(service和route的拆分新特性)同時支持管理員的權限控制和多個Kong連接池的管理。Konga由于自帶了用戶權限控制和Kong連接池管理,所以需要一些數據持久化處理。默認支持的數據庫有mongodb、postgres、mysql。這里我們選擇的是PostgresSQL,原因是KONG連接的數據庫也是PGSQL,這樣可以減少數據庫的部署。

啟動一個容器準備Konga的數據庫

docker run --rm  --network=kong-net  pantsel/konga -c prepare -a postgres -u postgresql://kong@kong-database:5432/konga_db

當遷移運行了,我們可以啟動 Konga

 docker run -p 1337:1337 \
             --network=kong-net \
             -e "DB_ADAPTER=postgres" \
             -e "DB_HOST=kong-database" \
             -e "DB_USER=kong" \
             -e "DB_DATABASE=konga_db" \
             -e "KONGA_HOOK_TIMEOUT=120000" \
             -e "NODE_ENV=production" \
             --name konga \
             pantsel/konga
After a while, Konga will be available at:

訪問 http://IP:1337

啟動postgre admin 4

創建并運行postgre admin 4容器

docker run -d -p 8009:80 \
--network=kong-net \
--link kong-database:kong-database \
-e "PGADMIN_DEFAULT_EMAIL=admin@admin.com" \
-e "PGADMIN_DEFAULT_PASSWORD=admin@admin.com" \
-d dpage/pgadmin4

然后訪問 http://IP:8009

登錄賬號:admin@admin.com,密碼:admin@admin.com
創建server,起個名字Host=XXX port:5432 用戶名密碼為kong


參考文檔
1.kong官方文檔:https://getkong.org/docs/
2.docker安裝kong:https://blog.csdn.net/freewebsys/article/details/80428830
3.選擇Kong作為你的API網關:https://www.itcodemonkey.com/article/5980.html

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

偃师市| 和田县| 博爱县| 苗栗县| 调兵山市| 任丘市| 禹州市| 济阳县| 烟台市| 平湖市| 淮北市| 凤山市| 娄烦县| 洛浦县| 武宣县| 济宁市| 逊克县| 郸城县| 外汇| 犍为县| 涿鹿县| 德庆县| 延边| 大庆市| 广丰县| 南川市| 石屏县| 偏关县| 张家口市| 三门县| 郧西县| 平武县| 清远市| 长宁县| 江陵县| 龙岩市| 新昌县| 任丘市| 皋兰县| 巴中市| 桐城市|