今天這篇文章來分享一下對於昨天所談的 UDP Race Condition 的解法,主要是針對 Kubernetes dns 問題去探討,
一個作法就是透過 nodelocaldns 這種不同的架構,該架構下會於每個節點上部屬一個 DNS Cache,所有該節點上的 Pod 都會透過 UDP 與該 DNS Cache 溝通。 而這段網路請求因為發生於同節點上,所以 kube-proxy 產生的規則不會介入,因此那些 iptables/ipvs/conntrack 就不會影響到,就不會產生上次所說的 bug.
接者,每個節點上的 DNS cache 會透過 TCP 的方式去跟 kube-dns 來詢問最後的答案,透過 TCP 重送的方式來減緩封包遺失造成的 timeout 問題
https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/
https://github.com/kubernetes/kubernetes/issues/56903
「tcp封包遺失」的推薦目錄:
- 關於tcp封包遺失 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於tcp封包遺失 在 week 8 - zxc22273146/TCP-IP Wiki 的評價
- 關於tcp封包遺失 在 適用于Azure Vm 的TCP/IP 效能微調 - GitHub 的評價
- 關於tcp封包遺失 在 [計網]傳送層 - r809's Notes 的評價
- 關於tcp封包遺失 在 [問題] PING 168.95.1.1會遺失封包..正常嗎? - 看板Broad_Band 的評價
- 關於tcp封包遺失 在 網路規劃與管理技術:TCP 封包格式- YouTube 的評價
- 關於tcp封包遺失 在 中華電信封包遺失影響使用請求協助 - Mobile01 的評價
tcp封包遺失 在 適用于Azure Vm 的TCP/IP 效能微調 - GitHub 的推薦與評價
TCP /IP 堆疊會將封包分割成較小的片段(片段),以符合介面的MTU。 ... 如果封包遺失,TCP 連線的最大輸送量將會減少,而寄件者會重新傳輸其已傳送的資料。 ... <看更多>
tcp封包遺失 在 [計網]傳送層 - r809's Notes 的推薦與評價
TCP. congestion control; Flow control; connection setup ... Bare Bones,捨棄無法接受的封包,不做handshaking, 因此速度快,可容忍資料遺失應用 ... ... <看更多>
tcp封包遺失 在 week 8 - zxc22273146/TCP-IP Wiki 的推薦與評價
如重複收三次Receiver的ACK=2,那Sender會馬上送序號為2的封包。 TCP傳送端根據它觀察到的網路壅塞程度來設定CongestionWindow的值. TCP將"封包遺失"視為壅塞訊號,而 ... ... <看更多>