Kubernetes - 服務網格(service mesh)

1. 服務網格誕生的背景

服務網格並不是新概念,微服務架構被越來越多的機構採用是服務網格誕生的大背景。

微服務相對於多個服務一體的單體應用來說,有諸多好處,因而被越來越多的採用:

  • 技術可異構,各個服務之間採用RPC或HTTP通信,約定好接口,使用哪種技術或語言都可以;
  • 魯棒性,如果微服務之間的依賴關係處理的好,可以做到一個服務掛掉不影響其他服務;
  • 組合,獨立的微服務意味着可重用性強,可以使用部分微服務組合新應用。

微服務也有其問題,當服務多起來,具有一定規模後,問題開始顯露:

  • 服務之間互相調用時,服務A如何能快速找到並訪問服務B(服務發現);
  • 當某服務不可用時,如何做到快速熔斷,以免造成微服務的雪崩(熔斷機制);
  • 服務B如何保證到達的請求都是通過認證的請求(權限認證);
  • 如何管理複雜的微服務之間的調用關係,出現問題如何快速定位(服務監控與追蹤)。

2. 服務網格是什麼

微服務的問題,我們可以解決,比如我們可以在應用中添加服務發現的功能,增加熔斷機制,增加權限認證,同時追蹤服務調用關係鏈,我們的服務將非常臃腫,而且每個服務都有重複的東西:

每個服務都實現相同的功能

軟件工程的一個準則是複用,當我們發現一塊功能會使用超過兩次,我們就應該提取出來,上圖中服務A和B的服務發現、熔斷機制、權限認證、服務監控與追蹤應當提取爲一個模塊,提取後會變成這樣:

服務的相同部分提取爲單獨模塊

和之前一樣,每個服務都有相同的功能,但不同的是,提取後相同的功能都是一個對象的實例(數據平面),且以sidecar的模式存在,這些實例有集中管理和配置的地方(控制平面)進行管理和配置。最終形成如下網格狀的結構,借用一張經典的圖,也就是服務網格。

3. 服務網格能做什麼

 

  • 服務發現
  • 負載均衡
  • 加密通信
  • 可觀察
  • 可追蹤
  • 鑑權與授權
  • 熔斷機制

 

4. 服務網格怎麼用

 

istio是最有名的實現

 

5. 效果怎麼樣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章