使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格-創(chuàng)新互聯(lián)

最近,開源API管理平臺Kong服務(wù)供應(yīng)商近日放出了新的開源項目Kuma。本文嘗試將 bookinfo 應(yīng)用部署在 Kuma 網(wǎng)格中,以便幫助大家更好的理解 Kuma 項目。

創(chuàng)新互聯(lián)不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對營銷、技術(shù)、服務(wù)都有自己獨特見解,公司采取“創(chuàng)意+綜合+營銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的成都網(wǎng)站設(shè)計、成都做網(wǎng)站質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時,也能得到同行業(yè)的專業(yè)認可,能夠為行業(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級,滿足企業(yè)一站式成都營銷網(wǎng)站建設(shè)需求,讓再小的品牌網(wǎng)站制作也能產(chǎn)生價值!

Kuma是能用于管理服務(wù)網(wǎng)絡(luò)(Service Mesh)的通用控制平臺,通過無縫管理4-7層的網(wǎng)絡(luò)流量、微服務(wù)與API,來解決第一代服務(wù)網(wǎng)絡(luò)的技術(shù)限制。

Kuma 強調(diào)其易用性,能確保底層網(wǎng)絡(luò)的安全性與可觀察性,而且即便其提供高級簡單的控制界面,但是使用者仍然可以進行更高級的配置。Kuma 集合了快速數(shù)據(jù)平臺與進階控制平臺,讓使用者可用簡單的指令,就能設(shè)置權(quán)限、公開指標以及配置路由規(guī)則。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

另外,Kuma 采用軟件定義安全性,為所有4層流量啟用 mTLS,并提供高精細度的流量控制功能,強化4層路由功能,而 Kuma 也能夠快速實現(xiàn)追蹤與日志記錄功能,讓用戶分析指標進行錯誤排查。Kuma 可在任意的平臺上執(zhí)行,包括 Kubernetes、虛擬機器、容器、裸機和傳統(tǒng)環(huán)境,使整個企業(yè)組織都能實踐原生云端應(yīng)用。

Kuma 利用開源項目 Envoy 開發(fā)而成,而 Envoy 則是為原生云端應(yīng)用程序設(shè)計的代理,官方提到,Envoy 目前已經(jīng)是邊緣代理的標準,與服務(wù)網(wǎng)絡(luò)一起,成為原生云端系統(tǒng)的重要實現(xiàn)方法,因為對于越大規(guī)模的微服務(wù)應(yīng)用來說,監(jiān)控、安全性和可靠性就更顯得重要。

  • 本文中使用的代碼可以在 Github 找到(https://github.com/waret/kuma-tutorial)。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

首先使用如下命令配置控制平面,這里是在控制平面中創(chuàng)建了一個新的名為 bookinfo的Mesh。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

下圖為 Bookinfo 應(yīng)用的架構(gòu)圖,其中包含 productpage、reviews、details、ratings 等4個服務(wù),另外 reviews 服務(wù)提供了三個版本。在這次測試中,我們?yōu)槊總€版本部署一個實例。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

在數(shù)據(jù)平面,為了能在一個服務(wù)器中部署所有6個實例,這里為了避免沖突,需要考慮為各個實例合理分配 inbound 和 outbound 的端口,如下所示。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

需要注意的一點,kuma-v0.1.2 版本中不支持在同一宿主機上部署多個 Sidecar,但是最新的 master 分支上已經(jīng)做了修改,因此本文后面使用的 kuma 相關(guān)命令行程序都是從 master 分支全新編譯出來的。

執(zhí)行如下命令配置 ratings-v1 服務(wù)。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

執(zhí)行如下命令配置 details-v1 服務(wù)。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

這里對 Istio 項目中的 bookinfo 代碼進行了修改,以支持配置 RATINGS_PORT 參數(shù),包括下面的 productpage 服務(wù)。執(zhí)行如下命令配置 reviews-v1 服務(wù)。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

執(zhí)行如下命令配置 reviews-v2 服務(wù)。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

執(zhí)行如下命令配置 reviews-v3 服務(wù)。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

執(zhí)行如下命令配置 productpage-v1 服務(wù)。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

打開瀏覽器,輸入 http://$IP:10501/productpage,可以看到如下結(jié)果,也即bookinfo應(yīng)用發(fā)布成功。刷新頁面,可以看到review評分的變化。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

為了測試數(shù)據(jù)平面可以動態(tài)更新配置,如下更新 bookinfo/reviews 服務(wù)的本地端口,并執(zhí)行。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

查看對應(yīng)數(shù)據(jù)平面服務(wù)的日志,可以看到新的配置更新生效。但是這里的問題在于 productpage 實例本身仍然訪問的是之前的 10504 端口,而 Sidecar 此時已無法實現(xiàn)該端口的轉(zhuǎn)發(fā),會導致服務(wù)本身的異常。所以總的來說,在 Kuma 的 Universal 模式下,一種比較好的實踐是事先做好應(yīng)用、服務(wù)、實例、端口等的規(guī)劃,升級更新會導致服務(wù)的短暫中斷。

使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格

總結(jié)

Kuma 的優(yōu)勢

  1. 輕量、輕量、輕量,重要的事情說三遍,幾個可執(zhí)行程序就能很方面的部署服務(wù)網(wǎng)格基礎(chǔ)架構(gòu);

  2. 通過顯而易見的方式支持多個Mesh,提供比較好的隔離性。

未解決的問題

  1. 不支持TrafficRoute、TrafficTracing等重要的功能,所以基本上Kuma還處于不可用狀態(tài)。

  2. 雙向認證只支持內(nèi)建的自簽名證書,且只能是在Mesh范圍內(nèi)進行配置。

  3. 由于不支持類似Istio中的Ingress、Egress等功能,當開啟雙向認證時,無法將服務(wù)對外發(fā)布出去,內(nèi)部服務(wù)也無法訪問外部的服務(wù)。

  4. 為了支持在Universal模式下同時啟動多個Envoy,不支持Envoy的熱重啟。不過,由于xDS配置都是熱更新,所以影響并不大。

  5. 在Universal模式下,不支持服務(wù)注冊和發(fā)現(xiàn),用戶需要逐個為服務(wù)配置依賴應(yīng)用的outbound入口,而且由于沒有集成DNS,服務(wù)間訪問需要指定到IP:Port,而不是像Istio一樣指定Service Name即可。在Kubernetes模式下,則是依賴了Service的機制,可以將Hostname或Service Name解析為ClusterIP,隨后發(fā)起的HTTP/TCP請求進入到Sidecar中以后再進行轉(zhuǎn)發(fā)。

  6. 服務(wù)啟動的過程中盡量不要訪問依賴的服務(wù),此時可能由于Sidecar及數(shù)據(jù)平面未配置好,導致服務(wù)啟動失敗。

  7. 查看Envoy的config_dump可以看到,當前都是以TCP連接的模式進行管理,完全沒有發(fā)揮出Envoy的強大能力。

  8. Universal模式下配置數(shù)據(jù)平面對象、啟動Sidecar服務(wù)等方式都是需要管理員手工命令操作,更方便和人性化的包裝也是必須的。

經(jīng)過這次測試,我們可以看到 Kuma 當前還處于項目的初始階段,但總的來說技術(shù)方向還是不錯的。它不像 Istio 一下子就上一套大而全的功能,學習曲線來說比較平緩,可以讓大家很好的理解服務(wù)網(wǎng)格技術(shù)能給大家?guī)淼谋憷?,以及其中存在的技術(shù)難點。

當前阻礙服務(wù)網(wǎng)格技術(shù)應(yīng)用的原因之一是對歷史遺留系統(tǒng)的支持。通常來說,我們需要對老的系統(tǒng)經(jīng)過兩次改造,第一次是容器化,使之能夠運行在Kubernetes上,第二次則是對RPC框架的拆解或完全替換。

如果服務(wù)網(wǎng)格能夠支持非容器場景,則至少工作還能減少一半。我們知道Istio在從v1.3版本開始,開始支持網(wǎng)格擴展,也即將虛擬機或裸金屬主機集成到部署在Kubernetes中的Isito集群中。當前支持兩種方式,一種是單網(wǎng)絡(luò)方式,也即虛擬機或裸金屬主機通過***或VPC連接至Kubernetes內(nèi)部,另外一種是多網(wǎng)絡(luò)下通過入口網(wǎng)關(guān)實現(xiàn)通訊集成。目前來看,由于Istio本身對Kubernetes的依賴比較重,再加上Istio本身的其它功能都已經(jīng)相對比較完善,要想增加網(wǎng)格擴展的功能,工作量是比較大的,所以這兩種方式都還處于開發(fā)狀態(tài)。

相對來說,Kuma則提供了一種在虛擬機或裸金屬主機場景下使用服務(wù)網(wǎng)格的新思路,雖然當前功能完成度相對太低,不過還是值得大家持續(xù)關(guān)注。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站欄目:使用Bookinfo應(yīng)用測試Kuma服務(wù)網(wǎng)格-創(chuàng)新互聯(lián)
URL分享:http://www.bm7419.com/article46/ihohg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計、ChatGPT、網(wǎng)站營銷企業(yè)建站、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站