Nyochaa DNS na Kubernetes

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.

Nyochaa DNS na Kubernetes

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:

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

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.

Nyochaa DNS na Kubernetes

Ka anyị hụ ihe na-eme mgbe anyị jụrụ ya mrkaran.dev na pọd:

$ 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

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).

Ka anyị hụ nke a:

$ 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

Ihe ndekọ 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

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ọ.

Nke a bụ ụfọdụ njikọ maka nyocha ọzọ:

  • Nkọwa, gịnị kpatara ndots=5 na Kubernetes;
  • Ezigbo ihe ka mgbanwe ndots si emetụta arụmọrụ ngwa;
  • Ndiiche n'etiti musl na glibc dozie.

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ọ.

Ezi DNS! Ka ahụ ma emechaa!

PS sitere na onye ntụgharị

Gụọkwa na blọọgụ anyị:

isi: www.habr.com

Tinye a comment