Rainbond網(wǎng)絡(luò)治理插件ServiceMesh官方文檔說(shuō)明
ServiceMesh網(wǎng)絡(luò)治理插件
5.1.5版本后,Rainbond默認(rèn)提供了綜合網(wǎng)絡(luò)治理插件(同時(shí)處理入站和出站網(wǎng)絡(luò))和出站網(wǎng)絡(luò)治理插件兩個(gè)插件可用。 網(wǎng)絡(luò)治理插件工作在與業(yè)務(wù)容器同一個(gè)網(wǎng)絡(luò)空間之中,可以監(jiān)聽(tīng)一個(gè)分配端口,攔截入站的業(yè)務(wù)流量進(jìn)行限流、斷路等處理再將流量負(fù)載到業(yè)務(wù)服務(wù)的實(shí)際監(jiān)聽(tīng)端口之上。
同時(shí)也可以工作在出站方向,業(yè)務(wù)服務(wù)需要訪問(wèn)上游服務(wù)時(shí),通過(guò)訪問(wèn)本地出站治理插件監(jiān)聽(tīng)的端口,進(jìn)行流量路由、斷路、安全驗(yàn)證等處理,再將流量負(fù)載到尚有服務(wù)的主機(jī)之上。

對(duì)于插件的開(kāi)發(fā)者來(lái)說(shuō)需要關(guān)注如下兩點(diǎn):
- 入站治理插件需要根據(jù)系統(tǒng)分配的端口轉(zhuǎn)發(fā)規(guī)則進(jìn)行流量轉(zhuǎn)發(fā),比如UI服務(wù)本身是監(jiān)聽(tīng)的8080端口,這是不能改變的,但是我們可以改變從邊緣網(wǎng)關(guān)訪問(wèn)UI服務(wù)時(shí)的訪問(wèn)端口,因此Rainbond應(yīng)用運(yùn)行時(shí)為動(dòng)態(tài)為入站網(wǎng)絡(luò)治理插件生成監(jiān)聽(tīng)端口對(duì),比如下述配置:
"base_ports":[
{
"service_alias":"gre484d9",
"service_id":"9703228e9b42cde3e3a72f4826e484d9",
"port":8080,
"listen_port":65301,
"protocol":"http",
"options":{
"LIMIT_DOMAIN":"limit.common",
"OPEN_LIMIT":"NO"
}
}
]
插件運(yùn)行時(shí)會(huì)自動(dòng)注入DISCOVER_URL變量,通過(guò)此變量值的地址可以動(dòng)態(tài)獲取到如上的配置信息,入站網(wǎng)絡(luò)治理插件必須通過(guò)以上配置來(lái)監(jiān)聽(tīng)65301端口,將流量負(fù)載到127.0.0.1:8080端口。
- 出站治理插件不存在端口映射的問(wèn)題,出站治理插件根據(jù)下屬的動(dòng)態(tài)配置信息生成本地監(jiān)聽(tīng)負(fù)載到遠(yuǎn)程地址。
"base_services":[
{
"service_alias":"gre484d9",
"service_id":"9703228e9b42cde3e3a72f4826e484d9",
"depend_service_alias":"grcff92d",
"depend_service_id":"c81923991ff2428082a5d9d478cff92d",
"port":5000,
"protocol":"http",
"options":{
"BaseEjectionTimeMS":"30000",
"ConsecutiveErrors":"5",
"Domains":"todos",
"Headers":"",
"IntervalMS":"10",
"MaxActiveRetries":"5",
"MaxConnections":"10",
"MaxEjectionPercent":"20",
"MaxPendingRequests":"1024",
"MaxRequests":"1024",
"MaxRequestsPerConnection":"",
"PROXY":"YES",
"Prefix":"/",
"Weight":"80"
}
}
]
使用上述原生配置發(fā)現(xiàn)和服務(wù)發(fā)現(xiàn)來(lái)讓自定義插件工作,插件層面需要做較多的數(shù)據(jù)適配工作。Rainbond同時(shí)提供了基于envoy XDS(grpc)規(guī)范的動(dòng)態(tài)配置發(fā)現(xiàn)服務(wù),在插件中通過(guò)XDS_HOST_IP XDS_HOST_PORT兩個(gè)變量來(lái)獲取XDS服務(wù)的地址。
對(duì)用用戶來(lái)說(shuō)插件層的網(wǎng)絡(luò)治理對(duì)于業(yè)務(wù)層是完全透明的,所有有依賴關(guān)系的分布式服務(wù)類似于運(yùn)行同一臺(tái)主機(jī)一樣。
插件實(shí)踐?
綜合網(wǎng)絡(luò)治理插件?
默認(rèn)提供的綜合網(wǎng)絡(luò)治理插件基于envoy 1.9.0實(shí)現(xiàn),綜合網(wǎng)絡(luò)插件同時(shí)實(shí)現(xiàn)了入站方向的治理和出站方向的治理,提供以下配置參數(shù):
入站方向?
全局限流:
- OPEN_LIMIT 開(kāi)啟全局限流功能,全局限流功能依賴于第三方的限流服務(wù),比如 ratelimit , 當(dāng)前服務(wù)需要依賴ratelimit服務(wù),并設(shè)置RATE_LIMIT_SERVER_HOST和RATE_LIMIT_SERVER_PORT環(huán)境變量。
- LIMIT_DOMAIN 限流鏈路的domain key,與全局限流服務(wù)的配置對(duì)應(yīng)
斷路:
- MaxConnections 最大連接數(shù),Http協(xié)議時(shí)僅適用于http1.1,TCP協(xié)議時(shí)設(shè)置最大TCP連接數(shù)。
- MaxRequests 并發(fā)請(qǐng)求數(shù),適用于HTTP協(xié)議
- MaxPendingRequests 最大等待請(qǐng)求數(shù),適用于HTTP協(xié)議
- MaxActiveRetries 最大重試次數(shù),適用于HTTP協(xié)議
- MaxRequestsPerConnection 單連接最大請(qǐng)求數(shù),適用于HTTP協(xié)議,支持http1.1 和http2
出站方向?
動(dòng)態(tài)路由(HTTP協(xié)議):
Domains
請(qǐng)求域名,對(duì)于http協(xié)議的上游服務(wù),支持基于域名路由并復(fù)用80端口。
Prefix
請(qǐng)求Path路徑的前綴,基于前綴來(lái)路由不同的上游服務(wù)。
Headers
請(qǐng)求頭,基于請(qǐng)求頭的路由不同的上游服務(wù)。
Weight
權(quán)重,基于不同的權(quán)重來(lái)將流量分發(fā)到不同的上游服務(wù)。
斷路(面向連接):
- MaxConnections 最大連接數(shù),Http協(xié)議時(shí)僅適用于http1.1,TCP協(xié)議時(shí)設(shè)置最大TCP連接數(shù)。
- MaxRequests 并發(fā)請(qǐng)求數(shù),適用于HTTP協(xié)議
- MaxPendingRequests 最大等待請(qǐng)求數(shù),適用于HTTP協(xié)議
- MaxActiveRetries 最大重試次數(shù),適用于HTTP協(xié)議
- MaxRequestsPerConnection 單連接最大請(qǐng)求數(shù),適用于HTTP協(xié)議,支持http1.1 和http2
斷路(面向上游主機(jī)):
- ConsecutiveErrors 上游服務(wù)主機(jī)發(fā)生500錯(cuò)誤的被逐出的次數(shù)。
- BaseEjectionTimeMS 主機(jī)被逐出的基礎(chǔ)時(shí)間,及第一次被逐出的時(shí)間,如果被逐出n次,時(shí)間則為n*BaseEjectionTimeMS
- MaxEjectionPercent 被逐出主機(jī)的最大比例,如果設(shè)置為100則允許全量逐出。
- IntervalMS 分析主機(jī)是否應(yīng)該被逐出的時(shí)間間隔
- HealthyPanicThreshold 進(jìn)入恐慌模式的比例,默認(rèn)是50
出站網(wǎng)絡(luò)治理插件?
當(dāng)服務(wù)無(wú)需使用入站方向的治理功能時(shí),可只使用出站治理插件,配置參數(shù)與綜合治理插件的出站方向一致。
以上就是Rainbond網(wǎng)絡(luò)治理插件ServiceMesh官方文檔說(shuō)明的詳細(xì)內(nèi)容,更多關(guān)于Rainbond網(wǎng)絡(luò)治理插件ServiceMesh官方文檔的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
kubernetes(k8s)安裝metrics-server實(shí)現(xiàn)資源使用情況監(jiān)控方式詳解
這篇文章主要介紹了kubernetes(k8s)安裝metrics-server實(shí)現(xiàn)資源使用情況監(jiān)控,包括Metrics?Server下載方式,?k8s集群安裝部署metrics的問(wèn)題,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
CentOS?8.2?k8s?基礎(chǔ)環(huán)境配置
這篇文章主要介紹了CentOS?8.2?k8s?基礎(chǔ)環(huán)境配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10
Rainbond云原生快捷部署生產(chǎn)可用的Gitlab步驟詳解
這篇文章主要為大家介紹了Rainbond云原生快捷部署生產(chǎn)可用的Gitlab步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
關(guān)于CentOS7日志文件及journalctl日志查看方法
這篇文章主要介紹了關(guān)于CentOS7日志文件及journalctl日志查看方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
K8s實(shí)戰(zhàn)教程之容器和?Pods資源分配問(wèn)題
這篇文章主要介紹了K8s實(shí)戰(zhàn)教程之容器和?Pods資源分配,本篇文章通過(guò)配置集群中運(yùn)行的容器的?CPU?請(qǐng)求和限制,你可以有效利用集群上可用的?CPU?資源,通過(guò)將?Pod?CPU?請(qǐng)求保持在較低水平,可以使?Pod?更有機(jī)會(huì)被調(diào)度,需要的朋友可以參考下2022-07-07
Kubernetes?安裝flannel組件的過(guò)程(本地?kube-flannel.yml?文件)
文章介紹了如何在無(wú)法直接訪問(wèn)raw.githubusercontent.com的情況下,通過(guò)科學(xué)上網(wǎng)或下載kube-flannel.yml文件源碼來(lái)部署Flannel網(wǎng)絡(luò)插件的方法,感興趣的朋友一起看看吧2025-03-03
k8s實(shí)現(xiàn)身份認(rèn)證策略及過(guò)程解析
這篇文章主要為大家介紹了k8s實(shí)現(xiàn)身份認(rèn)證策略及過(guò)程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02

