Nota. transl.: Problema DNS f'Kubernetes, jew aktar preċiżament, settings tal-parametri ndots, hija sorprendentement popolari, u diġà Mhux l-ewwelsena. 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.
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:
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.
Ejja naraw x'jiġri meta nistaqsu mrkaran.dev fil-pod:
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).
[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.
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.