容器編排無法解決微服務的所有問題,你還需要服務網格

2021-09-11 08:59:47 字數 1647 閱讀 7059

最近的幾次關於容器使用情況的調研都得到了相似的結果,開發團隊不僅採用而且開始擁抱容器技術。大多數人並沒有像超大型組織那樣大規模的使用容器。在一項思科贊助的調研中發現有超過8000家企業在生產環境中使用容器。這聽起來令人印象深刻,但他們使用容器的規模有限。在[戴爾emc,英特爾和紅帽委託的forrester報告]()中,63%使用容器的企業執行的例項超過100個,82%預計到2023年會達到這一規模。這與超大型技術公司使用的數十萬的規模相距甚遠。

雖然採用率很高,這並不是說組織使用容器的道路就是一帆風順的。採納任何一樣新技術都是存在挑戰的。人們使用容器時最關心的是:網路和管理。其次才去關注安全性和不一致性。

網路挑戰是由於kubernetes等流行的容器編排軟體所帶來的。kubernetes構建的就是要支援微服務架構。這允許開發和運維人員將功能抽象成一組pod,並將其作為「service」暴露出來,並通過定義好的api進行訪問。kubernetes支援dns和基於tcp的l4負載均衡。

基於tcp l4負載均衡的問題是它無法與l7(應用程式和api層)互動。對於任何l4負載均衡都是如此;它不是容器和kubernetes獨有的東西。l4負載均衡提供了對連線級別(tcp)協議和指標的可見性,但僅此而已。這使得很難(真的不可能)解決高階問題,例如每秒請求數或事務等l7指標以及基於路徑分割流量(路由請求)。這也意味著您無法在api層進行速率限制或支援重試和斷路等關鍵功能。

因為缺乏這些功能,開發人員就不得不將它們編碼到每個微服務中。這導致運維**包含在業務邏輯中。這明顯不太合適,因為它顯然違反了微服務設計的原則。因為它為微服務增加了構建和技術債。

雖然kubernetes特別擅長處理容器化應用程式的構建和部署,但是它缺乏在執行時監控基於微服務的應用程式所需的關鍵功能。kubernetes只能提供基本的健康檢查存活探針和就緒探針,不能為開發和運維人員提供在執行期間快速有效地診斷問題所需的度量和追溯微服務的呼叫。讓開發人員使用微服務來生成一致的指標可能是一項重大挑戰,尤其是當他們要在限定時間內完成客戶所需功能時,這會給他們帶來很大的壓力。

而service mesh是解決kubernetes在網路和管理方面問題的完美解決方案。

service mesh通過在kubernetes的一些列pod中注入sidecar**能夠很好的解決這些問題。通過直接注入到容器環境,sidecar**能夠透明化網路和一致度量指標。由於所有流量都通過sidecar**進行有效路由,因此它可以自動生成並將所需的指標提供給網格的其它部分。對於在容器環境中部署傳統應用程式的組織而言,這非常有價值。傳統應用程式不太可能適用於現代環境。使用service mesh及其sidecar**基本使這些應用程式能夠產生正確的指標,而無需或很少需要新增/修改**。

這也意味著您不必花時間協調由各種執行時**生成的不同指標。您可以依靠服務網格在所有應用程式和微服務中生成一致的度量標準集合。

這些指標包含提供給網格的更高階資料點,並啟用更高階的網路以確保對請求的最快可用響應。在service mesh中重試和斷路器由sidecar**處理,這減輕了開發人員將運維**引入其微服務的負擔。由於sidecar**不受限於l4負載均衡(tcp),所以靠l7負載均衡(應用程式和api層)它支援更高階別的訊息路由技術。

容器編排是乙個很好的基礎設施,但企業組織需要的不僅僅是乙個良好的基礎設施。他們需要能夠與堆疊上層的服務進行互動的能力,這需要使用指標和現代架構去實現。

服務網格可以很好的提供這兩種服務。當您需要超越容器編排時,請使用服務網格。

Zuul忽略所有微服務,只路由指定的微服務

一 介紹 很多場景下,可能只想讓zuul 指定的微服務,此時可以將zuul.ignored services設為 二 配置舉例 ignored services 使用 可忽略所有微服務 routes microservice provider user user 這樣就讓zuul只路由micoser...

解決國內android sdk無法更新的問題

啟動 android sdk manager 開啟主介面,依次選擇 tools options.彈出 android sdk manager settings 視窗 在 android sdk manager settings 視窗中,在 http proxy server 和 http proxy...

解決國內SDK Manager 無法更新的問題

現在由於gwf,google基本和咱們說咱見了,就給現在在做android 或者想學習android 的朋友帶來了諸多的不便,最簡單的就是android sdk manager 你無法更新了。現在這裡有乙個解決方案,如下。1.啟動 android sdk manager 開啟主介面,依次選擇 too...