Lookup DNS f'Kubernetes

Nota. transl.: Problema DNS f'Kubernetes, jew aktar preċiżament, settings tal-parametri ndots, hija sorprendentement popolari, u diġà Mhux l-ewwel sena. F'nota oħra dwar dan is-suġġett, l-awtur tiegħu, inġinier DevOps minn kumpanija kbira ta 'senserija fl-Indja, jitkellem b'mod sempliċi ħafna u konċiż dwar dak li huwa utli għall-kollegi li joperaw Kubernetes li jkunu jafu.

Lookup DNS f'Kubernetes

Wieħed mill-benefiċċji ewlenin tal-iskjerament tal-applikazzjonijiet fuq Kubernetes huwa l-iskoperta tal-applikazzjonijiet bla xkiel. L-interazzjoni bejn il-cluster hija ssimplifikata ħafna grazzi għall-kunċett tas-servizz (servizz), li huwa IP virtwali li jappoġġja sett ta 'indirizzi IP pod. Per eżempju, jekk is-servizz vanilla jixtieq jikkuntattja lis-servizz chocolate, jista 'jaċċessa direttament l-IP virtwali għal chocolate. Tqum il-mistoqsija: min f'dan il-każ se jsolvi t-talba DNS lil chocolate U Kif?

Ir-riżoluzzjoni tal-isem DNS hija kkonfigurata fuq cluster Kubernetes bl-użu CoreDNS. Kubelet jirreġistra pod ma' CoreDNS bħala nameserver fil-fajls /etc/resolv.conf imżiewed kollha. Jekk tħares lejn il-kontenut /etc/resolv.conf kwalunkwe pod, se tidher xi ħaġa bħal din:

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

Din il-konfigurazzjoni tintuża mill-klijenti DNS biex jgħaddu talbiet lis-server DNS. Fil-fajl resolv.conf fih l-informazzjoni li ġejja:

  • nameserver: server li lejh jintbagħtu t-talbiet tad-DNS. Fil-każ tagħna, dan huwa l-indirizz tas-servizz CoreDNS;
  • tfittxija: Jiddefinixxi t-triq tat-tfittxija għal dominju speċifiku. Huwa interessanti li google.com jew mrkaran.dev mhumiex FQDN (ismijiet tad-dominju kwalifikati bis-sħiħ). Skont il-konvenzjoni standard li jsegwu l-biċċa l-kbira tar-risolventi tad-DNS, dawk biss li jispiċċaw b'tikka ".", li jirrappreżentaw iż-żona tal-għeruq, huma kkunsidrati dominji kwalifikati bis-sħiħ (FDQN). Xi resolvers jistgħu jżidu punt huma stess. Għalhekk, mrkaran.dev. huwa l-isem tad-dominju kompletament kwalifikat (FQDN), u mrkaran.dev - Le;
  • ndots: L-aktar parametru interessanti (dan l-artikolu huwa dwaru). ndots jispeċifika n-numru limitu ta' tikek f'isem ta' rikjesta qabel ma jitqies bħala isem ta' dominju "kwalifikat bis-sħiħ". Aħna ser nitkellmu aktar dwar dan aktar tard meta nanalizzaw is-sekwenza ta 'tfittxija DNS.

Lookup DNS f'Kubernetes

Ejja naraw x'jiġri meta nistaqsu mrkaran.dev fil-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

Għal dan l-esperiment, issettjajt il-livell tal-logging CoreDNS għal all (li jagħmilha pjuttost verbose). Ejja nħarsu lejn iz-zkuk tal-miżwed 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

Phew. Żewġ affarijiet jiġbdu l-attenzjoni tiegħek hawn:

  • It-talba tgħaddi mill-istadji kollha tat-tfittxija sakemm ir-rispons ikun fih il-kodiċi NOERROR (Il-klijenti tad-DNS jifhmuha u jaħżnuha bħala riżultat). NXDOMAIN ifisser li ma nstab l-ebda rekord għall-isem tad-dominju mogħti. Minħabba li l- mrkaran.dev mhuwiex isem FQDN (skond ndots=5), resolver iħares lejn il-mogħdija tat-tfittxija u jiddetermina l-ordni tat-talbiet;
  • Rekords А и АААА jaslu b'mod parallel. Il-fatt hu li talbiet ta’ darba fil /etc/resolv.conf B'mod awtomatiku, huma kkonfigurati b'tali mod li t-tfittxijiet paralleli jsiru bl-użu tal-protokolli IPv4 u IPv6. Tista' tikkanċella din l-imġieba billi żżid l-għażla single-request в resolv.conf.

Nota: glibc jistgħu jiġu kkonfigurati biex jibagħtu dawn it-talbiet b'mod sekwenzjali, u musl - le, għalhekk l-utenti Alpini għandhom jieħdu nota.

Jesperimentaw b'ndots

Ejja nesperimentaw ftit aktar bihom ndots u ejja naraw kif dan il-parametru jaġixxi. L-idea hija sempliċi: ndots jiddetermina jekk il-klijent DNS jittrattax id-dominju bħala assolut jew relattiv. Per eżempju, fil-każ ta 'klijent DNS google sempliċi, kif tkun taf jekk dan id-dominju huwiex assolut? Jekk issettja ndots ugwali għal 1, il-klijent jgħid: "Oh, in google m'hemmx punt wieħed; Naħseb li ser ngħaddi mill-lista kollha tat-tiftix.” Madankollu, jekk tistaqsi google.com, il-lista tas-suffissi tkun kompletament injorata minħabba li l-isem mitlub jilħaq il-limitu ndots (hemm mill-inqas punt wieħed).

Ejja niżguraw minn dan:

$ 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

Reġistri 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

Minn meta mrkaran m'hemmx punt wieħed, it-tfittxija saret tul il-lista sħiħa tas-suffissi.

Nota: fil-prattika l-valur massimu ndots limitat għal 15; awtomatikament fil-Kubernetes huwa 5.

Applikazzjoni fil-produzzjoni

Jekk applikazzjoni tagħmel ħafna sejħiet minn netwerk estern, id-DNS jista 'jsir ostakolu fil-każ ta' traffiku attiv, peress li r-riżoluzzjoni tal-isem tagħmel ħafna mistoqsijiet mhux meħtieġa (qabel is-sistema tasal għal dik it-tajba). L-applikazzjonijiet normalment ma jżidux żona għerq għall-ismijiet tad-dominju, iżda dan ħsejjes bħal hack. Jiġifieri flok tistaqsi api.twitter.com, inti tista hardcode api.twitter.com. (b'tikka) fl-applikazzjoni, li se tħeġġeġ lill-klijenti DNS biex iwettqu lookups awtorevoli direttament fuq id-dominju assolut.

Barra minn hekk, tibda bil-verżjoni 1.14 ta 'Kubernetes, estensjonijiet dnsConfig и dnsPolicy irċeviet status stabbli. Għalhekk, meta tuża pod, tista 'tnaqqas il-valur ndots, ngħidu aħna, sa 3 (u anke sa 1!). Minħabba dan, kull messaġġ f'node jkollu jinkludi d-dominju sħiħ. Din hija waħda mill-kompromessi klassiċi meta jkollok tagħżel bejn il-prestazzjoni u l-portabbiltà. Jidhirli li inti għandek tinkwieta biss dwar dan jekk latency ultra-baxxa hija vitali għall-applikazzjoni tiegħek, peress li r-riżultati tad-DNS huma wkoll cached internament.

referenzi

L-ewwel tgħallimt dwar din il-karatteristika fuq K8s-laqgħa, li saret fil-25 ta’ Jannar. Kien hemm diskussjoni dwar din il-problema, fost affarijiet oħra.

Hawn huma xi links għal aktar esplorazzjoni:

Nota: Jien għażilt li ma nużax dig f'dan l-artikolu. dig awtomatikament iżid tikka (identifikatur taż-żona tal-għeruq), li jagħmel id-dominju "kwalifikat bis-sħiħ" (FQDN), ebda billi l-ewwel tmexxiha permezz tal-lista tat-tiftix. Kiteb dwar dan fi waħda mill-pubblikazzjonijiet preċedenti. Madankollu, huwa pjuttost sorprendenti li, b'mod ġenerali, għandha tiġi speċifikata bandiera separata għall-imġieba standard.

DNSing kuntenti! Narak iktar tard!

PS minn traduttur

Aqra wkoll fuq il-blog tagħna:

Sors: www.habr.com

Żid kumment