[英]Large Delay with ECS service discovery DNS updates
我試圖找出為什么 AWS DNS 服務器(10.0.0.2 和 169.254.169.253)需要很長時間才能為我的 ECS 任務返回正確的 IP 地址。
我目前的設置如下:
首次創建 EC2 實例並安裝 nginx 時,一切都與指向 10.0.0.2 的解析器一起工作
但是,在殺死 ECS 任務時:
dig @10.0.0.2 deepstream.dev.private
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.2 <<>> @10.0.0.2 deepstream.dev.private
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 10878
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;deepstream.dev.private. IN A
;; Query time: 0 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Tue Apr 14 03:33:39 UTC 2020
;; MSG SIZE rcvd: 51
這表明沒有答案
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.amzn2.0.2 <<>> @10.0.0.2 deepstream.dev.private
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15576
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;deepstream.dev.private. IN A
;; ANSWER SECTION:
deepstream.dev.private. 0 IN A 10.0.2.214
;; Query time: 1 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Tue Apr 14 03:35:00 UTC 2020
;; MSG SIZE rcvd: 56
所以總結一下測試場景:
跑了多次,似乎一直是五分鍾,感覺就像某個地方的緩存。
不能指望在崩潰或部署后需要 5 分鍾才能引用新的 ECS 實例,這將是不可接受的停機時間。
這似乎與 ECS 用於提供服務發現的雲 Map 命名空間中的負 DNS 緩存有關。 在 2020 年 9 月 14 日之前,默認(和固定)負緩存 TTL(換句話說,命名空間的 SOA 記錄的 TTL)對於僅具有 VPC 解析的命名空間為 300 秒(您的 5 分鍾值),對於僅具有 VPC 解析的命名空間為 900 秒具有公共 DNS 分辨率的命名空間。
根據鏈接的 GitHub 問題,新創建的命名空間的默認值現在分別為 15 秒和 60 秒。
我也遇到過這個問題,並且很難追查原因,因為只有當可用任務的數量一直下降到 0 時才會發生這種情況,從而導致緩存的 NXDOMAIN 響應。
至少在撰寫本文時,無法手動修改此值(盡管根據 GitHub 問題正在進行中),因此唯一的解決方案是重新創建命名空間以獲得新的較低默認值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.