Slime-io服務(wù)網(wǎng)格組件
Slime 是網(wǎng)易數(shù)帆旗下輕舟微服務(wù)團(tuán)隊(duì)開源的服務(wù)網(wǎng)格組件,它可以作為 Istio 的 CRD 管理器,旨在通過更為簡單的配置實(shí)現(xiàn) Istio/Envoy 的高階功能。目前 slime 包含三個非常實(shí)用的子模塊:
- 配置懶加載:無須手動配置 SidecarScope,按需加載配置和服務(wù)發(fā)現(xiàn)信息
- Http 插件管理:使用新的 CRD pluginmanager/envoyplugin 包裝了可讀性,可維護(hù)性較差的 envoyfilter,使得插件擴(kuò)展更為便捷
- 自適應(yīng)限流:結(jié)合監(jiān)控信息自動調(diào)整限流策略
架構(gòu)
Slime架構(gòu)主要分為三大塊:
- slime-boot,部署slime-module的operator組件,通過slime-boot可以便捷快速的部署slime-module。
- slime-controller,slime-module的核心線程,感知SlimeCRD并轉(zhuǎn)換為IstioCRD。目前slime-controller已經(jīng)細(xì)化為各個模塊的controller,slime作為framework提供通用的基礎(chǔ)能力。
- slime-metric,slime-module的監(jiān)控獲取線程,用于感知服務(wù)狀態(tài),slime-controller會根據(jù)服務(wù)狀態(tài)動態(tài)調(diào)整服務(wù)治理規(guī)則。指標(biāo)來源支持Prometheus或者Accesslog。
其架構(gòu)圖如下:
使用者將服務(wù)治理策略定義在CRD的spec中,同時,slime-metric獲取關(guān)于服務(wù)狀態(tài)信息,并將其記錄在CRD的metricStatus中。slime-module的控制器通過metricStatus感知服務(wù)狀態(tài)后,將服務(wù)治理策略中將對應(yīng)的監(jiān)控項(xiàng)渲染出,并計(jì)算策略中的算式,最終生成治理規(guī)則。
評論
圖片
表情
