ááŸááºáá»ááºá áá¬áá¬ááŒááº: Kubernetes ááŸá DNS ááŒá¿áá¬á ááá¯á·ááá¯áẠááá¯ááá¯áááá»á
áœá¬á ááá·áºáááºáááºáááºáá»á¬áž ndots
á¡á¶á·ááŒá
áá¬áá±á¬ááºážáá±á¬ááºá¡á±á¬áẠáá¬áááºááŒá®ážáá±ááŒá®ážá
Kubernetes ááœáẠá¡ááá®áá±ážááŸááºážáá»á¬áž ááŒáá·áºáá»ááºá¡áá¯á¶ážááŒá¯ááŒááºážá á¡áááá¡áá»áá¯ážáá»á±ážáá°ážáá»á¬ážáá²ááŸáá
áºáá¯ááŸá¬ áá»á±á¬ááœá±á·ááŸá¯áááŸááá±á¬ á¡ááá®áá±ážááŸááºážááŸá¬ááœá±ááœá±á·ááŸáááŒááºážááŒá
áºáááºá áááºáá±á¬ááºááŸá¯ááá±á¬ááá¬ážááŒá±á¬áá·áº á¡á
á¯á¡áá±ážá¡ááœááºáž á¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯ááᯠá¡ááœááºááá¯ážááŸááºážá
á±ááẠ(vanilla
áááºáá±á¬ááºááŸá¯ááᯠáááºááœááºááá¯áá«áááºá chocolate
áááºážááẠvirtual 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 client áá»á¬ážá á¡áá¯á¶ážááŒá¯áá«áááºá ááá¯ááºáá²ááŸá¬ resolv.conf
á¡á±á¬ááºáá«á¡áá»ááºá¡áááºáá»á¬ážáá«ááŸááááº-
- nameserver: DNS áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá±ážááá¯á·ááá·áº áá¬áá¬á áá»áœááºá¯ááºááá¯á·áááá á¹á ááœááºá á€áááºááŸá¬ CoreDNS áááºáá±á¬ááºááŸá¯áááááºá á¬ááŒá áºáááºá
- ááŸá¬ááŸá±: áá®ážááŒá¬ážááá¯ááááºážáá
áºáá¯á¡ááœáẠááŸá¬ááœá±ááŸá¯áááºážááŒá±á¬ááºážááᯠáááºááŸááºáááºá á
áááºáááºá
á¬ážááá¯á·áá±á¬ááºážáááºá
google.com
ááá¯á·ááá¯ááºmrkaran.dev
FQDN ááá¯ááºáá«áá°áž (á¡áááºá¡áá»ááºážááŒáá·áºáá®áá±á¬ ááá¯ááááºážá¡áááºáá»á¬áž ) DNS ááŒá±ááŸááºážáá°á¡áá»á¬ážá á¯ááá¯ááºáá¬ááá·áºá á¶ááŸá¯ááºážá¡áá á¡ááŒá áºáá¯ááºááá¯ááá¯ááºá á¬ážááŒá¯ááá·áº dot "." ááŸáá·áºá¡áá¯á¶ážáááºáá±á¬áá°áá»á¬ážááá¯áᬠá¡áááºá¡áá»ááºážááŒáá·áºáá®áá±á¬ (FDQN) ááá¯ááááºážáá»á¬ážá¡ááŒá ẠáááºááŸááºáááºá á¡áá»áá¯á·ááŒá±ááŸááºážáá°áá»á¬ážááẠáááºážááá¯á·ááá¯ááºááá¯áẠá¡ááŸááºááá·áºááá¯ááºáááºá ááá¯á·ááŒá±á¬ááºá·,mrkaran.dev.
á¡áááºá¡áá»ááºážááŒáá·áºáá®áá±á¬ ááá¯ááááºážá¡ááẠ(FQDN) ááŸáá·áºmrkaran.dev
- ááá¯ááºáá°áž; - ndots: á
áááºáááºá
á¬ážá
áá¬á¡áá±á¬ááºážáá¯á¶áž ááá·áºáááºáá»áẠ(á€áá±á¬ááºážáá«ážááẠáááºážá¡ááŒá±á¬ááºážááŒá
áºáááº)á
ndots
áááºážááᯠ"á¡áááºá¡áá»ááºážááŒáá·áºáá®áá±á¬" ááá¯ááááºážá¡áááºáᯠááá°ááá® áá±á¬ááºážááá¯ááŸá¯á¡áááºáá áºáá¯ááŸá á¡á ááºáá»á¬ážá áá¶áá«ážáá¯á¶áá¶áá«ááºááᯠáááºááŸááºáá±ážáááºá DNS ááŸá¬ááœá±ááŸá¯ á¡á á®á¡á á¥áºááᯠááœá²ááŒááºážá áááºááŒá¬áá±á¬á¡áá«ááœáẠáááºážá¡ááŒá±á¬ááºáž áá±á¬ááºáááºááŒá±á¬áá«áááºá
áá±ážáá²á·á¡áá« áá¬ááŒá
áºááœá¬ážáá² ááŒáá·áºáá¡á±á¬áẠmrkaran.dev
pod áá²ááœááº-
$ 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 áááá¯ááá¯áá±á¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡ááŒáá¯ááºááŸá¬ááœá±ááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááá·áºáá¯á¶á á¶ááŒáá·áº áááºážááá¯á·ááᯠconfigure áá¯ááºáá¬ážáááºá ááœá±ážáá»ááºááœáá·áºááᯠááá·áºááœááºážááŒááºážááŒáá·áº áááºááẠá€á¡ááŒá¯á¡áá°ááᯠáááºáá»ááºááá¯ááºáááºásingle-request
вresolv.conf
.
ááŸááºáá»ááº: glibc
á€áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáááºááá¯ááºáá±ážááá¯á·áááºá ááŸáá·áº musl
- ááá¯ááºáá«á ááá¯á·ááŒá±á¬áá·áº Alpine á¡áá¯á¶ážááŒá¯áá°áá»á¬áž áááááŒá¯ááá·áºáááºá
ndots áá»á¬ážááŒáá·áº á ááºážáááºáá±áááºá
áááºážáááºážáááºááŒá®áž á
ááºážáááºááŒáá·áºáá¡á±á¬áẠndots
ááŒá®ážáá±á¬á· áá® parameter á áááºááᯠááŒá¯áá°áá±áá² ááŒáá·áºáá¡á±á¬ááºá á
áááºáá°ážá ááá¯ážááŸááºážáá«ááẠ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
áá
áºáá¯áááºážáá±á¬á¡áá»ááºááá¯ááºáá«á á¡áá¯á¶ážáááºá
á¬áááºážáá
áºáá¯áá¯á¶ážááá¯ááŸá¬ááœá±ááŸá¯ááŒá¯áá¯ááºáá²á·áááºá
ááŸááºáá»ááº- áááºááœá±á·ááœáẠá¡ááŒáá·áºáá¯á¶ážáááºááá¯áž ndots
15 ááá·áºáááº; Kubernetes ááœáẠáá°áááºážá¡á¬ážááŒáá·áº áááºážááẠ5 ááŒá
áºáááºá
áá¯ááºáá¯ááºááŸá¯ááœááºáá»áŸá±á¬ááºááœáŸá¬
á¡ááá®áá±ážááŸááºážáá
áºáá¯ááẠááŒááºáááœááºáááºáá¯ááºážáá±á«áºááá¯ááŸá¯áá»á¬ážá
áœá¬ááŒá¯áá¯ááºáá«áá á¡áááºááŒá±ááŸááºážááŸá¯ááœáẠáááá¯á¡ááºáá±á¬áá±ážááœááºážáá»á¬ážá
áœá¬ááᯠááŒá¯áá¯ááºáá±ážáá±á¬ááŒá±á¬áá·áº DNS ááẠáááºááŒáœáá±á¬áááºážááŒá±á¬ááºážááœáẠááááºááá¯á·ááŸá¯ááŒá
áºáá¬ááá¯ááºáááºá á¡ááá®áá±ážááŸááºážáá»á¬ážááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº ááá¯ááááºážá¡áááºáá»á¬ážááá¯á· á¡ááŒá
áºáá¯ááºááᯠáááá·áºáááºáá±á¬áºáááºáž áááºážááẠáááºááºáá
áºáá¯ááᯠááŒá
áºáá±áááºá á¡á²áá«áá±ážááá·áºá¡á
á¬áž api.twitter.com
á¡á²áá«ááᯠ'áá¬á·ááºáá¯ááº' áá¯ááºááá¯á·ááááºá api.twitter.com.
á¡ááá®áá±ážááŸááºážááŸá (á¡á
ááºáá
áºáá¯ááŸáá·áº)á áááºážááẠDNS áá±á¬ááºáááºáá»á¬ážá¡á¬áž absolute domain ááœáẠááá¬ážáááºááŸá¬ááœá±ááŸá¯áá»á¬ážááᯠááá¯ááºááá¯ááºáá¯ááºáá±á¬ááºááẠááŸá¯á¶á·áá±á¬áºáá±ážáááºááŒá
áºáááºá
ááá¯á·á¡ááŒáẠKubernetes áá¬ážááŸááºáž 1.14 ááŸá
áááºá ááá¯ážáá»á²á·ááŸá¯áá»á¬áž dnsConfig
О dnsPolicy
áááºááŒáááºáá±á¬ á¡áá±á¡áá¬ážááᯠáááŸááá²á·áááºá ááá¯á·ááŒá±á¬áá·áº pod ááá¯á¡áá¯á¶ážááŒá¯áá±á¬á¡áá«á áááºáááºáááºááá¯ážááá¯áá»áŸá±á¬á·áá»ááá¯ááºáááºá ndots
3 á¡áá (ááŸáá·áº 1 á¡áááááº!) á ááá¯á·á¡ááœááºááŒá±á¬áá·áº node áá
áºáá¯á¡ááœááºážááŸá áááºáá±á·áá»áºááá¯ááºážááœáẠdomain á¡ááŒáá·áºá¡á
á¯á¶áá«áááºááá«áááºá á
áœááºážáá±á¬ááºáááºááŸáá·áº áááºáá±á¬ááºáááœááºáá°ááŒááºážááŒá¬ážááœáẠááœá±ážáá»ááºáááá·áºá¡áá« áááºážááẠááá¹ááááºá¡áá±ážá¡áá°áá»á¬ážáá²á០áá
áºáá¯ááŒá
áºáááºá DNS ááááºáá»á¬ážááᯠá¡ááœááºážááá¯ááºážá ááááºážáááºážáá¬ážáá±á¬ááŒá±á¬áá·áº ááá·áºá¡ááá®áá±ážááŸááºážá¡ááœáẠá¡ááœááºáááá·áºáá±á¬ latency ááẠá¡áá±ážááŒá®ážáá«á áááºážá¡ááœááºáᬠá
áááºáá°ááá·áºáááºáᯠáá»áœááºá¯ááºáááºáá«áááºá
ááá¯ážáá¬áž
áá® Feature á¡ááŒá±á¬ááºážááᯠá
á
áá»ááºáž áááá¬ááááºá
á€áááºááŸá¬ áá±á¬ááºáááºááŸá¬ááœá±ááẠááá·áºááºá¡áá»áá¯á·ááŒá áºáááºá
-
ááŸááºážáááºážáá»áẠKubernetes ááœáẠá¡áááºááŒá±á¬áá·áº ndots=5 á -
ááŒá®ážááŒááºáá±á¬á¡áᬠndots áá»á¬ážááŒá±á¬ááºážáá²ááŒááºážááẠá¡ááºááºáá®áá±ážááŸááºážá áœááºážáá±á¬ááºáááºá¡áá±á«áº áááºáá²á·ááá¯á·á¡áá»áá¯ážáááºáá±á¬ááºáááºá -
ááá°ááœá²ááŒá¬ážááŸá¯áá»á¬áž musl ááŸáá·áº glibc ááŒá±ááŸááºážáá°áá»á¬ážá¡ááŒá¬ážá
ááŸááºáá»ááº- áá»áœááºáá±á¬áº á¡áá¯á¶ážáááŒá¯ááẠááœá±ážáá»ááºáá²á·áááºá dig
á€áá±á¬ááºážáá«ážááœááºáá«á dig
ááá¯ááááºážááᯠ"á¡ááŒáá·áºá¡áá¡áááºá¡áá»ááºážááŒáá·áºáá®áá±á¬" (FQDN) ááŒá
áºá¡á±á¬áẠá¡á
áẠ(root zone identifier) ââá¡ááá¯á¡áá»á±á¬ááºááá·áºáááºá ááá¯áẠááŸá¬ááœá±ááŸá¯á
á¬áááºážááŸáááá·áº áááºážááᯠáŠážá
áœá¬áá¯ááºáá±á¬ááºáá«á áá®á¡ááŒá±á¬ááºážááᯠáá±ážáá¬ážáá«áááºá
áá»á±á¬áºááœáŸááºá áœá¬ DNSing áá¯ááºáá«á áá±á¬ááºááŸááœá±á·áááº!
PS áá¬áá¬ááŒááºááŸ
áá»áœááºá¯ááºááá¯á·áááá±á¬á·ááºááœááºáááºážáááºáá«
- «
Kubernetes ááŸá ááœááºáááºáá»áááºáááºááŸá¯á¡ááœáẠCalico- ááááºáááºááŒááºážááŸáá·áº á¡ááœá±á·á¡ááŒá¯á¶á¡áááºážááẠ"; - «
CoreDNS - cloud áá¬ááááá¹áá¬á¡ááœáẠDNS áá¬áá¬ááŸáá·áº Kubernetes á¡ááœáẠáááºáá±á¬ááºááŸá¯ááŸá¬ááœá±ááŸá¯ "; - " Kubernetes ááœáẠááœááºáááºáá»áááºáááºááŒááºážááá¯ááºáᬠáá¯ááºááŒáááºážááœáŸááº"-
á¡ááá¯ááºáž á ááŸáá·áº á (ááœááºáááºáá¯á¶á á¶á áááºááá·áºááœááºáááºáá»á¬áž) ,á¡ááá¯ááºáž 3 (áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áá¬ááºá¡ááœá¬ážá¡áᬠáá¯ááºáá±á¬ááºááŒááºáž) .
source: www.habr.com