在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Service Mesh框架的對比:Linkerd vs. Istio

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-25 17:49 ? 次閱讀

引言:

各個細分行業(yè)和領(lǐng)域的組織機構(gòu)正在持續(xù)的加速采用微服務(wù)架構(gòu)。隨之而來的是容器的使用以及端點和服務(wù)通信的爆炸式增長。企業(yè)內(nèi)部的復(fù)雜性和不確定性正在不斷增加。如何在這樣的情況下實現(xiàn)對規(guī)模化通信安全性和可見性的管理頗具挑戰(zhàn)。因此,無論是運營者或者開發(fā)者都強烈渴望將網(wǎng)絡(luò)層的復(fù)雜性封裝為一個新的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)層。當(dāng)此之時,處理此事的最流行的方式是服務(wù)網(wǎng)格(Service Mesh)。

因此,在本文中,我們將對比兩種主流的服務(wù)網(wǎng)絡(luò)的特性,以找出兩者的異同之處,即Linkerd和Istio。文中也會提及有關(guān)服務(wù)網(wǎng)格使用的爭論,探尋在某種特定的場景下,基于特定的用例和架構(gòu),何者比何者更具優(yōu)勢。

一、服務(wù)網(wǎng)格是什么?

服務(wù)網(wǎng)格是一個專有的基礎(chǔ)設(shè)施層,這一層級的存在可以使得微服務(wù)架構(gòu)內(nèi)部的服務(wù)間通信更加可靠、快捷和安全。其基本的理念是在服務(wù)間插入一個代理組成的網(wǎng)絡(luò)來實現(xiàn)對網(wǎng)絡(luò)層的抽象。一言以蔽之,服務(wù)網(wǎng)格的設(shè)計初衷就是幫助開發(fā)者解決微服務(wù)間的交互挑戰(zhàn)。

二、Istio是什么?

Istio是由Google、IBM和Lyft發(fā)起的開源的服務(wù)網(wǎng)格項目。該項目在2017年推出,并在2018年7月發(fā)布了1.0版本。Istio基于Envoy代理并以之為數(shù)據(jù)層(data plane)。可以說Istio是如今最炙手可熱的服務(wù)網(wǎng)格,但由于僅應(yīng)用于Kubernetes,其應(yīng)用價值受到某種限制。

三、Linkerd是什么?

Linkerd(音似chickadee),最初是由Buoyant團隊于2016年打造的一個服務(wù)網(wǎng)格項目。Linkerd是CNCF的官方項目,基于Twitter的Finagle項目并和后者一樣,最初是由Scala語言編寫,設(shè)計理念是支持基于主機(物理主機或者虛擬節(jié)點)的部署模式。由于最初版本的內(nèi)存占用廣受詬病,導(dǎo)致了Conduit項目的開發(fā),Conduit是一個輕量級的服務(wù)網(wǎng)格,為Kubernetes定制,用Rust和Go語言編寫。Conduit項目目前已經(jīng)合并到Linkerd項目,并在2018年7月發(fā)布為Linkerd 2.0 版本。鑒于Linkerd 2.x 基于Kubernetes,而Linkerd 1.x 可以基于節(jié)點的模式部署,當(dāng)面臨復(fù)雜環(huán)境的場景時,人們可以有更靈活的選擇。除非特指,本文的比較都是基于Linkerd 2.x。

四、特性和功能對比

架構(gòu)

Istio和Linkerd都支持以主流的外掛(Sidecar)模式部署。在這種模式下,每個微服務(wù)都被分配一個單獨的代理。微服務(wù)間的通信并不直接進行,而是通過自身的代理轉(zhuǎn)發(fā)。代理會將請求路由到目標(biāo)微服務(wù)的代理,該代理再將請求轉(zhuǎn)發(fā)到目標(biāo)微服務(wù)。所有這些服務(wù)代理構(gòu)成了數(shù)據(jù)層。在服務(wù)網(wǎng)格的架構(gòu)下,數(shù)據(jù)層由控制層(control plane)來進行配置和監(jiān)控,控制層一般另行獨立部署。

架構(gòu)圖示意:以Istio為例。Envoy代理以外掛形式部署。在這樣的部署模型中,代理將注入每個容器單元,因此可以獨立的配置。Istio控制層由很多的組件組成,用來對服務(wù)間通信進行配置、度量、控制和安全管控。

控制層

控制層的使命是通過一系列API和工具對服務(wù)網(wǎng)格內(nèi)的代理實現(xiàn)控制。在控制層中,可以將整個數(shù)據(jù)層作為一個整體來指定認證策略,收集度量指標(biāo),進行配置。

Istio的控制層由三個組件構(gòu)成。首先是Pilot,負責(zé)配置數(shù)據(jù)層。其次是Mixer,負責(zé)收集通信流量的度量指標(biāo),并響應(yīng)數(shù)據(jù)層各種不同的查詢請求,包括授權(quán)、訪問控制和配額查詢等。基于所啟用的適配器的不同,Mixer也可與日志和監(jiān)控系統(tǒng)進行對接。最后是Citadel,這個組件允許開發(fā)者基于服務(wù)身份認證而非網(wǎng)絡(luò)控制建立一個零信任(零信任,zero-trust,簡單講,即假定所有通信方不可信賴并必須進行驗證)機制的網(wǎng)絡(luò)環(huán)境。Citadel負責(zé)為每個服務(wù)指定證書,如果有需要,也可以接受外部的證書授權(quán)密鑰。

白小白:

Linkerd的控制層由一個Web組件、一個控制組件和一個度量組件組成。Web組件提供了基于Web的管理控制面板。控制組件由多個容器部署組成。完成了控制層的多數(shù)功能(包括聚合遙測數(shù)據(jù),提供用戶界面API,為數(shù)據(jù)層提供控制數(shù)據(jù)等)。度量組件由定制化的Prometheus和Grafana組成。Prometheus負責(zé)抓取Linkerd暴露的度量指標(biāo)并儲存下來。Linkerd本身會生成很多外部面板,Grafana負責(zé)渲染和展現(xiàn)這些面板。

數(shù)據(jù)層

在一個典型的服務(wù)網(wǎng)格環(huán)境中,服務(wù)的部署過程將納入一個專有的外掛代理。如前文所述,服務(wù)并不直接向網(wǎng)絡(luò)傳遞消息,而是由本身的代理來進行通信。這樣的機制封裝了服務(wù)間通信的復(fù)雜性。服務(wù)網(wǎng)格內(nèi)的代理之間相互連接,構(gòu)成了數(shù)據(jù)層。

默認情況下,Istio使用Envoy作為數(shù)據(jù)層,Envoy原本是設(shè)計用來與其他類型的代理(比如Nginx)來進行工作的。Linkerd使用自有的代理。

平臺支持

盡管聲稱支持大量的環(huán)境和框架,但在實踐中,Istio僅能與kubernetes相處融洽,這嚴(yán)重限制了他的應(yīng)用范疇。

Linkerd 2.x目前也需要與Kubernetes協(xié)同工作。然而Linkerd 1.x 部署廣泛,并處于活躍的研發(fā)狀態(tài),可以在多種環(huán)境和框架下工作,包括與AWS ECS、DC/OS和Docker協(xié)同工作。能夠支持如此廣泛的環(huán)境,得益于Linkerd 1.x 可以基于主機的部署模式,這使得其可以與用戶的環(huán)境進行整合而無需以外掛的形式部署。

Linkerd 1.x 主機部署模式:linkerd服務(wù)網(wǎng)格可以基于主機部署。基于這樣的模式,同一主機的多個微服務(wù)共享一個Linkerd(1.x)實例。

主機部署模式的主要缺點在于單點代理的失敗將影響多個微服務(wù)。從另一方面講,主機部署模式相對于外掛模式對資源的消耗更低。

協(xié)議支持

基于外掛代理,Istio和Linkerd 2.x 都支持HTTP 1.1, HTTP2, gRPC和TCP協(xié)議的服務(wù)間通信。但Linkerd 1.x 不支持TCP連接。

實現(xiàn)語言

Istio的控制層和Linkerd 2.x 都是用Go語言編寫的,Istio數(shù)據(jù)層的Envoy代理是由C++編寫的,Linkerd 2.x 的數(shù)據(jù)層是用Rust編寫的。Linkerd 1.x 是用Scala編寫的。

安全、加密和授權(quán)

Istio的控制層組件提供了如下的安全功能:Citadel:密鑰和證書管理。Pilot:認證策略和安全命名信息的分發(fā)。Mixer:授權(quán)和審計的管理。外掛:實現(xiàn)代理間基于TLS加密的安全通信。

本文成文時,Linkerd的自動化的TLS加密還處于實驗階段,主機間認證也還未獲支持。

外掛注入

將外掛加入到部署包并且在服務(wù)網(wǎng)格的控制層進行注冊的過程即為“外掛注入”。Istio和Linkerd都支持手動和自動的外掛注入。

高可用性

Istio支持高可性,當(dāng)且僅當(dāng)配置了Kubernetes的多副本模式,并且打開podAntiAffinity開關(guān)的情況下。

linkerd的高可用性目前仍處于實驗階段。

監(jiān)控和跟蹤

Istio原生支持Prometheus并且集成了Jaeger來進行分布式跟蹤。Linkerd支持Prometheus和Grafana從外部進行監(jiān)控,但目前并不支持分布式跟蹤。

性能

Linkerd 2.x 在性能上的常規(guī)開銷總體上比Istio要低一些。一項關(guān)于兩者的性能測試表明,基于一組由HTTP請求組成的測試負載,每秒的千次查詢數(shù)(kqps)基準(zhǔn)值是30-35kqps,經(jīng)由代理轉(zhuǎn)發(fā)后,性能會有所下降,Linkderd降到了10-12kqps,而Istio則降到了3.2-3.9kqps。

五、什么時候應(yīng)該謹(jǐn)慎使用服務(wù)網(wǎng)格?

有五個主要的原因,可能阻止你考慮使用服務(wù)網(wǎng)格來管理微服務(wù)架構(gòu)所帶來的潛在的網(wǎng)絡(luò)復(fù)雜性挑戰(zhàn)。

1、服務(wù)網(wǎng)格具有排他性

服務(wù)網(wǎng)格是一個平臺解決方案,因此是排他性的。這意味著你將被迫在“服從他們的方式”和“基于我自己的業(yè)務(wù)和技術(shù)考量選擇適合的方式”之間做出選擇。根據(jù)你所處的形勢,對服務(wù)網(wǎng)格的前期投資可能十分昂貴。

而且,如果說控制應(yīng)用和服務(wù)間通信對你的組織來說具有戰(zhàn)略性的重要意義的話,那么使用一個現(xiàn)成的服務(wù)網(wǎng)格就沒有意義了。這樣或許可以受益于框架成長帶來的收益 ,但無法對你的目標(biāo)實現(xiàn)控制。

2、服務(wù)網(wǎng)格具有復(fù)雜性

服務(wù)網(wǎng)格的部署將向你的架構(gòu)引入相當(dāng)可觀的復(fù)雜性。部署過程需要引入外掛代理,服務(wù)網(wǎng)格需要與現(xiàn)有的環(huán)境進行整合并在未來的時間里反復(fù)的配置,所有的加密可能需要重新設(shè)計。基于Kubernetes這樣的平臺建立服務(wù)網(wǎng)格的實例,會要求你不僅是服務(wù)網(wǎng)格的專家,并且是熟悉Kubernetes的專家。

3、服務(wù)網(wǎng)格可能運行緩慢

隨著網(wǎng)格的擴張和路由表的膨脹,通過一系列代理進行的路由通信將慢的痛苦異常。

4、服務(wù)網(wǎng)格傾向于建立自治的架構(gòu)藍圖

使用服務(wù)網(wǎng)格來追蹤服務(wù)間的通信請求并不總是像最初那樣看起來有價值。比如,假設(shè)你的微服務(wù)環(huán)境與其他團隊的應(yīng)用和服務(wù)相整合,在跨越不同的技術(shù)團隊和業(yè)務(wù)單元的邊界時,翻譯不同的追蹤記錄將十分挑戰(zhàn),如果是企業(yè)級環(huán)境或者是云端供應(yīng)商的情況下,這種挑戰(zhàn)將更加嚴(yán)峻。

5、服務(wù)網(wǎng)格著眼于開發(fā)者層面的考量

服務(wù)網(wǎng)格著眼于典型的開發(fā)者視角的服務(wù)間通信問題。對于規(guī)模化且不確定的應(yīng)用和服務(wù)而言,組件之間的交互會天然衍生一系列的復(fù)雜性,對這些新興行為的管控,服務(wù)網(wǎng)格無能為力。

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Service
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    13836
  • 微服務(wù)架構(gòu)

    關(guān)注

    0

    文章

    25

    瀏覽量

    2984
收藏 人收藏

    評論

    相關(guān)推薦

    藍牙Mesh與WiFi Mesh組網(wǎng)的對比

    將對藍牙Mesh與WiFi Mesh組網(wǎng)技術(shù)進行深度對比,從組網(wǎng)原理、網(wǎng)絡(luò)結(jié)構(gòu)、性能特點、應(yīng)用場景等多個維度進行深入剖析,以期為相關(guān)領(lǐng)域的從業(yè)者提供有價值的參考。
    的頭像 發(fā)表于 02-06 16:19 ?179次閱讀

    選擇DSP處理器的考慮因素(ADSP-2115 vs. TMS320C5x)

    電子發(fā)燒友網(wǎng)站提供《選擇DSP處理器的考慮因素(ADSP-2115 vs. TMS320C5x).pdf》資料免費下載
    發(fā)表于 01-13 15:55 ?0次下載
    選擇DSP處理器的考慮因素(ADSP-2115 <b class='flag-5'>vs.</b> TMS320C5x)

    mesh網(wǎng)絡(luò)中常見問題解決方法

    Mesh網(wǎng)絡(luò)因其高可靠性和擴展性,在無線通信、物聯(lián)網(wǎng)(IoT)、智慧城市等領(lǐng)域得到廣泛應(yīng)用。然而,Mesh網(wǎng)絡(luò)在實際部署和運行過程中,也會遇到各種問題。 1. 網(wǎng)絡(luò)覆蓋不足 問題描述 :在某些區(qū)域
    的頭像 發(fā)表于 11-11 15:21 ?1544次閱讀

    藍牙MESH是什么?

    藍牙Mesh是一種基于藍牙技術(shù)的無線通信網(wǎng)絡(luò)協(xié)議,專門設(shè)計用于創(chuàng)建大規(guī)模設(shè)備網(wǎng)絡(luò),特別適用于物聯(lián)網(wǎng)(IoT)應(yīng)用。以下是藍牙Mesh的一些關(guān)鍵特性和應(yīng)用:一、藍牙Mesh介紹1.關(guān)鍵特性多跳通信
    的頭像 發(fā)表于 09-14 08:03 ?2061次閱讀
    藍牙<b class='flag-5'>MESH</b>是什么?

    基于DPU與SmartNIC的K8s Service解決方案

    1.? 方案背景 1.1. Kubernetes Service介紹 Kubernetes Service是Kubernetes中的一個核心概念,它定義了一種抽象,用于表示一組提供相同功能的Pods
    的頭像 發(fā)表于 09-02 17:01 ?1037次閱讀
    基于DPU與SmartNIC的K8s <b class='flag-5'>Service</b>解決方案

    在espconn_mesh_lflow_request_timeout后出現(xiàn)xxx mesh is busy的原因?

    如下所示,在espconn_mesh_lflow_request_timeout后出現(xiàn)xxx mesh is busy,調(diào)用espconn_mesh_connect重連,還是會出現(xiàn)xxx me
    發(fā)表于 07-11 08:17

    請問ESP32-S2是否可以與WIFI-MESH進行FTM測距?

    FTM技術(shù)測量智能手表與MESH網(wǎng)絡(luò)中各個節(jié)點的距離,從而實現(xiàn)定位。目前測試的版本是v4.4-dev-4-g73db14240,執(zhí)行esp_wifi_ftm_initiate_session無法成功。我的問題是,ESP-IDF框架是否支持這種技術(shù)方案?謝謝!
    發(fā)表于 06-21 12:18

    ESP MESH各節(jié)點無法互聯(lián)怎么解決?

    最近測試esp-mesh,發(fā)現(xiàn)使用例程編譯后沒兩個esp32開發(fā)板沒辦法組網(wǎng),已經(jīng)試遍所有辦法。 SDK是Arduino 2.0.0 rc1(idf 4.4)。之前用IDF3.3.1測試也是相同
    發(fā)表于 06-21 07:13

    求助,關(guān)于BLE_MESH_wifi_coexist例程配置問題求解

    環(huán)境相關(guān) 硬件:ESP32-S NodeMCU-32 V1.2 編譯器:Win10_VS Code, IDF 版本:PS C
    發(fā)表于 06-20 07:42

    如何清除ESP32 BLE的Mesh信息?

    1:當(dāng)我在menuconfig菜單中開啟了 Store BLE Mesh configuration persistently 選項后,provisioner 和 node 都可以在正常組網(wǎng)后把組網(wǎng)
    發(fā)表于 06-18 06:07

    藍牙Mesh模塊組網(wǎng)時無線回程影響速率嗎?

    隨著科技的發(fā)展,智能家居、智能辦公等場景越來越廣泛地應(yīng)用于我們的生活。其中,藍牙Mesh組網(wǎng)技術(shù)作為一種新型的無線通信技術(shù),受到了越來越多用戶的關(guān)注。那么,藍牙Mesh模塊在組網(wǎng)時無線回程過程中是否
    的頭像 發(fā)表于 05-23 17:37 ?903次閱讀

    Wi-Fi 7與Wi-Fi 6的相關(guān)知識科普

    科普:Wi-Fi 7 vs. Wi-Fi 6,青出于藍
    的頭像 發(fā)表于 03-12 10:59 ?883次閱讀
    Wi-Fi 7與Wi-Fi 6的相關(guān)知識科普

    深度解析Istio Proxy邊車容器的功能與能力

    在創(chuàng)建Pod的請求到達Kube-apiserver后,首先進行認證鑒權(quán),然后在準(zhǔn)入控制階段 kube-apiserver以REST的方式同步調(diào)用sidecar-injector webhook服務(wù)進行init容器與istio-proxy容器的注入,最后將Pod對象持久化存儲到Etcd中。
    發(fā)表于 03-04 09:43 ?1766次閱讀
    深度解析<b class='flag-5'>Istio</b> Proxy邊車容器的功能與能力

    VS Code和VS Codium之間的區(qū)別有哪些?你選哪個?

    VS Codium 是一個 VS Code 的克隆版本,百分之百免費且開源。
    的頭像 發(fā)表于 02-23 15:28 ?2139次閱讀
    <b class='flag-5'>VS</b> Code和<b class='flag-5'>VS</b> Codium之間的區(qū)別有哪些?你選哪個?

    成為Istio專家,開啟云原生應(yīng)用之旅!

    ICA (Istio Certified Associate)認證考試展示了對Istio原則、術(shù)語和最佳實踐的深入理解,以便建立Istio。這對于在當(dāng)今日益復(fù)雜的微服務(wù)計算環(huán)境中工作至關(guān)重要。
    的頭像 發(fā)表于 02-21 15:11 ?536次閱讀
    成為<b class='flag-5'>Istio</b>專家,開啟云原生應(yīng)用之旅!
    主站蜘蛛池模板: aaaaa级毛片免费视频 | 午夜剧场官网 | 久久久久女人精品毛片九一 | 免费看黄色片网站 | 欧美性色xo影院永久禁欲 | 国产三级日本三级日产三级66 | 香蕉操| 岬奈奈美在线 国产一区 | 日本特黄特色大片免费看 | 999av视频| 日本免费www | 国产精品视频第一区二区三区 | 四虎精品成人a在线观看 | 国产精品虐乳在线播放 | 日本janpanese护士bus中国 | 香港三级理论在线观看网站 | 色女人天堂 | 欲色影视| 福利社藏经阁 | 久久亚洲综合色 | freesexvideo性2| 朋友夫妇和交换性bd高清 | 色婷婷亚洲十月十月色天 | 亚洲一卡2卡3卡4卡5卡乱码 | 在线资源天堂 | 91大神在线免费观看 | 欧美激情五月 | 国产美女主播在线观看 | 天堂网bt| 天天看片夜夜爽 | www.色99| 美女扒开尿口给男人桶动态图 | 特黄一级毛片 | 国产成人亚洲综合a∨婷婷 国产成人一区二区三中文 国产成人一区二区在线不卡 | 亚洲三级在线 | 日韩一级特黄毛片在线看 | 天天操天天干天天 | 国产叼嘿视频网站在线观看 | 四虎黄色网 | 激情网五月天 | 国模于子涵啪啪大胆 |