αžšαž€αž˜αžΎαž› DNS αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes

αž…αŸ†αžŽαžΆαŸ†αŸ” αž”αž€αž”αŸ’αžšαŸ‚αŸ– αž”αž‰αŸ’αž αžΆ DNS αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αž¬αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αž”αžΆαžŸαŸ‹αž‡αžΆαž„αž“αŸαŸ‡ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš ndotsαž˜αžΆαž“αž€αžΆαžšαž–αŸαž‰αž“αž·αž™αž˜αž‚αž½αžšαž±αŸ’αž™αž—αŸ’αž‰αžΆαž€αŸ‹αž•αŸ’αž’αžΎαž› αž“αž·αž„αžšαž½αž…αž‘αŸ…αž αžΎαž™ αž˜αž·αž“αž˜αŸ‚αž“αžŠαŸ†αž”αžΌαž„αž‘αŸαŸ” Π³ΠΎΠ΄. αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαžΆαŸ†αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž›αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸαŸ‡ αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’αžšαž”αžŸαŸ‹αžαŸ’αž›αž½αž“αžŠαŸ‚αž›αž‡αžΆαžœαž·αžŸαŸ’αžœαž€αžš DevOps αž˜αž€αž–αžΈαž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžˆαŸ’αž˜αž½αž‰αž€αžŽαŸ’αžαžΆαž›αžŠαŸαž’αŸ†αž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž‘αŸαžŸαž₯αžŽαŸ’αžŒαžΆ αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž™αŸ‰αžΆαž„αžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αžŸαž„αŸ’αžαŸαž”αž’αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž αž€αžΆαžšαžΈαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš Kubernetes αžŠαžΎαž˜αŸ’αž”αžΈαžŠαžΉαž„αŸ”

αžšαž€αž˜αžΎαž› DNS αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž…αž˜αŸ’αž”αž„αž˜αž½αž™αž“αŸƒαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž›αžΎ Kubernetes αž‚αžΊαž€αžΆαžšαžšαž€αžƒαžΎαž‰αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αž˜αžΆαž“αžαŸ’αž“αŸαžšαŸ” αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αžšαž½αž›αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„ αžŠαŸ„αž™αžŸαžΆαžšαž‚αŸ†αž“αž·αžαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ (αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜) αžŠαŸ‚αž›αž‡αžΆ IP αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ pod IP αŸ” αž§αž‘αžΆαž αžšαžŽαŸαž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ vanilla αž˜αžΆαž“αž”αŸ†αžŽαž„αž…αž„αŸ‹αž‘αžΆαž€αŸ‹αž‘αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ chocolateαžœαžΆαž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎ IP αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ chocolate. αžŸαŸ†αžŽαž½αžšαž€αžΎαžαž‘αžΎαž„: αžαžΎαž’αŸ’αž“αž€αžŽαžΆαž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡αž“αžΉαž„αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαŸ†αžŽαžΎ DNS αž‘αŸ… chocolate αž αžΎαž™αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ?

αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžˆαŸ’αž˜αŸ„αŸ‡ DNS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž›αžΎαž…αž„αŸ’αž€αŸ„αž˜ Kubernetes αžŠαŸ„αž™αž”αŸ’αžšαžΎ CoreDNS. Kubelet αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ pod αž‡αžΆαž˜αž½αž™ CoreDNS αž‡αžΆ nameserver αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš /etc/resolv.conf pods αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αžαŸ’αž›αžΉαž˜αžŸαžΆαžš /etc/resolv.conf pod αžŽαžΆαž˜αž½αž™ αžœαžΆαž“αžΉαž„αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

search hello.svc.cluster.local svc.cluster.local cluster.local
nameserver 10.152.183.10
options ndots:5

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαŸ„αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ DNS αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž‡αžΌαž“αžŸαŸ†αžŽαžΎαž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ DNS αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš resolv.conf αž˜αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

  • nameserverαŸ– αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αžŸαŸ†αžŽαžΎ DNS αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„ αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ CoreDNS αŸ”
  • αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αŸ– αž€αŸ†αžŽαžαŸ‹αž•αŸ’αž›αžΌαžœαžŸαŸ’αžœαŸ‚αž„αžšαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ‚αž“αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αŸ” αžœαžΆαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžŽαžΆαžŸαŸ‹αŸ” google.com ឬ mrkaran.dev αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆ FQDN (αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž“αžŠαŸ‚αž›αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž–αŸαž‰αž›αŸαž‰) αž™αŸ„αž„αžαžΆαž˜αž’αž“αž»αžŸαž‰αŸ’αž‰αžΆαžŸαŸ’αžŠαž„αŸ‹αžŠαžΆαžšαžŠαŸ‚αž›αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ DNS αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž’αŸ’αžœαžΎαžαžΆαž˜ αž˜αžΆαž“αžαŸ‚αž…αŸ†αžŽαž»αž…αžŠαŸ‚αž›αž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αž…αŸ†αž“αž»αž… "." αžŠαŸ‚αž›αžαŸ†αžŽαžΆαž„αž±αŸ’αž™αžαŸ†αž”αž“αŸ‹αž«αžŸαž‚αž›αŸ‹ αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž–αŸαž‰αž›αŸαž‰ (FDQN) αžŠαŸ‚αž“αŸ” αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαŸ’αž›αŸ‡αž’αžΆαž…αž”αž“αŸ’αžαŸ‚αž˜αž…αŸ†αžŽαž»αž…αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ mrkaran.dev. αž‚αžΊαž‡αžΆαžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž“αžŠαŸ‚αž›αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž–αŸαž‰αž›αŸαž‰ (FQDN) αž“αž·αž„ mrkaran.dev - αž‘αŸ;
  • αž…αŸ†αžŽαž»αž…αŸ– αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž”αŸ†αž•αž»αž (αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž‚αžΊαž’αŸ†αž–αžΈαžœαžΆ) αŸ” ndots αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž…αŸ†αž“αž½αž“αž…αŸ†αžŽαž»αž…αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸ…αž€αŸ’αž“αž»αž„αžˆαŸ’αž˜αŸ„αŸ‡αžŸαŸ†αžŽαžΎ αž˜αž»αž“αž–αŸαž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž‡αžΆαžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž“ "αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹" αŸ” αž™αžΎαž„β€‹αž“αžΉαž„β€‹αž“αž·αž™αžΆαž™β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž‘αŸ€αžβ€‹αž’αŸ†αž–αžΈβ€‹αž”αž‰αŸ’αž αžΆβ€‹αž“αŸαŸ‡β€‹αž–αŸαž›β€‹αž€αŸ’αžšαŸ„αž™β€‹αž–αŸαž›β€‹αž™αžΎαž„β€‹αžœαž·αž—αžΆαž‚β€‹αž›αŸ†αžŠαžΆαž”αŸ‹β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αžšαž€β€‹αž˜αžΎαž› DNSαŸ”

αžšαž€αž˜αžΎαž› DNS αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes

αžαŸ„αŸ‡αž˜αžΎαž›αžαžΆαžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž“αŸ…αž–αŸαž›αž™αžΎαž„αžŸαž½αžš mrkaran.dev αž“αŸ…αž€αŸ’αž“αž»αž„αž•αžαŸˆ

$ nslookup mrkaran.dev
Server: 10.152.183.10
Address: 10.152.183.10#53

Non-authoritative answer:
Name: mrkaran.dev
Address: 157.230.35.153
Name: mrkaran.dev
Address: 2400:6180:0:d1::519:6001

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸαž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž€αž˜αŸ’αžšαž·αžαž“αŸƒαž€αžΆαžšαž€αžαŸ‹αžαŸ’αžšαžΆ CoreDNS αž‘αŸ… all (αžŠαŸ‚αž›β€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αžœαžΆβ€‹αž‡αžΆβ€‹αž–αžΆαž€αŸ’αž™β€‹αžŸαŸ†αžŠαžΈβ€‹) αŸ” αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžšαž”αžŸαŸ‹αž•αž coredns:

[INFO] 10.1.28.1:35998 - 11131 "A IN mrkaran.dev.hello.svc.cluster.local. udp 53 false 512" NXDOMAIN qr,aa,rd 146 0.000263728s
[INFO] 10.1.28.1:34040 - 36853 "A IN mrkaran.dev.svc.cluster.local. udp 47 false 512" NXDOMAIN qr,aa,rd 140 0.000214201s
[INFO] 10.1.28.1:33468 - 29482 "A IN mrkaran.dev.cluster.local. udp 43 false 512" NXDOMAIN qr,aa,rd 136 0.000156107s
[INFO] 10.1.28.1:58471 - 45814 "A IN mrkaran.dev. udp 29 false 512" NOERROR qr,rd,ra 56 0.110263459s
[INFO] 10.1.28.1:54800 - 2463 "AAAA IN mrkaran.dev. udp 29 false 512" NOERROR qr,rd,ra 68 0.145091744s

αž—αžœαŸ” αžšαžΏαž„αž–αžΈαžšαžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αžΆαž‰αž…αŸ†αžŽαžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ–

  • αžŸαŸ†αžŽαžΎαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž‚αŸ’αžšαž”αŸ‹αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž“αŸƒαž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€ αžšαž αžΌαžαžŠαž›αŸ‹αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž˜αžΆαž“αž›αŸαžαž€αžΌαžŠ NOERROR (αž’αžαž·αžαž·αž‡αž“ DNS αž™αž›αŸ‹αž–αžΈαžœαžΆ αž αžΎαž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆαž‡αžΆαž›αž‘αŸ’αž’αž•αž›)αŸ” NXDOMAIN αž˜αžΆαž“β€‹αž“αŸαž™β€‹αžαžΆβ€‹αž˜αž·αž“β€‹αž˜αžΆαž“β€‹αž€αŸ†αžŽαžαŸ‹β€‹αžαŸ’αžšαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžšαž€β€‹αžƒαžΎαž‰β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αžˆαŸ’αž˜αŸ„αŸ‡β€‹αžŠαŸ‚αž“β€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž•αŸ’αžαž›αŸ‹β€‹αž±αŸ’αž™. αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ mrkaran.dev αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžˆαŸ’αž˜αŸ„αŸ‡ FQDN (αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜ ndots=5) αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž˜αžΎαž›αž•αŸ’αž›αžΌαžœαžŸαŸ’αžœαŸ‚αž„αžšαž€ αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αž›αŸ†αžŠαžΆαž”αŸ‹αž“αŸƒαžŸαŸ†αžŽαžΎαŸ”
  • ថត А ΠΈ АААА αž˜αž€αžŠαž›αŸ‹αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαŸ” αž€αžΆαžšαž–αž·αžαž‚αžΊαžαžΆαž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ†αžαŸ‚αž˜αŸ’αžαž„αž‚αžαŸ‹ /etc/resolv.conf αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαžΆαž˜αžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αž·αž’αžΈαž€αžΆαžš IPv4 αž“αž·αž„ IPv6 αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ„αŸ‡αž”αž„αŸ‹αž₯αžšαž·αž™αžΆαž”αžαž“αŸαŸ‡αžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αž‡αž˜αŸ’αžšαžΎαžŸ single-request Π² resolv.conf.

αž…αŸ†αžŽαžΆαŸ†: glibc αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎαž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αž›αŸ†αžŠαŸ„αž™ αž“αž·αž„ musl - αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ Alpine αž‚αž½αžšαžαŸ‚αž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αŸ”

αž–αž·αžŸαŸ„αž’αž“αŸαž‡αžΆαž˜αž½αž™ ndots

αžαŸ„αŸ‡αžŸαžΆαž€αž›αŸ’αž”αž„αž”αž“αŸ’αžαž·αž…αž‘αŸ€αžαž‡αžΆαž˜αž½αž™ ndots αž αžΎαž™αžŸαžΌαž˜αž˜αžΎαž›αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž“αŸαŸ‡αž˜αžΆαž“αž₯αžšαž·αž™αžΆαž”αž‘αŸ” αž‚αŸ†αž“αž·αžαž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αŸ– ndots αž€αŸ†αžŽαžαŸ‹αžαžΆαžαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ DNS αž“αžΉαž„αž…αžΆαžαŸ‹αž‘αž»αž€αžŠαŸ‚αž“αž‡αžΆαžŠαžΆαž…αŸ‹αžαžΆαž αž¬αž‘αžΆαž€αŸ‹αž‘αž„αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ DNS αžšαž”αžŸαŸ‹ Google αžŸαžΆαž˜αž‰αŸ’αž‰ αžαžΎαžœαžΆαžŠαžΉαž„αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆαžαžΆαžαžΎαžŠαŸ‚αž“αž“αŸαŸ‡αž‚αžΊαžŠαžΆαž…αŸ‹αžαžΆαž? αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹ ndots αžŸαŸ’αž˜αžΎαž“αžΉαž„ 1 αž’αžαž·αžαž·αž‡αž“αž“αžΉαž„αž“αž·αž™αžΆαž™αžαžΆ "ធូ! google αž˜αž·αž“αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αžαŸ‚αž˜αž½αž™; αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆαžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž”αž‰αŸ’αž‡αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ”" αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŸαž½αžš google.comαž”αž‰αŸ’αž‡αžΈαž”αž…αŸ’αž…αŸαž™αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž˜αž·αž“αž’αžΎαž–αžΎαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†αžαŸ’αžšαžΌαžœαž“αžΉαž„αž€αž˜αŸ’αžšαž·αž ndots (αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž˜αž½αž™)αŸ”

αž…αžΌαžšβ€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αž”αŸ’αžšαžΆαž€αžŠβ€‹αžαžΆβ€‹αž“αŸαŸ‡β€‹:

$ cat /etc/resolv.conf
options ndots:1
$ nslookup mrkaran
Server: 10.152.183.10
Address: 10.152.183.10#53

** server can't find mrkaran: NXDOMAIN

αž€αŸ†αžŽαžαŸ‹αž αŸαžαž» CoreDNSαŸ–

[INFO] 10.1.28.1:52495 - 2606 "A IN mrkaran.hello.svc.cluster.local. udp 49 false 512" NXDOMAIN qr,aa,rd 142 0.000524939s
[INFO] 10.1.28.1:59287 - 57522 "A IN mrkaran.svc.cluster.local. udp 43 false 512" NXDOMAIN qr,aa,rd 136 0.000368277s
[INFO] 10.1.28.1:53086 - 4863 "A IN mrkaran.cluster.local. udp 39 false 512" NXDOMAIN qr,aa,rd 132 0.000355344s
[INFO] 10.1.28.1:56863 - 41678 "A IN mrkaran. udp 25 false 512" NXDOMAIN qr,rd,ra 100 0.034629206s

αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ mrkaran αž˜αž·αž“αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αžαŸ‚αž˜αž½αž™αž‘αŸ αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž‘αžΌαž‘αžΆαŸ†αž„αž”αž‰αŸ’αž‡αžΈαž”αž…αŸ’αž…αŸαž™αž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ”

αž…αŸ†αžŽαžΆαŸ†αŸ– αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαž˜αŸ’αž›αŸƒαž’αžαž·αž”αžšαž˜αžΆ ndots αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΉαž˜ 15; αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αžœαžΆαž‚αžΊ 5 αŸ”

αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αžΆαž€αŸ’αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž€αž˜αŸ’αž˜

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž αŸ…αžαžΆαž˜αž”αžŽαŸ’αžαžΆαž‰αžαžΆαž„αž€αŸ’αžšαŸ…αž…αŸ’αžšαžΎαž“ DNS αž’αžΆαž…αž€αŸ’αž›αžΆαž™αž‡αžΆαž§αž”αžŸαž‚αŸ’αž‚αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž…αžšαžΆαž…αžšαžŸαž€αž˜αŸ’αž˜ αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžˆαŸ’αž˜αŸ„αŸ‡αž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αžŸαŸ†αžŽαž½αžšαžŠαŸ‚αž›αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“ (αž˜αž»αž“αž–αŸαž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸ…αžαžΆαž„αžŸαŸ’αžŠαžΆαŸ†) αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž˜αž·αž“αž”αž“αŸ’αžαŸ‚αž˜αžαŸ†αž”αž“αŸ‹αž«αžŸαž‚αž›αŸ‹αž‘αŸ…αžˆαŸ’αž˜αŸ„αŸ‡αžŠαŸ‚αž“αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αžŸαŸ’αžαžΆαž”αŸ‹αž‘αŸ…αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž›αž½αž…αž…αžΌαž›αŸ” αž“αŸ„αŸ‡αž‚αžΊαž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαžŸαž½αžš api.twitter.comαž’αŸ’αž“αž€αž’αžΆαž… hardcode api.twitter.com. (αž‡αžΆαž˜αž½αž™αž…αŸ†αž“αž»αž…αž˜αž½αž™) αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αžŠαŸ‚αž›αž“αžΉαž„αž‡αŸ†αžšαž»αž‰αž±αŸ’αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ DNS αž’αŸ’αžœαžΎαž€αžΆαžšαžšαž€αž˜αžΎαž›αžŸαž·αž‘αŸ’αž’αž·αž’αŸ†αžŽαžΆαž…αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸ…αž›αžΎαžŠαŸ‚αž“αžŠαžΆαž…αŸ‹αžαžΆαžαŸ”

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αžŠαŸ„αž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™ Kubernetes αž€αŸ†αžŽαŸ‚ 1.14 αž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜ dnsConfig ΠΈ dnsPolicy αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŸαŸ’αžαž·αžšαž—αžΆαž–αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž“αŸ…αž–αŸαž›αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ pod αž’αŸ’αž“αž€αž’αžΆαž…αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αžαž˜αŸ’αž›αŸƒ ndotsαž“αž·αž™αžΆαž™αžαžΆαžšαž αžΌαžαžŠαž›αŸ‹ 3 (αž“αž·αž„αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αžšαž αžΌαžαžŠαž›αŸ‹ 1!) αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž“αŸαŸ‡ αžšαžΆαž›αŸ‹αžŸαžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ node αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž…αžΌαž›αžŠαŸ‚αž“αž–αŸαž‰αž›αŸαž‰αŸ” αž“αŸαŸ‡β€‹αž‚αžΊβ€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αžŠαŸ„αŸ‡αžŠαžΌαžšβ€‹αž”αŸ‚αž”β€‹αž”αž»αžšαžΆαžŽβ€‹αž˜αž½αž™β€‹αž“αŸ…β€‹αž–αŸαž›β€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αžαŸ’αžšαžΌαžœβ€‹αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸβ€‹αžšαžœαžΆαž„β€‹αž€αžΆαžšβ€‹αž’αž“αž»αžœαžαŸ’αžβ€‹αž“αž·αž„β€‹αž€αžΆαžšβ€‹αž…αž›αŸαžαŸ” αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžαŸ’αž‰αž»αŸ†αžŠαŸ‚αž›αž’αŸ’αž“αž€αž‚αž½αžšαž–αŸ’αžšαž½αž™αž”αžΆαžšαž˜αŸ’αž—αž’αŸ†αž–αžΈαž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœαž‘αžΆαž”αž”αŸ†αž•αž»αžαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž…αŸ†αž–αŸ„αŸ‡αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαŸ„αž™αžŸαžΆαžšαž›αž‘αŸ’αž’αž•αž› DNS αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž»αž€αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž•αž„αžŠαŸ‚αžšαŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαž™αŸ„αž„

αžŠαŸ†αž”αžΌαž„αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžšαŸ€αž“αž’αŸ†αž–αžΈαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸαŸ‡αž“αŸ…αž›αžΎ K8s-αž‡αž½αž”αžŠαŸ‚αž›αž”αŸ’αžšαžΆαžšαž–αŸ’αž’αž‘αžΎαž„αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 25 αžαŸ‚αž˜αž€αžšαžΆαŸ” αž˜αžΆαž“αž€αžΆαžšαž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž’αŸ†αž–αžΈαž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžšαžΏαž„αž•αŸ’αžŸαŸαž„αŸ—αž‘αŸ€αžαŸ”

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžšαž»αž€αžšαž€αž”αž“αŸ’αžαŸ‚αž˜αŸ–

αž…αŸ†αžŽαžΆαŸ†αŸ– αžαŸ’αž‰αž»αŸ†αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž˜αž·αž“αž”αŸ’αžšαžΎ dig αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αŸ” dig αž”αž“αŸ’αžαŸ‚αž˜αž…αŸ†αž“αž»αž…αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· (αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αžαŸ†αž”αž“αŸ‹αž«αžŸ) αž’αŸ’αžœαžΎαž±αŸ’αž™αžŠαŸ‚αž“ "αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹" (FQDN) αž˜αž·αž“αž˜αžΆαž“ αžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαž‡αžΆαž›αžΎαž€αžŠαŸ†αž”αžΌαž„αžαžΆαž˜αžšαž™αŸˆαž”αž‰αŸ’αž‡αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αŸ” αž”αžΆαž“αžŸαžšαžŸαŸαžšαž’αŸ†αž–αžΈαžšαžΏαž„αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ αž˜αž½αž™αž“αŸƒαž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αž˜αž»αž“αŸ”. αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžœαžΆαž–αž·αžαž‡αžΆαž‚αž½αžšαž±αŸ’αž™αž—αŸ’αž‰αžΆαž€αŸ‹αž•αŸ’αž’αžΎαž›αžŽαžΆαžŸαŸ‹αžŠαŸ‚αž›αžαžΆ αž‡αžΆαž‘αžΌαž‘αŸ… αž‘αž„αŸ‹αž‡αžΆαžαž·αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αžαŸ’αžšαžΌαžœαžαŸ‚αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž₯αžšαž·αž™αžΆαž”αžαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαŸ”

αžšαžΈαž€αžšαžΆαž™ DNSing! αž‡αž½αž”β€‹αž‚αŸ’αž“αžΆβ€‹αž–αŸαž›β€‹αž€αŸ’αžšαŸ„αž™!

PS αž–αžΈαž’αŸ’αž“αž€αž”αž€αž”αŸ’αžšαŸ‚

αžŸαžΌαž˜αž’αžΆαž“αž•αž„αžŠαŸ‚αžšαž“αŸ…αž›αžΎαž”αŸ’αž›αž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ–

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹