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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

總結(jié)

Kuma 的優(yōu)勢(shì)

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

  2. 通過(guò)顯而易見(jiàn)的方式支持多個(gè)Mesh,提供比較好的隔離性。

未解決的問(wèn)題

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

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

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

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

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

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

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

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

經(jīng)過(guò)這次測(cè)試,我們可以看到 Kuma 當(dāng)前還處于項(xiàng)目的初始階段,但總的來(lái)說(shuō)技術(shù)方向還是不錯(cuò)的。它不像 Istio 一下子就上一套大而全的功能,學(xué)習(xí)曲線來(lái)說(shuō)比較平緩,可以讓大家很好的理解服務(wù)網(wǎng)格技術(shù)能給大家?guī)?lái)的便利,以及其中存在的技術(shù)難點(diǎn)。

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

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

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

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

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

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

廣告

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

成都做網(wǎng)站