Su'e DNS ile Kubernetes

Manatua. fa'aliliu.: Fa'afitauli DNS i Kubernetes, po'o le sili atu, fa'asologa fa'amau ndots, e ofo lauiloa, ma ua uma E le muamua le tausaga. I se isi faʻamatalaga i luga o lenei autu, o lona tusitala, o se DevOps inisinia mai se kamupani faʻasalalau tele i Initia, talanoa i se auala sili ona faigofie ma manino e uiga i mea e aoga mo tagata faigaluega o loʻo faʻaaogaina Kubernetes ia iloa.

Su'e DNS ile Kubernetes

O se tasi o faʻamanuiaga autu o le faʻapipiʻiina o talosaga i luga o Kubernetes o le suʻesuʻeina o talosaga e le faʻaogaina. Feso'ota'iga i totonu o fa'apotopotoga e fa'afaigofie tele fa'afetai i le manatu o le 'au'aunaga (tautua), o se IP virtual e lagolagoina se seti o tuatusi IP pod. Mo se faʻataʻitaʻiga, afai o le tautua vanilla mana'o e fa'afeso'ota'i le tautua chocolate, e mafai ona maua saʻo le virtual IP mo chocolate. O le fesili e tulaʻi mai: o ai i lenei tulaga o le a foia le talosaga DNS i chocolate Ae Faapefea?

Ole fa'ai'uga ole igoa ole DNS o lo'o fa'atulagaina ile fa'aoga Kubernetes CoreDNS. Kubelet resitala se pod ma CoreDNS o se nameserver i faila /etc/resolv.conf pusa uma. Afai e te tilotilo i le anotusi /etc/resolv.conf soʻo se pusa, e foliga faʻapea:

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

O lenei fa'atulagaga e fa'aogaina e DNS clients e lafo atu ai talosaga ile DNS server. I le faila resolv.conf o lo'o iai fa'amatalaga nei:

  • nameserver: server o le a lafo i ai talosaga DNS. I la matou tulaga, o le tuatusi lea o le auaunaga CoreDNS;
  • suʻe: Fa'amatala le ala su'esu'e mo se vaega fa'apitoa. E manaia lena google.com poʻo mrkaran.dev e le o FQDN (fa'aigoa atoatoa igoa fa'apitonu'u). E tusa ai ma le masani masani e mulimulitaia e le tele o DNS fofo, naʻo i latou e faʻaiʻu i le togi ".", e fai ma sui o le sone aʻa, e manatu i le atoatoa (FDQN) domains. O nisi tagata fofo e mafai ona fa'aopoopoina i latou lava. O lea, mrkaran.dev. ole igoa ole igoa ole igoa (FQDN), ma mrkaran.dev - Leai;
  • togitogi: Le pito sili ona manaia (o lenei tusiga e uiga i ai). ndots fa'amaoti le numera o togitogi i totonu ole igoa ole talosaga a'o le'i ta'ua ole igoa ole igoa ole igoa ole igoa ole “agavaa atoatoa”. O le a matou talanoa atili e uiga i lenei mea mulimuli ane pe a matou suʻesuʻeina le faʻasologa o suʻesuʻega DNS.

Su'e DNS ile Kubernetes

Sei o tatou vaai po o le a le mea e tupu pe a tatou fesili mrkaran.dev i totonu:

$ 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

Mo lenei faʻataʻitaʻiga, ou te setiina le CoreDNS logging level i all (lea e fai lava si verbose). Se'i tatou va'ai i ogalaau o le pod 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

Fiu. E lua mea e tosina atu i ai lou mafaufau iinei:

  • O le talosaga e alu i laʻasaga uma o le suʻega seʻia oʻo i le tali e aofia ai le code NOERROR (O tagata DNS e malamalama i ai ma teuina o se taunuuga). NXDOMAIN o lona uiga e leai se fa'amaumauga na maua mo le igoa fa'asinomaga. Ona o le mrkaran.dev e le o se igoa FQDN (e tusa ai ma ndots=5), e va'ava'ai fo'i le tagata su'esu'e i le ala su'esu'e ma fuafua le fa'asologa o talosaga;
  • Meli А и АААА taunuu tutusa. O le mea moni e tasi le taimi talosaga i totonu /etc/resolv.conf Ona o le le mafai, latou te faʻatulagaina i se auala e faia ai suʻesuʻega tutusa e faʻaaoga ai le IPv4 ma IPv6 protocols. E mafai ona e fa'aleaogaina lenei amio ile fa'aopoopoina o le filifiliga single-request в resolv.conf.

Manatua: glibc e mafai ona configured e auina atu nei talosaga faasolosolo, ma musl - Leai, o lea e tatau i tagata Alpine ona faʻalogo.

Fa'ata'ita'i i togi

Sei o tatou faataitai teisi atu i ai ndots ma se'i o tatou va'ai pe fa'afefea ona amio lenei parakalafa. E faigofie le manatu: ndots e fuafua pe o le a fa'aogaina e le tagata fa'atau DNS le vaega e fa'amaoni pe fa'atatau. Mo se faʻataʻitaʻiga, i le tulaga o se Google DNS client faigofie, e faʻafefea ona ia iloa pe faʻamaoni lenei vaega? Afai e te setiina ndots tutusa ma le 1, o le a fai mai le kalani: "Oi, i totonu google e leai se mea e tasi; Ou te masalo o le a ou alu i le lisi atoa o sailiga." Ae peitai, afai e te fesili google.com, o le lisi o suffix o le a matua le amanaiaina ona o le igoa talosaga e fetaui ma le faitotoa ndots (e le itiiti ifo ma le tasi le itu).

Sei o tatou mautinoa o lenei:

$ 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 fa'amaumauga:

[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

Talu mai i totonu mrkaran e leai se mea e tasi, o le sailiga sa faia i luga o le lisi atoa o suffix.

Manatua: i le faʻatinoga o le tau maualuga ndots faatapulaa i le 15; ona o le faaletonu i Kubernetes e 5.

Fa'aoga i le gaosiga

Afai e faia e se talosaga le tele o fesoʻotaʻiga fesoʻotaʻiga i fafo, e mafai ona avea DNS ma faʻamaufaʻailoga i le tulaga o feoaiga feʻaveaʻi, talu ai o le faʻaiʻuga o igoa e faia ai le tele o fesili le manaʻomia (aʻo leʻi oʻo atu le faiga i le mea saʻo). O talosaga e masani lava e le fa'aopoopoina se sone a'a i igoa fa'apitonu'u, ae e foliga mai ose hack. O lona uiga, nai lo le fesili api.twitter.com, e mafai ona e 'hardcode' ai api.twitter.com. (fa'atasi ai ma se togi) i totonu o le talosaga, lea o le a fa'aosofia ai tagata fa'atau DNS e fa'atino sa'o su'esu'ega fa'atulafonoina i luga o le fa'atonuga.

E le gata i lea, amata ile Kubernetes version 1.14, faʻaopoopoga dnsConfig и dnsPolicy maua tulaga mautu. O lea la, pe a faʻapipiʻi se pod, e mafai ona e faʻaititia le tau ndots, fai mai, e oʻo atu i le 3 (ma e oʻo lava i le 1!). Ona o lea mea, o fe'au uma i totonu o se node e tatau ona aofia ai le vaega atoa. O se tasi lea o fefa'ataua'iga masani pe a e filifili i le va o le fa'atinoga ma le feavea'i. E foliga mai ia te aʻu e tatau ona e popole i lenei mea pe afai e taua tele le latency ultra-low i lau talosaga, talu ai o faʻaiʻuga DNS o loʻo faʻapipiʻiina foi i totonu.

mau

Na ou iloa muamua e uiga i lenei vaega i K8s-feiloa'iga, na faia i le aso 25 o Ianuari. Sa i ai se talanoaga e uiga i lenei faafitauli, faatasi ai ma isi mea.

O nisi nei o feso'ota'iga mo su'esu'ega atili:

Manatua: Na ou filifili e le faʻaaogaina dig i lenei tusitusiga. dig fa'aopoopo fa'afuase'i se togi (fa'ailoa sone a'a), ma fa'aigoaina atoatoa le vaega (FQDN), e ala i le taʻavale muamua i le lisi suʻesuʻe. Na tusia e uiga i lenei mea i o se tasi o lomiga talu ai. Ae ui i lea, e matua ofo lava, i se tulaga lautele, e tatau ona faʻamaonia se fuʻa ese mo le amio masani.

Manuia le DNSing! Feiloai mulimuli ane!

PS mai faaliliu

Faitau foi i la matou blog:

puna: www.habr.com

Faaopoopo i ai se faamatalaga