日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

故障發生在2023春節前兩天,DeepFlow 團隊內部訪問工單系統出現問題,影響了所有北京區的同事,這篇文章將詳細記錄如何利用 DeepFlow 定位到對這次問題根因(網關 MSS 誤變更導致報文大于 MTU,大數據報文被丟棄)。

01|背景介紹

工單系統是 DeepFlow 團隊自主研發的一個跟蹤工單的內部工具,部署在阿里公有云的容器服務(ACK)中,工單系統通過 Ingress 的方式對外提供服務,辦公區與阿里云通過 VPN 連接,因此辦公區可以直接使用域名訪問工單系統。在《K8s 服務異常排障過程全解密》[1]文中對 K8s 訪問方式做過總結,工單系統是比較典型的??方式三??的訪問形式

 

可觀測性實戰:快速定位 K8s 應用故障-開源基礎軟件社區

集群外客戶端通過 Ingress 訪問集群內服務

  

下圖是通過 DeepFlow 自動繪制的訪問拓撲圖,可以看出北京和廣州辦公區都是通過 Ingress 的形式來訪問工單的入口服務 (ticket_web)。工單系統部署在基礎服務的容器集群上,此容器集群所有的 Node 上都已經部署了 deepflow-agent,因此可以自動采集所有 POD 及 Node 的網絡/系統/應用相關的數據,其中就包括阿里云 Nginx-ingress-controller 服務對應的 POD 以及應用的 POD

可觀測性實戰:快速定位 K8s 應用故障-開源基礎軟件社區

工單系統訪問拓撲

02|排障過程

下午 3:00 左右,陸續收到同事反饋,工單系統加載不出來,首先和工單系統研發明確,并未做過任何變更

可觀測性實戰:快速定位 K8s 應用故障-開源基礎軟件社區

故障現場

  

依據《K8s 服務異常排障過程全解密》[2]總結的思路

可觀測性實戰:快速定位 K8s 應用故障-開源基礎軟件社區

K8s 服務異常排障思路

 

查看了對應的 ??Node/POD?? 負載、狀態等都正常;登錄到 DeepFlow 平臺,調出了工單系統的訪問拓撲(拓撲上標紅部分表明有異常),從訪問拓撲可知??后端服務??黃金指標也都一切正常;又通過圖可看出來廣州辦公室對工單系統的訪問也并沒有異常(也同步與廣州同事確認,訪問一切正常),可推測 ??DNS/SVC?? 也應該都正常;進一步結合拓撲圖,可看出異常僅出現在北京辦公室與 nginx-ingress-controller 之間。

可觀測性實戰:快速定位 K8s 應用故障-開源基礎軟件社區

訪問拓撲

  

繼續分析標紅的路徑,查看對應的流日志,因為云下未部署采集器,因此僅支持查看的是 nginx-ingress-controller POD 以及 Node 的數據,發現了幾個問題:

  

  • 服務端異常都是因為傳輸-連接超時導致的
  • 服務端異常時,服務端 (nginx-ingress-controller) 回復的數據包,都是大包
  • 服務端異常時,服務端 (nginx-ingress-controller) 都未收到任何客戶端發送的數據

   

可觀測性實戰:快速定位 K8s 應用故障-開源基礎軟件社區

流日志

   

結合以上幾點發現,懷疑方向轉移到 MSS/MTU 上,立馬咨詢了 IT 同事,是不是變動過網關的 MSS/MTU 值,IT 同事否認了

可觀測性實戰:快速定位 K8s 應用故障-開源基礎軟件社區

聊天記錄-01

  

既然云下部分未變動過,轉而懷疑是不是 nginx-ingress-controller 動過 MSS/MTU,通過??時序圖??查看 MSS 是否有變化,通過故障前后對比可知:

  

  • 客戶端在故障前后發送的 MSS 確實發生過變動,從 1280 變為了 1380
  • 服務端 (nginx-ingress-controller) MSS 值一直未變動過

   

可觀測性實戰:快速定位 K8s 應用故障-開源基礎軟件社區

時序圖

  

通過數據可明確,云下一定變動過 MSS 值,拿著數據截圖又去找 IT 同事,最后 IT 同事一頓找,明確改了 MSS 值,將 MSS 值恢復后,工單系統恢復正常

  

可觀測性實戰:快速定位 K8s 應用故障-開源基礎軟件社區

聊天記錄-02

03|問題總結

問:MSS 值變動了,為什么影響了工單系統

  • 因為云下的 MTU 值設置的是 1420,如果 MSS 值為 1380 + 報文頭則會大于 MTU 值,因此大數據報文無法通過云下的網關,這就導致了 nginx-ingress-controller 收不到任何客戶端的回應(客戶端也未收到服務端的包)出現??傳輸-連接超時??的情況

    

問:MSS 值變動了,為什么其他內部系統未受到影響

  • 工單描述中包含了大量的圖片和文件,因此存在傳輸大數據的情況,而其他系統大部分都是文字傳輸,所以未受到明顯影響
  • 其他如 gitlab 存在圖片和大文字傳輸的服務,并未使用 Ingress 的方式對外提供訪問形式,而是利用阿里云 Terway 提供的內網直接訪問 Headless 服務后端 POD 的方式,在協商 MSS 值時,后端 POD 的值為 1360(nginx-ingress-controller 的值為 1460),因此最終協商的取 1360 + 報文頭則小于 MTU 值,所以也未受到明顯影響

04|什么是 DeepFlow

DeepFlow[3] 是一款開源的高度自動化的可觀測性平臺,是為云原生應用開發者建設可觀測性能力而量身打造的全棧、全鏈路、高性能數據引擎。DeepFlow 使用 eBPF、WASM、OpenTelemetry 等新技術,創新的實現了 AutoTracing、AutoMetrics、AutoTagging、SmartEncoding 等核心機制,幫助開發者提升埋點插碼的自動化水平,降低可觀測性平臺的運維復雜度。利用 DeepFlow 的可編程能力和開放接口,開發者可以快速將其融入到自己的可觀測性技術棧中。

GitHub 地址:https://github.com/deepflowys/deepflow

訪問 DeepFlow Demo[4],體驗高度自動化的可觀測性新時代。

參考資料

 

 

[1] 《K8s 服務異常排障過程全解密》: ??https://deepflow.yunshan.net/blog/020-k8s-service-exception-troubleshooting/??

 

[2] 《K8s 服務異常排障過程全解密》: ??https://deepflow.yunshan.net/blog/020-k8s-service-exception-troubleshooting/??

 

[3] DeepFlow: ??https://github.com/deepflowys/deepflow??

 

[4] DeepFlow Demo: ??https://deepflow.yunshan.net/docs/zh/install/overview/?

分享到:
標簽:K8s
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定