Kong入門學習實踐(2)實驗環境搭建

5b789690169bcfa07040fee278cbd4bf.jpeg

【API網關】|?總結/Edison Zhou


最近在學習Kong網關,因此根據老習慣,我會將我的學習過程記錄下來,一來體系化整理,二來作為筆記供將來翻看。由于我司會直接使用Kong企業版,學習過程中我會使用Kong開源版。

本篇,我們學習如何快速搭建一個Kong實驗環境。

搭建方式

目前,我們可以選擇多種部署方式,包括:宿主機部署、Docker部署、Kubernetes部署 以及 混合部署。

4de62d2019c4706f2b11032cae52f874.png

這里,我們的目的是學習實踐,因此選擇Docker部署,為了方便,我們選擇基于docker compose的一鍵部署。

首先,你需要安裝docker engine及docker-compose:

# sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# sudo chmod +x /usr/local/bin/docker-compose
# docker-compose --version

All-In-One快速部署

我們需要準備一個yml模板文件:

version: "3.8"volumes:kong_data: {}networks:kong-net:services:######################################## Postgres: The database used by Kong#######################################kong-database:image: postgres:10container_name: kong-postgresrestart: on-failurenetworks:- kong-netvolumes:- kong_data:/var/lib/postgresql/dataenvironment:POSTGRES_USER: kongPOSTGRES_PASSWORD: ${KONG_PG_PASSWORD:-kong}POSTGRES_DB: kongports:- "5432:5432"healthcheck:test: ["CMD", "pg_isready", "-U", "kong"]interval: 30stimeout: 30sretries: 3######################################## Kong database migration#######################################kong-migration:image: ${KONG_DOCKER_TAG:-kong:latest}command: kong migrations bootstrapnetworks:- kong-netrestart: on-failureenvironment:KONG_DATABASE: postgresKONG_PG_HOST: kong-databaseKONG_PG_DATABASE: kongKONG_PG_USER: kongKONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong}depends_on:- kong-database######################################## Kong: The API Gateway#######################################kong:image: ${KONG_DOCKER_TAG:-kong:latest}restart: on-failurenetworks:- kong-netenvironment:KONG_DATABASE: postgresKONG_PG_HOST: kong-databaseKONG_PG_DATABASE: kongKONG_PG_USER: kongKONG_PG_PASSWORD: ${KONG_PG_PASSWORD:-kong}KONG_PROXY_LISTEN: 0.0.0.0:8000KONG_PROXY_LISTEN_SSL: 0.0.0.0:8443KONG_ADMIN_LISTEN: 0.0.0.0:8001depends_on:- kong-databasehealthcheck:test: ["CMD", "kong", "health"]interval: 10stimeout: 10sretries: 10ports:- "8000:8000"- "8001:8001"- "8443:8443"- "8444:8444"######################################## Konga database prepare#######################################konga-prepare:image: pantsel/konga:latestcommand: "-c prepare -a postgres -u postgresql://kong:${KONG_PG_PASSWORD:-kong}@kong-database:5432/konga"networks:- kong-netrestart: on-failuredepends_on:- kong-database######################################## Konga: Kong GUI#######################################konga:image: pantsel/konga:latestrestart: alwaysnetworks:- kong-net   environment:DB_ADAPTER: postgresDB_URI: postgresql://kong:${KONG_PG_PASSWORD:-kong}@kong-database:5432/kongaNODE_ENV: productiondepends_on:- kong-databaseports:- "1337:1337"

備注:

(1)該yml文件定義了Kong、PostgreSQL 和 Konga 三個核心組成部分

(2)kong-migration會做Kong的數據庫數據初始化操作

(3)kong-prepare會做Konga的數據庫數據初始化操作

(3)該yml文件支持自定義環境變量替換當中的Kong鏡像名字、PostgreSQL的密碼

運行以下命令進行部署:

docker-compose up -d

Konga連接Kong

部署完成后,訪問服務器的1337端口即可看到Konga的登錄注冊頁面,首次訪問需要創建一個Admin賬號,隨意輸入即可,但密碼要大于7位字符。

通過Admin賬號登錄之后,需要指定Kong的Admin URL讓Konga能夠連接Kong。這里我們綁定的Kong Admin API端口是8001(http),8444(https,但這里我們實驗環境,沒有配置SSL證書,因此跳過)。

3cdfcabb58bf687a2e1052bb6201ce82.png

點擊CREATE CONNECTION之后,即可看到首頁儀表盤了:

9b8eb157d7dce20872fed6358576dcc9.png

這個儀表盤主要展示了五大類的信息:

  • 連接信息:有多少活動的客戶端連接數等

  • 節點信息:Kong的節點名、管理端口等

  • 定時器信息:等待運行 和 正在運行 的定時器

  • 數據庫信息:當前的數據庫連接信息及端口等

  • 插件信息:開啟啟用的插件有哪些

看到這里,我們的實驗環境就初步完成了。

下一篇,我們會嘗試配置路由轉發,歡迎持續關注。

參考資料

閆觀濤,《Kong入門與實踐-基于Nginx和OpenRestry的云原生微服務網關》

風起云邊,《Kong - Overview》

風一樣的程序員,《45張圖帶你從0玩轉Kong Gateway》

609a0a6e9deb0b8037d96d43c9f504ca.gif

年終總結:Edison的2021年終總結

數字化轉型:我在傳統企業做數字化轉型

C#刷題:C#刷劍指Offer算法題系列文章目錄

.NET面試:.NET開發面試知識體系

.NET大會:2020年中國.NET開發者大會PDF資料

4f5f93b7553160f226c5467471342ee7.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282701.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282701.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282701.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mysql-索引的基礎和類型

一、 索引的基礎 索引類似于書籍的目錄,要想找到一本書的某個特定主題,需要先查找書的目錄,定位對應的頁碼。 存儲引擎使用類似的方式進行數據查詢,先去索引當中找到對應的值,然后根據匹配的索引找到對應的數據行 二…

ligerUI的列頭合并代碼片段

//列頭合并 function onAfterShowData(data){//顯示數據前觸發此事件 console.log(123); var k 0; var tr $(.l-grid-body.l-grid-body1).find(table tr);//找到被凍結的列(frozen),利用find方法找到所有的行 $.each($(tr)…

我的未來計算機作文,我的未來作文(精選4篇)

我的未來作文(精選4篇)在平平淡淡的日常中,大家總免不了要接觸或使用作文吧,作文根據體裁的不同可以分為記敘文、說明文、應用文、議論文。怎么寫作文才能避免踩雷呢?以下是小編收集整理的我的未來作文,僅供參考,大家一…

RDS for MySQL Mysqldump常見問題及處理

2019獨角獸企業重金招聘Python工程師標準>>> 摘要: RDS for MySQL Mysqldump 常見問題和處理 GTID 特性相關 避免表級鎖等待 設置導出字符集 其他導出時需要注意的選項 舉例 RDS for MySQL 不支持的選項 RDS for MySQL 邏輯備份 1. GTID 特性相關 MySQ…

AI求解PDE

一、波動方程的PINN解法: Guo Y, Cao X, Liu B, et al. Solving partial differential equations using deep learning and physical constraints[J]. Applied Sciences, 2020, 10(17): 5917. 二、二維的Navier–Stokes方程組的PINN解法 矢量形式的不可壓縮Navier-Stokes方程…

使用CADisplayLink實現UILabel動畫特效

在開發時,我們有時候會遇到需要定時對UIView進行重繪的需求,進而讓view產生不同的動畫效果。 本文項目 效果圖 初探 CADisplayLink 定時對View進行定時重繪可能會第一時間想到使用NSTimer,但是這樣的動畫實現起來是不流暢的,因為在…

《ASP.NET Core 6框架揭秘》實例演示[27]:ASP.NET Core 6 Minimal API的模擬實現

Minimal API僅僅是在基于IHost/IHostBuilder的服務承載系統上作了小小的封裝而已,它利用WebApplication和WebApplicationBuilder這兩個類型提供了更加簡潔的API,同時提供了與現有API的兼容。[本文節選《ASP.NET Core 6框架揭秘》第17章]一、基礎模型二、…

Mysql的關聯查詢語句

一 內連接( inner join) 1、多表中同時符合某種條件的數據記錄的集合 (取兩表公共部分) 2、inner join 可以縮寫成 join 例如: select * from A,B WHERE A.idB.id 或者 select * from A inner join B on A.idB.id 內連接分為三類:{ (1&#xff0…

高性能Server---Reactor模型

無處不在的C/S架構 在這個充斥著云的時代,我們使用的軟件可以說99%都是C/S架構的! 你發郵件用的Outlook,Foxmail等你看視頻用的優酷,土豆等你寫文檔用的Office365,googleDoc,Evernote等你瀏覽網頁用的IE,Chrome等(B/S是特殊的C/S)……C/S架構…

計算機控制系統的試題,計算機控制系統練習題(1)

21. 給出多通道復用一個D/A轉換器的原理示意圖。 答:22. 什么是信號重構?答:把離散信號變為連續信號的過程,稱為信號重構,它是采樣的逆過程。23. 寫出零階保持器的傳遞函數,引入零階保持器對系統開環傳遞函…

springmvc_3(將數據放入map中)

jsp頁面 結果 轉載于:https://www.cnblogs.com/mohehpc/p/6491376.html

怎樣用原生js配合css的transition寫個無縫滾動

之所以想要寫原生js配合css轉換的無縫滾動,是因為之前在簡書上看到一哥們寫的一篇文章,說是在網上找了一堆js配合css transition屬性寫的輪播插件,可惜沒有無縫的效果,結果他用原生js重寫了一個可以無縫滾動的。好吧,我…

聊聊策略模式

1、簡介策略模式就是把各個平等的具體實現進行抽象、封裝成為獨立的算法類,然后通過上下文和具體的算法類來進行交互。各個策略算法都是平等的,地位是一樣的,正是由于各個算法的平等性,所以它們才是可以相互替換的。雖然我們可以動…

小學計算機課每周幾節,小學信息技術課時多少

滿意答案小學信息技術課程標準一、課程任務和教學目標中小學信息技術課程的主要任務是:培養學生對信息技術的興趣和意識,讓學生了解和掌握信息技術基本知識和技能,了解信息技術的發展及其應用對人類日常生活和科學技術的深刻影響。通過信息技…

張旭升20162329 2006-2007-2 《Java程序設計》第一周學習總結

20162329 2006-2007-2 《Java程序設計》第一周學習總結 教材學習內容總結 通過打書上的代碼熟悉了Java編程的基本過程 教材學習中的問題和解決過程 1.因為我的虛擬機不可用所以我在Windows中安裝了bash和git,但是由于Windows下bash中沒有中文而且我英語又不是很好所…

《圖解 HTTP》讀書筆記(未完待續)

ARP 協議(Address Resolution Protocol)一種以解析地址的協議,根據通信雙方的 IP 地址就可以查出對應的 MAC 地址。MAC( Media Access Control Address)地址是指網卡所屬的固定的地址MIME,多部分對象集合&a…

SQL查詢的安全方案

1.使用預處理語句防sql注入 2.寫入數據庫的數據要進行特殊字符轉義 3.錯誤信息不返回給用戶,記錄到日志 4.定期做數據備份 5.不給查詢用戶root權限,合理分配權限 6.關閉遠程訪問數據庫權限 7.修改root口令,不使用默認口令,使用較復雜口令 8.刪除多余的用戶 9.改變root用戶的名稱…

.NET 實現啟動時重定向程序運行路徑及 Windows 服務運行模式部署

日常工作中有時候會遇到需要將程序直接在服務器上運行,而不依賴于 IIS 托管的情況,直接運行有兩種方式,一種是部署為 服務模式,另一種則是 直接啟動 .NET 發布之后的 exe 文件以 控制臺模式運行,控制臺模式運行主要問題…

iOS runtime實戰應用:關聯對象

在開始之前建議先閱讀iOS runtime的基礎理解篇:iOS內功篇:runtime 有筒子在面試的時候,遇到這樣一個問題:“如何給NSArray添加一個屬性(不能使用繼承)”,筒子立馬蒙逼了,不能用繼承&…

黑龍江科技大學計算機考研復試科目,2020年黑龍江科技大學計算機應用技術考研經驗分享...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓育明考研備考策略隨著IT業的迅猛發展,各高校計算機專業報名火爆,甚至文科學生跨專業報考時都會選擇計算機。計算機專業競爭日趨激烈,那么如何在充分發揮公共科目優勢的同時,盡量縮小專…