問題:k8s發生pods遷移,prometheus重啓,重啓過程中CPU和內存同時瘋狂增加,最後報pods網絡問題。
錯誤分析:
prometheus TSDB寫錯誤,所以重啓會瘋狂攫取CPU內存資源,最後也無法讀取TSDB數據,最終把節點系統資源耗盡,影響別的服務。
以至於在此錯誤理解下,在prometheus部署服務中加了limits選項,限制CPU爲3.memory爲20Gi.本意是爲了保護系統資源,其實是進入了一個誤區,prometheus重新組合需要的系統資源不夠,反而造成prometheus無法啓動。
正確理解:
protheus重啓需要組合大量的TSDB資源,CPU會瞬間增加到13核左右,並需要大概50G 內存資源。此刻組合DB資源的過程中,kubelet會反饋pods網絡連接問題,實際上是假象,prometheus已經提供服務了。
解決:
- prometheus部署到CPU和內存比較大的節點上。
- prometheus limits資源要給大點limits限制cpu:20 ,memory:100Gi
- 遇到pods報網絡錯誤可忽略,稍等幾分鐘會恢復正常。