關鍵字: GKE, conntrack, HAProxy
影響: 網路重度服務遇見大量錯誤
今天這個案例的重點非常簡單,Kubernetes(GKE) 會根據每個節點上面的記憶體大小去設定相關的 conntrack_max 的數值。因此對於一個小記憶體的節點上運行一個有網路重度的服務,非常容易踩到 conntrack_max 的上限最後導致連線 reset 以及 timeout.
conntrack 是 Linux Kernel 非常重要的網路功能,透過 conntrack (connection tracking) 可以實現非常多的功能,kernel 會去追蹤與監控系統上看到的所有連線,每個連線都包含兩個方向的封包。
根據作者的測試,於 GKE 觀察的結果是大概每 MB 可提升5條 connection的上限。
團隊的應用程式是一個類似於 proxy 的角色,這個應用程式大概每秒要處理一萬個以上的 rquest,而這個現象是當團隊針對整個架構進行一番改正後,開始注意到有網路連線出現問題。
針對這個問題作者提出了幾個解決思路
1. 針對網路連線非常重度的應用程式,將其給配置到比較強力效能的機器人,才可以獲得更高數值的 conntrack_max
2. 透過 init-container/daemonset 等方式,手動執行 sysctl 去修改節點上的 conntrack_max
3. 透過 Prometheus 去監控系統上目前所有節點 conntrack 使用的數量,藉此提醒團隊這個數值也很重要,需要監控
4. 1.15 以後的 kubernetes 有一些小的修復可以幫忙移除一些不合法的 conntrack,勁量讓 conntrack pool 留給有用的連線
https://deploy.live/blog/kubernetes-networking-problems-due-to-the-conntrack/
haproxy架構 在 使用HAProxy 實現負載平衡 - Ellis's Blog 的推薦與評價
目前還使有很多大型網站都是使用典型的負載平衡架構,由一台Switch 或Proxy 接收來自網際網路的連線請求,然後分散給後面提供服務的伺服器叢集,藉此 ... ... <看更多>
haproxy架構 在 HAProxy https-在PTT/IG/網紅社群上服務品牌流行穿搭 的推薦與評價
續上篇[HAProxy] 建立WordPress 負載平衡Load balancing 架構筆記把憑證處理... frontend frontend-https bind :443 ssl crt /etc/haproxy/ssl/ bind ... ... <看更多>
haproxy架構 在 expert_readed_books/haproxy架构指南(中文翻译版).pdf at ... 的推薦與評價
2021年最新总结,推荐工程师合适读本,计算机科学,软件技术,创业,思想类,数学类,人物传记书籍. Contribute to 0voice/expert_readed_books development by ... ... <看更多>