Rịba ama. ntụgharị asụsụ.: Nsogbu DNS na Kubernetes, ma ọ bụ karịa kpọmkwem, ntọala paramita ndots, bụ ihe ijuanya na-ewu ewu, na ugbua Ọ bụghị nke mbụгод. N'okwu ọzọ na isiokwu a, onye edemede ya, onye injinia DevOps sitere na nnukwu ụlọ ọrụ na-ere ahịa na India, na-ekwu okwu n'ụzọ dị mfe na nkenke banyere ihe bara uru maka ndị ọrụ ibe na-arụ ọrụ Kubernetes mara.
Otu n'ime uru kachasị dị na ibunye ngwa na Kubernetes bụ nchọpụta ngwa enweghị nkebi. A na-eme ka mmekọrịta dị n'ime-ụyọkọ dị mfe n'ihi echiche ọrụ (Service), nke bụ IP mebere nke na-akwado otu adreesị IP pọd. Dịka ọmụmaatụ, ọ bụrụ na ọrụ ahụ vanilla chọrọ ịkpọtụrụ ọrụ chocolate, ọ nwere ike banye ozugbo na mebere IP maka chocolate. Ajụjụ na-ebilite: onye na nke a ga-edozi arịrịọ DNS chocolate Oleekwa otú?
A na-ahazi mkpebi aha DNS na ụyọkọ Kubernetes na-eji CoreDNS. Kubelet debanyere pọd na CoreDNS dị ka aha nkesa na faịlụ /etc/resolv.conf pods niile. Ọ bụrụ na ị lelee ọdịnaya /etc/resolv.conf Pod ọ bụla, ọ ga-adị ka nke a:
Ndị ahịa DNS na-eji nhazi a iji zipu arịrịọ na sava DNS. Na faịlụ resolv.conf nwere ozi ndị a:
ihe nkesa aha: nkesa nke a ga-eziga arịrịọ DNS. N'ọnọdụ anyị, nke a bụ adreesị nke ọrụ CoreDNS;
search: Na-akọwa ụzọ ọchụchọ maka otu ngalaba. Ọ na-adọrọ mmasị na google.com ma ọ bụ mrkaran.dev abụghị FQDN (n'ụzọ zuru ezu ruru eru ngalaba aha). Dịka nkwekọrịta ọkọlọtọ nke ọtụtụ ndị na-edozi DNS na-agbaso, ọ bụ naanị ndị na-ejedebe na ntụpọ ".", na-anọchite anya mpaghara mgbọrọgwụ, ka a na-ewere na ngalaba ruru eru (FDQN). Ụfọdụ ndị na-eme mkpebi nwere ike ịgbakwunye otu isi n'onwe ha. Ya mere, mrkaran.dev. bụ ngalaba aha tozuru oke (FQDN), na mrkaran.dev - Mba;
ndots: Oke kacha adọrọ mmasị (isiokwu a gbasara ya). ndots na-akọwapụta ọnụ ụzọ ọnụ ọgụgụ nke ntụpọ na aha arịrịọ tupu ewere ya dị ka ngalaba aha “tozuru oke”. Anyị ga-ekwukwu maka nke a ma emechaa mgbe anyị nyochara usoro nyocha DNS.
Ka anyị hụ ihe na-eme mgbe anyị jụrụ ya mrkaran.dev na pọd:
Maka nnwale a, edobere m ọkwa ndekọ CoreDNS ka ọ bụrụ all (nke na-eme ka ọ dị mfe ikwu okwu). Ka anyị leba anya n'osisi pọd 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. Ihe abụọ dọtara uche gị ebe a:
Arịrịọ ahụ na-aga na ọkwa niile nke ọchụchọ ahụ ruo mgbe nzaghachi nwere koodu NOERROR (Ndị ahịa DNS ghọtara ya wee chekwaa ya n'ihi ya). NXDOMAIN pụtara na ọ nweghị ndekọ ahụghị maka ngalaba aha enyere. N'ihi na mrkaran.dev abụghị aha FQDN (dị ka ndots=5), onye mkpebi na-eleba anya n'ụzọ ọchụchọ wee chọpụta usoro arịrịọ;
Posts А и АААА bịarute n'otu n'otu. Nke bụ eziokwu bụ na otu oge na-arịọ arịrịọ /etc/resolv.conf Site na ndabara, a na-ahazi ha ka a na-eme nyocha ndị yiri ya site na iji ụkpụrụ IPv4 na IPv6. Ị nwere ike ịkagbu omume a site na ịgbakwunye nhọrọ single-request в resolv.conf.
Cheta na: glibc enwere ike hazie izipu arịrịọ ndị a n'usoro, yana musl - mba, yabụ ndị ọrụ Alpine kwesịrị ịdeba ama.
Ndots na-anwale
Ka anyị were nwapụta ntakịrị ndots ka anyị hụ ka oke a si akpa agwa. Echiche dị mfe: ndots na-ekpebi ma onye ahịa DNS ga-emeso ngalaba ahụ dị ka ihe zuru oke ma ọ bụ onye ikwu. Dịka ọmụmaatụ, n'ihe gbasara onye ahịa google DNS dị mfe, kedu ka ọ ga-esi mara ma ngalaba a zuru oke? Ọ bụrụ na ịtọọ ndots hà 1, onye ahịa ga-asị: "Oh, in google ọ dịghị otu isi ihe; Echere m na m ga-agafe ndepụta ọchụchọ niile. " Agbanyeghị, ọ bụrụ na ị jụọ google.com, a ga-eleghara ndepụta nke suffixes anya kpamkpam n'ihi na aha a rịọrọ kwekọrọ n'ọnụ ụzọ ndots (enwere ma ọ dịkarịa ala otu isi).
[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
Kemgbe mrkaran ọ dịghị otu isi ihe, a na-eme nchọpụta ahụ n'ofe ndepụta suffixes niile.
Mara: na omume kacha uru ndots naanị 15; na ndabara na Kubernetes ọ bụ 5.
Ngwa na mmepụta
Ọ bụrụ na ngwa na-eme ọtụtụ oku netwọkụ mpụga, DNS nwere ike ịghọ ihe mgbochi n'ihe gbasara okporo ụzọ na-arụ ọrụ, ebe ọ bụ na mkpebi aha na-eme ọtụtụ ajụjụ na-enweghị isi (tupu sistemụ ahụ erute nke ọma). Ngwa anaghị agbakwunye mpaghara mgbọrọgwụ na aha ngalaba, mana nke a dị ka mbanye anataghị ikike. Ya bụ, kama ịjụ api.twitter.com, ị nwere ike hardcode api.twitter.com. (ya na ntụpọ) na ngwa a, nke ga-eme ka ndị ahịa DNS mee nyocha ikike ozugbo na ngalaba zuru oke.
Na mgbakwunye, malite na ụdị Kubernetes 1.14, ndọtị dnsConfig и dnsPolicy nwetara ọnọdụ kwụsiri ike. Ya mere, mgbe ị na-ebugharị pọd, ị nwere ike belata uru ndots, sịnụ, ruo 3 (na ọbụna ruo 1!). N'ihi nke a, ozi ọ bụla dị n'ime ọnụ ga-agụnye ngalaba zuru ezu. Nke a bụ otu n'ime azụmaahịa ama ama mgbe ị ga-ahọrọ n'etiti arụmọrụ na mbugharị. Ọ dị m ka ị ga-echegbu onwe gị naanị maka nke a ma ọ bụrụ na obere latency dị mkpa maka ngwa gị, ebe ọ bụ na echekwara nsonaazụ DNS n'ime.
zoro
M mbụ mụtara banyere atụmatụ a na K8s-nzukọ, emere na Jenụwarị 25. Enwere mkparịta ụka banyere nsogbu a, tinyere ihe ndị ọzọ.
Mara: M họọrọ ịghara iji dig ke ibuotikọ emi. dig na-agbakwụnye ntụpọ na-akpaghị aka (ihe nchọpụta mpaghara mgbọrọgwụ), na-eme ka ngalaba ahụ "tozuru oke" (FQDN), bụghị site na mbụ na-eme ya site na ndepụta ọchụchọ. Dere maka nke a n'ime otu n'ime akwụkwọ ndị gara aga. Otú ọ dị, ọ bụ nnọọ ihe ijuanya na, n'ozuzu, a ga-akọwapụta ọkọlọtọ dị iche maka àgwà ọkọlọtọ.