您好,登錄后才能下訂單哦!
小編給大家分享一下互聯網中6大服務網格工具比較的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
服務網格(Service mesh)已經不是一個新鮮概念,但它實現了連接運行在Kubernetes作為容器化平臺之上的微服務,這使得服務網格的想法更加流行。如果沒有服務網格,每個微服務都需要配置以接收(或發送)連接到其他需要與之通信的微服務,但服務網格完全改變了這一狀況。
與此前需要手動配置以及投入大量的時間精力來維護微服務之間的連接所不同的是,開發人員現在可以創建一個網格,使得微服務彼此通信可靠、可控以及安全。Kubernetes和服務網格是相互作用的,主要是因為使用服務網格可以在不增加工作量的情況下,實現更復雜的容器化架構。
因此,有很多方式可以在Kubernetes頂層建立一個服務網格。在本文中,我們將比較一些你可以用于建立服務網格的工具,你可以分別了解到它們的優劣勢進而選出最適合自己的服務網格工具。
官網:https://aws.amazon.com/app-mesh/
由于現在許多基于Kubernetes的應用程序和微服務都運行在Amazon Web Services環境中,所以很難不談到AWS App Mesh。顧名思義,AWS App Mesh是亞馬遜自己的服務網格,用于為Amazon services創建服務網格層。
作為亞馬遜的產品,AWS App Mesh利用結合了Envoy的專有技術作為其服務代理。AWS App Mesh通過創建虛擬服務在相同的命名空間中連接服務。 在你的AWS環境中每個微服務都可以找到虛擬服務并使用它來與其他微服務通信。
AWS App Mesh與其他服務(例如EKS、Fargate和EC2)的無縫集成是其最強的優勢,但在使用App Mesh的過程中存在一些限制。首先,你不能將App Mesh遷移到外部或者在多云設置中使用這一服務。
App Mesh還借助CloudWatch和AWS X-Ray來管理服務網格,這意味著你可以在不離開主儀表板的情況下完全控制該層。諸如支持mTLS和高級負載均衡的特性在App Mesh中也有,但是它不支持身份驗證規則。
官網:https://istio.io/latest/zh/
Istio可能是最流行的Kubernetes服務網格工具,它最初由Lyft開發,但后來變成Lyft、Google和IBM聯合開發。考慮到Kubernetes背后的公司是谷歌,那么Istio被廣泛用于許多部署類型也并不奇怪了。
與App Mesh類似,Istio也將Envoy用作其服務代理,但它并沒有限制你把Envoy作為唯一的ingress controller。Istio的獨特之處在于它提供了巨大的靈活性。你可以將Istio用于其他的容器化平臺,但其與Kubernetes的無縫銜接使其發揮的作用更大。
例如,Istio支持mesh擴展和多云網格,這兩個特性在App Mesh和其他服務網格工具里都是沒有的。Istio還可以處理流量訪問控制以及負載均衡,就像它是為了執行這些任務而構建的一樣。它甚至支持故障注入和延遲注入。
使用Istio的唯一缺點是你可能會對它提供的功能感到不知所措。如果你有足夠的資源使用Istio處理服務網格層,這個工具有可能通過其功能簡化最復雜的微服務架構。
官網:https://linkerd.io/
當Linkerd發布2.x版本時,它已經是一個十分流行的服務網格工具了。新版本受到了Kubernetes社區的歡迎,截止到2020年4月中旬,其2.7.1穩定版已經出爐。它完全是作為一個獨立的服務網格工具來構建的,所以它并不依賴Envoy等第三方工具來管理,它甚至還包含了linkerd-proxy作為服務代理。
最近的升級還包括dashboard的改進和針對金絲雀部署的流量拆分功能的可視化。這使其成為實時監控和編排金絲雀和藍綠部署的絕佳工具。
在保持獨立的同時,Linkerd還與Ingress controller保持高度兼容性。實際上,Linkerd能夠與你使用的任意Ingress controller一起工作,使它在這方面最為靈活。一個簡單的linkerd inject命令就可以讓服務網格與你的應用程序集成。
Linkerd2 也是高度優化的,安裝僅需60秒。如果你正在尋找可以帶來最佳性能的服務網格工具,那么Linkerd是你可以考慮嘗試的。作為一個非侵入式的服務網格工具,Linkerd在部署之后并不需要進行大量的優化。開箱即用的配置足以支持復雜的微服務架構,并且能夠防止重大工具。Linkerd通過mutual TLS(mTLS)加密來增強應用程序的安全性。
Linkerd也是一個專門為Kubernetes開發的工具。它可能不支持多云和多集群網格創建,但這絲毫不會減弱其作為Kubernetes實例的服務網格層的能力。除此之外,它也可以與OpenCensus配合使用,從而使跟蹤和管理變得非常容易。
官網:https://kuma.io/
Kuma將Envoy作為服務代理并且支持任意ingress controller。這與Consul Connect十分類似(該工具我們稍后會介紹),但Kuma也有自己令人耳目一新的功能。而且這些新意可能是因為Kuma是這個列表中最新的工具。
不要被Kuma年輕的年齡所欺騙了,它不僅僅已經生產就緒,而且還具備了你所期望的服務網格工具的功能。它支持所有與OpenTracing兼容的所有后端并且允許你在需要時使用外部CA證書。不過,這一工具也存在不完善的地方——有一些功能是缺失的。
目前,在Kuma中沒有辦法進行基于路徑或基于請求頭的流量分割。它也不支持諸如流量訪問控制和指標等功能。這些功能也許會在后續版本中引入,但現在你必須得手動制作代理模板來彌補這些功能的缺失。
但是,Kuma作為一個服務網格工具還是很有前途的,盡管目前它只是0.4.0版本,但其開發者十分關注社區的意見并且十分樂意滿足用戶的要求,從這個維度上看,這個工具無疑是極具競爭力的。
官網:https://www.consul.io/
由HashiCorp推出的Consul Connect可以與Envoy及其他各種服務代理一起工作,它還可以與任何ingress controller一起工作,這使其成為最容易集成到現有Kubernetes集群中的工具之一。
在任意Consul環境中Consul Connect都可以無縫銜接,但是它也只能在Consul環境中工作。雖然該服務網格工具提供了許多方便的功能,但它是為了能與其他HashiCorp產品使用而設計的。不過,這些工具的應用十分廣泛。
從TCP到gRPC的一切都支持,此外這一工具還能與Kubernetes、VM甚至Nomads一起工具。網格擴展也是完全支持的,所以你可以擁有一個跨多個云服務和集群的環境,并且仍然具有一個支持微服務的功能強大的服務網格層。
Consul Connect需要改進的一個方面是監控。然而,你也可以整合其他監控工具,以便獲得日志和每個路由的指標。你甚至可以集成諸如Prometheus和Grafana等工具來可視化你的監控數據。然后你只需要從你的服務代理中提取數據即可。
這些服務網狀工具基本設計為Envoy作為服務代理。與其他邊緣代理工具相比,Envoy確實具有一些優勢,其中高級負載均衡是最突出的優勢。
自動重試、區域本地負載均衡、request shadowing等功能可以讓你配置流量負載均衡以獲得最大性能。另一方面,高可觀察性使得Envoy成為維護支持能力強大架構的網絡的完美解決方案。
當然,這些工具有一個主要目標:創建一個云架構,在這個架構中,微服務可以以可靠和安全的方式彼此通信。好消息是,無論你使用哪種工具,你都能實現這個目標。
以上是“互聯網中6大服務網格工具比較的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。