關鍵字: conntrack, DNS, CoreDNS-autoscaler
影響: 部分正式生產環境崩壞
整個問題是簡單來說就是正式叢集再不預期的情況下,發生了 DNS 的問題,導致內部服務大概有 15000 筆 query 失敗。造成錯誤的原因是因為 kube-proxy 沒有順利地去移除過期的 conntrack,導致有些 DNS封包被導向到一個已經不存在的Pod。
這個問題的發生前提是,因為某些情境的發生,譬如系統負載過低, CoreDNS-autoscaler 就被觸發起來,將運行的 Pod 數量從三個降為兩個。所以系統上能夠處理 DNS 的Pod剩下兩個,但是如果有節點上的 conntrack 沒有順利清理乾淨,導致所有的封包都被導向那個被刪除的 CoreDNS,問題就這樣發生了。
詳細的過程跟一些學習重點可以參考原文
註:想要掌握 kubernetes 網路,對於 conntrack 的認識絕對不可以少,有太多太多的問題都跟 conntrack 有關,從 race condition, max 等眾多選項都牽扯所有運行的封包。有時間的話一定要好好的複習一下 conntrack 的概念
https://medium.com/preply-engineering/dns-postmortem-e169efd45afd
dns query 在 iThome Facebook 的最讚貼文
IBM Security團隊利用免費DNS平臺Quad9的網域查詢流量曲線(Query traffic curve)資料,來進行分群,並從中找出未知的惡意網域群。
https://www.ithome.com.tw/news/139356
dns query 在 iThome Facebook 的最佳貼文
IBM Security團隊利用免費DNS平臺Quad9的網域查詢流量曲線(Query traffic curve)資料,來進行分群,並從中找出未知的惡意網域。
dns query 在 How to perform DNS query on iOS - Stack Overflow 的推薦與評價
... <看更多>
相關內容