kube-dns配置注意及問題排查

kube-dns配置注意及問題排查

基礎(chǔ)的k8s集群可以通過flannel的網(wǎng)絡(luò)ip地址工作烈涮,但要擴(kuò)展addons的service,都要通過域名來連通,因為各個鏡像的配置文件中是不可能把ip寫死在文件中的欲低,但域名是可以不變的。因此畜晰,一個k8s集群中kube-dns的配置是必要的砾莱。

下面介紹配置kube-dns,需要注意的地方凄鼻,驗證及問題排查過程腊瑟。

在/etc/resolv.conf文件中配置短域補(bǔ)齊,比如cluster.local野宜,這里必須要與skydns-rc.yaml.sed文件中的domain參數(shù)一致扫步。

1、看kube-dns的pod內(nèi)3個容器是否全部running

kubectl get pods --namespace=kube-system -l k8s-app=kube-dns

2匈子、如果全部running河胎,看日志是否有異常

可以通過命令,也可以通過kube dashboard虎敦。

3游岳、若日志無明顯異常,驗證healthz是否能夠解析完整域和短域

完整域

kubectl exec -n kube-system -ti kube-dns-v20-xxxxx -c healthz -- nslookup kube-dns.kube-system.svc.cluster.local

短域

kubectl exec -n kube-system -ti kube-dns-v20-xxxxx -c healthz -- nslookup kube-dns

4其徙、如果完整域可以解析胚迫,短域不可以解析

查看/etc/resolv.conf文件,是否補(bǔ)齊cluster.local

kubectl exec -n kube-system -ti kube-dns-v20-xxxxx -c healthz cat /etc/resolv.conf

一般文件內(nèi)容為:

search default.svc.cluster.local svc.cluster.local cluster.local

nameserver 172.17.26.52 #kube-dns service clusterIp

options ndots:5

這個是從宿主機(jī)的/etc/resolv.conf文件中繼承的唾那。

這些都可以通過官網(wǎng)doc可以查看到Troubleshooting Tips

5访锻、在node上的修改

修改/etc/kubernetes/kubelet文件:

KUBELET_ARGS="--cluster-dns=172.17.26.52 --cluster-domain=cluster.local --log_dir=/var/log/kubernetes"

修改之后要重啟kubelet

systemctl restart kubelet

修改宿主機(jī)的/etc/resolv.conf:

search default.svc.cluster.local svc.cluster.local cluster.local

nameserver 172.17.26.52 #kube-dns service clusterIp

5、遇到的問題闹获,這里也比較關(guān)鍵

<1>期犬、手動指定的clusterIp不能解析

在實際操作中,由于kube-dns的特殊性避诽,需要手動指定kube-dns service的clusterIp(在各種“教程”中全都在說手動指定龟虎,他們竟然都沒遇到問題),然后創(chuàng)建svc沙庐,結(jié)果使用healthz的nslookup驗證時卻不能解析鲤妥。

幸好suzhen經(jīng)驗豐富,嘗試把clusterIp注釋掉拱雏,讓k8s自動為kube-dns分配一個ip棉安。然后再手動指定這個ip,重新創(chuàng)建svc铸抑〈谷或者直接拿這個ip用就可以了。

按道理說指定的clusterIp在k8s限定的范圍之內(nèi)都是可以的羡滑,但是不知道隨機(jī)指定了一個ip就不行菇爪。。柒昏。就這么不巧凳宙。。职祷。具體原因目前還不清楚氏涩。

<2>、命令可解析有梆,healthz自帶的參數(shù)不能解析

這個問題也是非常詭異的是尖,把healthz的cmd參數(shù)單獨拿出來用命令解析可以,但是它自己卻不能解析泥耀,命令一模一樣饺汹,完全沒道理。痰催。兜辞。

命令:

kubectl exec -n kube-system -ti kube-dns-v20-xxxxx -c healthz -- nslookup kubernetes.default.svc.cluster.local 127.0.0.1

日志:

can't resolve "kubernetes.default.svc.cluster.local"

healthz是負(fù)責(zé)dns的健康的,根據(jù)創(chuàng)建rc時的yaml文件夸溶,healthz容器定時向kubedns容器查詢

kubernetes.default.svc.cluster.local 127.0.0.1及kubernetes.default.svc.cluster.lcoal 127.0.0.1:10053,

即(因為這個奇怪的問題把原args都注釋了逸吵,暫時這樣解決了):

- name: healthz

image: gcr.io/google_containers/exechealthz-amd64:1.2

...

args:

#- --cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null

- --cmd=ping 127.0.0.1

#- --url=/healthz-dnsmasq

#- --cmd=nslookup kubernetes.default.svc.cluster.lcoal 127.0.0.1:10053 >/dev/null

#- --url=/healthz-kubedns

#- --port=8080

#- --quiet

如果一段時間healthz一直解析不過,就會發(fā)送一個terminated信號給kubedns缝裁,這時即使kubedns本身正常(可以通過kubedns直接執(zhí)行nslookup進(jìn)行解析驗證)扫皱,也會自毀,此時該pod就會變的不正常捷绑。

<3>韩脑、BTW

官網(wǎng)太簡單,網(wǎng)上教程太雜胎食,經(jīng)驗很重要扰才,謹(jǐn)慎。

附skydns-rc.yaml.sed修改的地方:

spec:

#nodeName: k8s-nod5

containers:

- name: kubedns

image: gcr.io/google_containers/kubedns-amd64:1.8

...

args:

# command = "/kube-dns"

- --domain=cluster.local.

- --dns-port=10053

- --kube-master-url=http://100.101.69.252:8080

...

- name: healthz

image: gcr.io/google_containers/exechealthz-amd64:1.2

...

args:

#- --cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null

- --cmd=ping 127.0.0.1

#- --url=/healthz-dnsmasq

#- --cmd=nslookup kubernetes.default.svc.cluster.lcoal 127.0.0.1:10053 >/dev/null

#- --url=/healthz-kubedns

#- --port=8080

#- --quiet

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末厕怜,一起剝皮案震驚了整個濱河市衩匣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌粥航,老刑警劉巖琅捏,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異递雀,居然都是意外死亡柄延,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搜吧,“玉大人市俊,你說我怎么就攤上這事÷四危” “怎么了摆昧?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蜒程。 經(jīng)常有香客問我绅你,道長,這世上最難降的妖魔是什么昭躺? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任忌锯,我火速辦了婚禮,結(jié)果婚禮上领炫,老公的妹妹穿的比我還像新娘偶垮。我一直安慰自己,他們只是感情好驹吮,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布针史。 她就那樣靜靜地躺著,像睡著了一般碟狞。 火紅的嫁衣襯著肌膚如雪啄枕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天族沃,我揣著相機(jī)與錄音频祝,去河邊找鬼。 笑死脆淹,一個胖子當(dāng)著我的面吹牛常空,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盖溺,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼漓糙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了烘嘱?” 一聲冷哼從身側(cè)響起昆禽,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蝇庭,沒想到半個月后醉鳖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡哮内,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年盗棵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡纹因,死狀恐怖喷屋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辐怕,我是刑警寧澤逼蒙,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站寄疏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏僵井。R本人自食惡果不足惜陕截,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望批什。 院中可真熱鬧农曲,春花似錦、人聲如沸驻债。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽合呐。三九已至暮的,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間淌实,已是汗流浹背冻辩。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留拆祈,地道東北人恨闪。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像放坏,于是被迫代替她去往敵國和親咙咽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容