เบเบฒเบ™เบŠเบญเบเบซเบฒ DNS เปƒเบ™ Kubernetes

เบซเบกเบฒเบโ€‹เป€เบซเบ”โ€‹. เปเบ›.: เบšเบฑเบ™เบซเบฒ DNS เปƒเบ™ Kubernetes, เบซเบผเบทเบซเบผเบฒเบเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต ndots, เป€เบ›เบฑเบ™เบ—เบตเปˆเบ™เบดเบเบปเบกเบ—เบตเปˆเบซเบ™เป‰เบฒเบ›เบฐเบซเบฅเบฒเบ”เปƒเบˆ, เปเบฅเบฐเปเบฅเป‰เบง เบšเปเปˆเปเบกเปˆเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ” ะณะพะด. เปƒเบ™เบšเบฑเบ™เบ—เบถเบเบญเบทเปˆเบ™เปƒเบ™เบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰, เบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡เบ•เบปเบ™, เบงเบดเบชเบฐเบงเบฐเบเบญเบ™ DevOps เบˆเบฒเบเบšเปเบฅเบดเบชเบฑเบ”เบ™เบฒเบเบซเบ™เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปƒเบ™เบ›เบฐเป€เบ—เบ”เบญเบดเบ™เป€เบ”เบ, เบชเบปเบ™เบ—เบฐเบ™เบฒเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐ concise เบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเป€เบžเบทเปˆเบญเบ™เบฎเปˆเบงเบกเบ‡เบฒเบ™เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Kubernetes เบ—เบตเปˆเบˆเบฐเบฎเบนเป‰.

เบเบฒเบ™เบŠเบญเบเบซเบฒ DNS เปƒเบ™ Kubernetes

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ™ Kubernetes เปเบกเปˆเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบšเปเปˆเบกเบต seamless. เบ›เบฐเบ•เบดเบชเปเบฒเบžเบฑเบ™เบžเบฒเบเปƒเบ™เบเบธเปˆเบกเปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบเบเป‰เบญเบ™เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ (เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™), เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™ IP virtual เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบธเบ”เบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆ IP เบ‚เบญเบ‡ pod. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ vanilla เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เปเปˆเบšเปเบฅเบดเบเบฒเบ™ chocolate, เบกเบฑเบ™เป‚เบ”เบเบเบปเบ‡เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ IP virtual เบชเปเบฒเบฅเบฑเบš chocolate. เบ„เปเบฒเบ–เบฒเบกเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™: เปƒเบœเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบˆเบฐเปเบเป‰เป„เบ‚เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป DNS เบเบฑเบš chocolate เปเบฅเบฐเปเบ™เบงเปƒเบ”?

เบเบฒเบ™เปเบเป‰เป„เบ‚เบŠเบทเปˆ DNS เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบขเบนเปˆเปƒเบ™เบเบธเปˆเบก Kubernetes เป‚เบ”เบเปƒเบŠเป‰ CoreDNS. Kubelet เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ pod เบเบฑเบš CoreDNS เป€เบ›เบฑเบ™ nameserver เปƒเบ™เป„เบŸเบฅเปŒ /etc/resolv.conf เบเบฑเบเบ—เบฑเบ‡เปเบปเบ”. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบ™เบทเป‰เบญเปƒเบ™ /etc/resolv.conf เบเบฑเบเปƒเบ”เบ™เบถเปˆเบ‡, เบกเบฑเบ™เบˆเบฐเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเปเบšเบšเบ™เบตเป‰:

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 (เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡ verbose). เบ‚เปเปƒเบซเป‰เป€เบšเบดเปˆเบ‡เป„เบกเป‰เบ—เปˆเบญเบ™เบ‚เบญเบ‡เบเบฑเบ 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 protocols. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบปเบเป€เบฅเบตเบเบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ single-request ะฒ resolv.conf.

เบซเบกเบฒเบเป€เบซเบ”: glibc เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เปเบฅเบฐ musl - เบšเปเปˆ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบœเบนเป‰เปƒเบŠเป‰ Alpine เบ„เบงเบ™เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆ.

เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบเบฑเบš ndots

เปƒเบซเป‰เบ—เบปเบ”เบฅเบญเบ‡เบ•เบทเปˆเบกเบญเบตเบเป€เบฅเบฑเบเบ™เป‰เบญเบเบเบฑเบš ndots เปเบฅเบฐเปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ™เบตเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบ™เบงเปƒเบ”. เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ: ndots เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบฅเบนเบเบ„เป‰เบฒ DNS เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปเปˆเป‚เบ”เป€เบกเบ™เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เบซเบผเบทเป€เบ›เบฑเบ™เบžเบตเปˆเบ™เป‰เบญเบ‡เบเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒ google DNS เปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบ, เบกเบฑเบ™เบฎเบนเป‰เป„เบ”เป‰เปเบ™เบงเปƒเบ”เบงเปˆเบฒเป‚เบ”เป€เบกเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡? เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบ•เบฑเป‰เบ‡ 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 เบšเปเปˆเบกเบตเบˆเบธเบ”เบ”เบฝเบง, เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ—เบปเปˆเบงเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ suffixes เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบซเบกเบฒเบเป€เบซเบ”: เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปˆเบฒเบชเบนเบ‡เบชเบธเบ” ndots เบˆเปเบฒเบเบฑเบ”เป€เบ–เบดเบ‡ 15; เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ Kubernetes เบกเบฑเบ™เปเบกเปˆเบ™ 5.

เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”

เบ–เป‰เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบฎเบฑเบ”เบเบฒเบ™เป‚เบ—เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบžเบฒเบเบ™เบญเบเบซเบผเบฒเบ, DNS เบชเบฒเบกเบฒเบ”เบเบฒเบเป€เบ›เบฑเบ™เบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเบซเป‰เบฒเบงเบซเบฑเบ™, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เปเบเป‰เป„เบ‚เบŠเบทเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบซเบผเบฒเบ (เบเปˆเบญเบ™เบ—เบตเปˆเบฅเบฐเบšเบปเบšเบˆเบฐเป„เบ›เบซเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡). เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบšเปเปˆเป€เบžเบตเปˆเบกเป€เบ‚เบ”เบฎเบฒเบเปƒเบชเปˆเบŠเบทเปˆเป‚เบ”เป€เบกเบ™, เปเบ•เปˆเบ™เบตเป‰เบ„เบทเบเบฒเบ™เปเบฎเบฑเบ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบ–เบฒเบก api.twitter.com, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” 'hardcode' เบกเบฑเบ™ api.twitter.com. (เบกเบตเบˆเบธเบ”) เปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบเบฐเบ•เบธเป‰เบ™เปƒเบซเป‰เบฅเบนเบเบ„เป‰เบฒ DNS เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒเบชเบดเบ”เบญเปเบฒเบ™เบฒเบ”เป‚เบ”เบเบเบปเบ‡เปƒเบ™เป‚เบ”เป€เบกเบ™เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ Kubernetes เบฎเบธเปˆเบ™ 1.14, เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบ dnsConfig ะธ dnsPolicy เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ™เบฐโ€‹เบžเบฒเบšโ€‹เบ—เบตเปˆโ€‹เบซเบกเบฑเป‰เบ™โ€‹เบ„เบปเบ‡โ€‹. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบฅเบปเบ‡เบกเบนเบ™เบ„เปˆเบฒ ndots, เป€เบงเบปเป‰เบฒเบงเปˆเบฒ, เป€เบ–เบดเบ‡ 3 (เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เป€เบ–เบดเบ‡ 1!). เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ™เบตเป‰, เบ—เบธเบเป†เบ‚เปเป‰เบ„เบงเบฒเบกเบžเบฒเบเปƒเบ™ node เบˆเบฐเบ•เป‰เบญเบ‡เบ›เบฐเบเบญเบšเบกเบตเป‚เบ”เป€เบกเบ™เป€เบ•เบฑเบก. เบ™เบตเป‰เปเบกเปˆเบ™ เปœเบถเปˆเบ‡ เปƒเบ™เบเบฒเบ™เบŠเบทเป‰เบ‚เบฒเบเปเบšเบšเบ„เบฅเบฒเบชเบชเบดเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบเบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบเบฒเบ™เบเบฐเบžเบฒ. เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ‚เป‰เบญเบเบ„เบงเบ™เบเบฑเบ‡เบงเบปเบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ–เป‰เบฒเป€เบงเบฅเบฒ latency เบ•เปˆเปเบฒเปเบกเปˆเบ™เบชเปเบฒเบ„เบฑเบ™เบ•เปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš DNS เบเบฑเบ‡เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เบžเบฒเบเปƒเบ™.

เป€เบญเบเบฐเบชเบฒเบ™

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ—เปเบฒเบญเบดเบ”เป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบเปˆเบฝเบงเบเบฑเบš K8s-meetup, เป„เบ”เป‰เบˆเบฑเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบงเบฑเบ™เบ—เบต 25 เบกเบฑเบ‡เบเบญเบ™. เบกเบตเบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบšเบšเบฑเบ™เบซเบฒเบ™เบตเป‰, เปƒเบ™เบšเบฑเบ™เบ”เบฒเบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†.

เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฒเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก:

เบซเบกเบฒเบเป€เบซเบ”: เบ‚เป‰เบญเบเป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเบšเปเปˆเปƒเบŠเป‰ dig เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰. dig เป€เบžเบตเปˆเบกเบˆเบธเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” (เบ•เบปเบงเบฅเบฐเบšเบธเป€เบ‚เบ”เบฎเบฒเบ), เป€เบฎเบฑเบ”เปƒเบซเป‰เป‚เบ”เป€เบกเบ™ "เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ„เบปเบšเบ–เป‰เบงเบ™" (FQDN), เบšเปเปˆ เป‚เบ”เบเบ—เปเบฒเบญเบดเบ”เปเบฅเปˆเบ™เบกเบฑเบ™เบœเปˆเบฒเบ™เบฅเบฒเบเบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒ. เบ‚เบฝเบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปƒเบ™ เบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบดเปˆเบ‡เบžเบดเบกเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบกเบฑเบ™เป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เปเบ›เบเบ—เบตเปˆเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบง, เบ—เบธเบ‡เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเบžเบถเบ”เบ•เบดเบเปเบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.

เบเบดเบ™เบ”เบต DNSing! เปเบฅเป‰เบงเบžเบปเบšเบเบฑเบ™!

PS เบˆเบฒเบเบ™เบฑเบเปเบ›

เบญเปˆเบฒเบ™เบเบฑเบ‡เบขเบนเปˆเปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™