您好,登錄后才能下訂單哦!
本篇文章為大家展示了k8s pod dns的問題記錄是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
突然收到,反饋,一個服務短信驗證碼,驗證很慢。第一反應是網絡問題。
默認pod生成的dns 解析配置文件是如下:
由于pod 使用的是,alpine:latest
采用 apk add --update tcpdump 安裝
抓包查看dns 解析過程,抓取所有網絡包: tcpdump -nnvXSs 0 -i any
以下摘自網絡:
/etc/resolv.conf的關鍵字主要有四個,分別是:
nameserver #定義DNS服務器的IP地址其中最終要的就是nameserver,其他都是可選的,可以配置多個,在查詢時,按照nameserver在本文中的次序進行,當第一個dns沒有反應時,才查詢第二個
domain #定義本地域名
聲明主機的域名。很多程序用到它,如郵件體系;當為沒有域名的主機進行DNS查詢時,也要用到。如果沒有域名,主機名將被使用,刪除所有在第一個點( . )前面的內容。
search #定義域名的搜索列表
它的多個參數指明域名查詢次序。當要查詢沒有域名的主機,主機將在由search聲明的域中分離查找。domain和search不能共存;如果同時存在,后面呈現的將會被使用。
sortlist #對返回的域名進行排序
允許將得到域名進行特定的排序。它的參數為網絡/掩碼對,許可任意的排列次序。
options
以下選項允許你對某些解析變量進行修改,語法類似:options xxx ...,其中xxx可以是如下選項:
debug sets RES_DEBUG in _res.options.
ndots:n
sets a threshold for the number of dots which must appear in a name given to res_query(3) before an initial absolute query will be made. The default for n is 1, meaning that if there are any dots in a name, the name will be tried first as an absolute name before any search list elements are appended to it. The value for this option is silently capped to 15. 這一段看的腦殘了....
timeout:n
解析器在查詢遠程name server時的超時時間,默認是5秒。
attempts:n
設置解析器在查詢name server失敗幾次后放棄該name server,默認上限是5。
rotate
這會導致在查詢時循環選擇nameserver中列出的服務器,從而負載均衡所有的nameserver,而不是讓所有的客戶端嘗試第一個列出的服務器
no-check-names
禁止現代BIND檢查輸入的主機名和電子郵件中的無效字符
edns0 (since glibc 2.6)
使支持RFC 2671Z中的dns擴展
single-request (since glibc 2.10)
自從版本2.9之后,glibc在執行查找IPV4和IPV6時是并行執行的,但是一些DNS服務器不能很好的處理這種情況,并顯示請求超時,次選項禁止glibc的并行查找,從而執行順序查找
domain和search關鍵字是互相排斥的,如果同時設置了這兩個關鍵字,則最后設置的生效。resolv.conf文件中的search關鍵字的值可以被LOCALDOMAIN環境變量鎖改變, options關鍵字則可以被環境變量RES_OPTIONS所改變。
現象解析:
關鍵字`search'與`options ndots:${n}'配合工作,指示resolver在解析域名的時候是否要在用戶傳入的名稱后面添加域名信息,以及添加什么信息。詳細規則如下:
1. 如果用戶傳入的域名是`絕對'域名,即域名以`.'結尾(如上面的
www.baidu
.),則查詢的僅是該域名。
2. 如果傳入的域名是`相對'域名,且該域名中包含的`.'的數目大于或等于option ndots:${n}命令指定的數,則查詢的僅是該域名。
3. 如果不是絕對域名,且傳入的域名包含的`.'的數目少于option ndots:${n}命令指定的數,則resolver會依次往傳入的域名后追加search列表中的后綴,直到解析出ip地址,或者解析完列表中所有后綴才會停止。
搜索列表利弊?
由上分析可見,如果search列表較長并且查詢了不存在的域名的話,網絡上的dns查詢報文量會急劇增加,并且可能引發dos攻擊。但是搜索列表的一個好處是對于一些常用的域,我們只要輸入主機名就可以了,不用每次都輸入后面的域名,這在有些時候是挺簡潔的(比如在內網中經常要訪問不同的機器,search列表便可省很多事)
上述內容就是k8s pod dns的問題記錄是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。