α
αααΆαα ααααααα αααα αΆ DNS αα
αααα»α Kubernetes α¬ααΆααααα
αααΆααααΆαααα ααΆαααααααααΆαααΆαααααα ndots
ααΆαααΆαααααα·αααα½αα±ααααααΆααααα’αΎα αα·ααα½α
αα
α αΎα
α’αααααααααααα
αααααα½αααααΆαααΆαααααααΆααααααα·ααΈαα
ααΎ Kubernetes ααΊααΆαααααΎααααααα·ααΈααααΆααααααα α’αααααααααααα»αα
αααααααααΌαααΆαααααα½ααααΆαααααΆαα αααααΆααααα·αααααΆαααα (vanilla
ααΆαααααα
ααααΆααααααααΆαααα chocolate
ααΆα’αΆα
α
αΌαααααΎ IP αα·αααα·ααααααααΆαααααααΆαα chocolate
. αααα½αααΎαα‘αΎα: ααΎα’αααααΆαααα»αααααΈαααααΉααααααααΆαααααΎ DNS αα
chocolate
α αΎααααααααααΆ?
αααααααααΆαααααα DNS ααααΌαααΆαααααααα
ααΆαααααααααα
ααΎα
ααααα Kubernetes αααααααΎ /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α
αααααΎαααΆααΎααΆαα’αααΈααΎαα‘αΎααα
αααααΎααα½α 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 ααααααΌαααΆααα»ααααα»αααααΆαααααααΆαααααααα
ααα ααααΈααα
ααααΌααααα»αααΆααααα’αααΈαααααααα·αααααααα
ααΎ
αααααΊααΆαααααααΆαααα½αα ααα½ααααααΆααααΆααα»αααααααααα
-
ααΆααααααα , α ααα»α’αααΈααΆαααΆ ndots=5 αα αααα»α Kubernetes; -
ααααα»βααβα’ααα αΆααα αααααααααΆαααααΆααααααΌα ndots αααααΆαααααααααΎαααΆααααααα·ααΈ; -
ααΆααα»αααααΆ αααΆαα’ααααααααααΆα musl αα·α glibc α
α
αααΆαα αααα»αααααΎαααΎααα·αααααΎ dig
αα
αααα»αα’ααααααααα dig
ααααααα
ααα»α
αααααααααααααααα· (α§αααααααααααααααα«α) ααααΎα±ααααα "ααΆααααααααααααααααΆαα" (FQDN) αα·αααΆα αααααααΎαααΆαααΆααΆααΎαααααΌαααΆαααααααααΈαααααααα ααΆααααααα’αααΈααΏαααααα
αααα»α
ααΈαααΆα DNSing! αα½αβααααΆβαααβααααα!
PS ααΈα’ααααααααα
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- Β«
Calico αααααΆαααααααΆααα αααα»α Kubernetesα ααΆαααααΆα αα·ααααα·ααααααα·α αα½α Β» - Β«
CoreDNS - αααΆαααΈααα DNS αααααΆαααα·ααααΎαααα αα·αααΆααααααααααααΆαααααααααΆαα Kubernetes Β» - "ααααα»αααααααααααΌαααΎαααααΆααα
αααα»α Kubernetes"α
αααααααΈ 1 αα·αααΈ 2 (ααααΌαααααΆα αααααΆααααα½αααΎααααΆ) ,αααααααΈ 3 (ααααΆαααα αα·αααααΎαααΆαα ααΆα ααα) .
ααααα: www.habr.com