iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 29
0

為什麼使用Istio

開門見山的先來說說為什麼要使用Istio?要說這故事的起點 來!讓我們回到過去~可以追朔到2018的七月一個Long Time Ago~~因為公司關係需要建立一個專且使用K8S架構,一開始的初衷大概是跟上大時代的洪流,要去將系統微服務化,如此一來需要使用到的就是Ingress->service->pod大致上這樣的基礎架構運行在K8S上,但由於我們有使用一款TCP長連線服務gRPC。

這邊稍微解釋一下gRPC長連線是一個什麼東西為什麼使用,顧名思義長連線就是一個連線後持久化的狀態,在gRPC做法就是當服務第一次做Reqset時建立第一條連線後日後會複用該連線,好處當然就是減緩效能的消耗,簡單來說就是像Websocket,相較HTTP連線每當一次的Reqset重建連線若當數量很高的狀態下就會有相當的影響。

拉回來~在gRPC狀況下在K8S上會遇到HPA,也就是說當服務再多個運行的Backend上會遇到一個問題,就是gRPC做LoadBalance時會咬著一開始建立的連線進而無法達到我們想要的LoadBalance如此一來這就是為什麼要使用Istio,由於它的Istio Proxy(Sidecar)可解決此問題,這邊就不贅述Istio Proxy了,有興趣的可以翻翻先前幾天Istio Control Plane內容。

如圖:

https://ithelp.ithome.com.tw/upload/images/20200920/20129516F8ufjw36L5.png

圖片來源:https://weeraman.com/building-a-service-mesh-with-istio-be5ccce1bf98

當然要使用Istio的理由還是有像是,安全性較高以及路由可控至流量等優勢,但主要需求還是他可以解決掉gRPC尚無法去做LoadBalance的不足。


上一篇
Istio轉變
下一篇
心得 淺談Istio
系列文
淺談 Istio30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言