日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          "); //-->

          博客專欄

          EEPW首頁(yè) > 博客 > 服務(wù)網(wǎng)格自動(dòng)故障檢測(cè)及流量切換方案

          服務(wù)網(wǎng)格自動(dòng)故障檢測(cè)及流量切換方案

          發(fā)布人:天翼云開發(fā)者 時(shí)間:2024-06-17 來(lái)源:工程師 發(fā)布文章

          本文分享自天翼云開發(fā)者社區(qū)《服務(wù)網(wǎng)格自動(dòng)故障檢測(cè)及流量切換方案》,作者:s****n

          隨著云原生技術(shù)的發(fā)展,越來(lái)越多的應(yīng)用采用容器,微服務(wù)技術(shù),以istio為代表的服務(wù)網(wǎng)格就是其中最廣泛使用的一種。它在業(yè)務(wù)容器創(chuàng)建時(shí),自動(dòng)向業(yè)務(wù)服務(wù)的pod中注入proxy容器邊車,將流入和流出業(yè)務(wù)容器的網(wǎng)絡(luò)流量全部劫持到proxy容器,經(jīng)由proxy容器處理后再進(jìn)行下一步轉(zhuǎn)發(fā)。

          Proxy容器的處理規(guī)則通過(guò)istiod控制面下發(fā),主要分為流量控制、安全、可觀測(cè)性三大類。以可觀測(cè)性為例的大量規(guī)則都僅對(duì)流經(jīng)的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),監(jiān)控,鏈路追蹤等附加操作,不影響和改變業(yè)務(wù)本身的請(qǐng)求。但是當(dāng)proxy容器自身或其依賴的服務(wù)出現(xiàn)問(wèn)題時(shí),因其流量劫持動(dòng)作,往往會(huì)造成整個(gè)服務(wù)不可用。

          目前處理此類問(wèn)題的方法,以人工干預(yù)為主,當(dāng)服務(wù)不可用時(shí),通過(guò)告警通知運(yùn)維人員,運(yùn)維人員進(jìn)行現(xiàn)場(chǎng)問(wèn)題定位及處理。在有proxy邊車的場(chǎng)景下,若proxy問(wèn)題不能快速解決,運(yùn)維人員也經(jīng)常需要手動(dòng)去除proxy容器邊車,先恢復(fù)業(yè)務(wù)流量再做細(xì)致排查。如果能自動(dòng)化檢測(cè)proxy故障并進(jìn)行及時(shí)處理,會(huì)大大提供微服務(wù)框架下的服務(wù)可用性,減少故障帶來(lái)的損失及人力排查成本

          實(shí)現(xiàn)方案如下:

          整體結(jié)構(gòu): 

          image.png

           

          具體方法:

          1.在istio控制面加入故障檢測(cè)及流量阻斷模塊‘hot-switch’.

          2.在istio的邊車代理proxy內(nèi)部加入故障檢測(cè)命令,并與控制面故障檢查模塊通信,具體檢測(cè)命令例如:

          a.Watch相關(guān)pod的proxy容器狀態(tài),當(dāng)容器狀態(tài)為fail時(shí),表示proxy容易已經(jīng)不再存活;

          b.通過(guò)檢查proxy容器的15021 health端口,若返回值false,則proxy存活但不健康等等;

          3.自動(dòng)檢測(cè)確認(rèn)代理proxy問(wèn)題后,hot-switch通過(guò)進(jìn)入pod執(zhí)行iptables相關(guān)命令,停止proxy的流量劫持,將流量模式由proxy控制管理,改為直通業(yè)務(wù)容器

          a.在pod啟動(dòng)前,proxy進(jìn)行流量劫持的過(guò)程:首先運(yùn)行 Init 容器,Init 容器用于設(shè)置 iptables 將進(jìn)入 pod 的流量劫持到 Envoy sidecar proxy。

          具體命令類似 :Istio-iptables -p 15001 -z 15006 -u 1337 -m REDIRECT -i '*' -x "" -b * -d "15090,15201,15020"

          envoy sidecar proxy 啟動(dòng)之后從pilot獲得動(dòng)態(tài)的規(guī)則,來(lái)對(duì)進(jìn)出流量進(jìn)行控制,流量劫持后的鏈路如下

          image.png

          b.檢測(cè)確認(rèn)proxy問(wèn)題后,通過(guò)iptables的反向命令,清除流量劫持規(guī)則,可用命令為 istio-clean-iptables

          該方案無(wú)需人工參與,可自動(dòng)檢測(cè)問(wèn)題,快速處理,在網(wǎng)格邊車出現(xiàn)故障的時(shí)候也能通過(guò)一定程度的服務(wù)降級(jí),最大程度保障服務(wù)的基本可用性

          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。




          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉