Lorg DNS ann an Kubernetes

Thoir an aire. eadar-theangachadh.: duilgheadas DNS ann an Kubernetes, no nas mionaidiche, roghainnean paramadair ndots, iongantach mòr-chòrdte, agus mar-thà Chan ann an toiseach a 'bhliadhna. Ann an nota eile air a’ chuspair seo, tha an t-ùghdar aige, innleadair DevOps bho chompanaidh brocaireachd mòr anns na h-Innseachan, a’ bruidhinn ann an dòigh gu math sìmplidh agus pongail mu na tha feumail dha co-obraichean a tha ag obair Kubernetes fios a bhith aca.

Lorg DNS ann an Kubernetes

Is e aon de na prìomh bhuannachdan bho bhith a’ cleachdadh thagraidhean air Kubernetes lorg tagraidh gun fhiosta. Tha eadar-obrachadh taobh a-staigh cruinneachadh air a dhèanamh nas sìmplidhe gu mòr le taing don bhun-bheachd seirbheis (seirbheis), a tha na IP brìgheil a bheir taic do sheata de sheòlaidhean IP pod. Mar eisimpleir, ma tha an t-seirbheis vanilla airson fios a chur chun na seirbheis chocolate, faodaidh e faighinn gu dìreach air an IP brìgheil airson chocolate. Tha a 'cheist ag èirigh: cò anns a' chùis seo a rèiticheas an DNS iarrtas chocolate Agus ciamar?

Tha rùn ainm DNS air a rèiteachadh air cruinneachadh Kubernetes a’ cleachdadh CoreDNS. Bidh Kubelet a’ clàradh pod le CoreDNS mar fhrithealaiche ainm ann am faidhlichean /etc/resolv.conf a h-uile poca. Ma choimheadas tu air an t-susbaint /etc/resolv.conf pod sam bith, seallaidh e rudeigin mar seo:

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

Tha an rèiteachadh seo air a chleachdadh le teachdaichean DNS gus iarrtasan a chuir air adhart chun t-seirbheisiche DNS. Ann am faidhle resolv.conf tha am fiosrachadh a leanas ann:

  • frithealaiche ainmean: frithealaiche dhan tèid iarrtasan DNS a chur. Anns a 'chùis againn, is e seo seòladh seirbheis CoreDNS;
  • rannsachadh: A 'mìneachadh an t-slighe rannsachaidh airson àrainn sònraichte. Tha e inntinneach gu bheil google.com no mrkaran.dev nach eil FQDN (ainmean fearainn làn-theisteanas). A rèir a’ ghnàthachaidh àbhaisteach a tha a’ mhòr-chuid de luchd-rèiteachaidh DNS a’ leantainn, is e dìreach an fheadhainn a thig gu crìch le dot “.”, a’ riochdachadh an raon freumh, a thathas a’ beachdachadh air raointean làn-teisteanas (FDQN). Faodaidh cuid de luchd-rèiteachaidh puing a chuir iad fhèin. Mar sin, mrkaran.dev. an t-ainm àrainn làn-teisteanasach (FQDN), agus mrkaran.dev - Chan eil;
  • sgothan: Am paramadair as inntinniche (tha an artaigil seo mu dheidhinn). ndots a’ sònrachadh àireamh stairsneach nan dotagan ann an ainm iarrtas mus tèid a mheas mar ainm àrainn “làn-theisteanas”. Bruidhnidh sinn barrachd mu dheidhinn seo nas fhaide air adhart nuair a nì sinn mion-sgrùdadh air an t-sreath lorg DNS.

Lorg DNS ann an Kubernetes

Chì sinn dè thachras nuair a dh'fhaighnicheas sinn mrkaran.dev ann am 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

Airson an deuchainn seo, shuidhich mi ìre logaidh CoreDNS gu all (a tha ga dhèanamh gu math briathrach). Bheir sinn sùil air logaichean a 'phoit 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. Bidh dà rud a’ tarraing d’ aire an seo:

  • Bidh an t-iarrtas a’ dol tro gach ìre den rannsachadh gus am bi an còd anns an fhreagairt NOERROR (Bidh luchd-dèiligidh DNS ga thuigsinn agus ga stòradh mar thoradh air an sin). NXDOMAIN ciallachadh nach deach clàr sam bith a lorg airson an ainm àrainn a chaidh a thoirt seachad. Air sgàth gu bheil an mrkaran.dev chan e ainm FQDN a th’ ann (a rèir ndots=5), solver a 'coimhead air an t-slighe rannsachaidh agus a' dearbhadh an òrdugh iarrtasan;
  • Postan А и АААА tighinn ann an co-shìnte. Is e an fhìrinn gu bheil iarrtasan aon-ùine a-steach /etc/resolv.conf Gu gnàthach, tha iad air an rèiteachadh ann an dòigh gus an tèid rannsachaidhean co-shìnte a dhèanamh a’ cleachdadh protocolaidhean IPv4 agus IPv6. Faodaidh tu an giùlan seo a chuir dheth le bhith a’ cur an roghainn ris single-request в resolv.conf.

Note: glibc faodar a rèiteachadh gus na h-iarrtasan sin a chuir an òrdugh, agus musl - chan e, mar sin bu chòir do luchd-cleachdaidh Alpach aire a thoirt.

A’ feuchainn le ndots

Feuchaidh sinn beagan a bharrachd leis ndots agus chì sinn mar a tha am paramadair seo gad ghiùlan fhèin. Tha am beachd sìmplidh: ndots a’ dearbhadh an dèilig an neach-dèiligidh DNS ris an àrainn mar iomlan no càirdeach. Mar eisimpleir, a thaobh neach-dèiligidh sìmplidh google DNS, ciamar a tha fios aige a bheil an raon seo iomlan? Ma shuidhicheas tu ndots co-ionann ri 1, canaidh an neach-dèiligidh: “O, in google chan eil aon phuing ann; Tha mi creidsinn gun tèid mi tron ​​​​liosta sgrùdaidh gu lèir." Ge-tà, ma dh'iarras tu google.com, thèid an liosta iar-leasachan a leigeil seachad gu tur leis gu bheil an t-ainm a chaidh iarraidh a’ coinneachadh ris an stairsnich ndots (tha co-dhiù aon phuing ann).

Dèanamaid cinnteach à seo:

$ 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

Logaichean 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

Bhon a-staigh mrkaran chan eil aon phuing ann, chaidh an sgrùdadh a dhèanamh thairis air an liosta iomlan de iar-leasachain.

Nota: ann an cleachdadh an luach as àirde ndots cuingealaichte gu 15; gu gnàthach ann an Kubernetes is e 5 a th’ ann.

Iarrtas ann an riochdachadh

Ma nì tagradh mòran gairmean lìonra bhon taobh a-muigh, faodaidh DNS a bhith na chnap-starra a thaobh trafaic gnìomhach, leis gu bheil fuasgladh ainm a ’dèanamh mòran cheistean neo-riatanach (mus ruig an siostam am fear ceart). Mar as trice cha bhith tagraidhean a’ cur sòn freumh ri ainmean fearainn, ach tha seo coltach ri hac. Is e sin, an àite a bhith a’ faighneachd api.twitter.com, faodaidh tu còd cruaidh api.twitter.com. (le dot) san tagradh, a bhrosnaicheas teachdaichean DNS gus rannsachaidhean ùghdarrasach a dhèanamh gu dìreach air an raon iomlan.

A bharrachd air an sin, a ’tòiseachadh le dreach Kubernetes 1.14, leudachain dnsConfig и dnsPolicy fhuair inbhe seasmhach. Mar sin, nuair a bhios tu a’ cleachdadh pod, faodaidh tu an luach a lughdachadh ndots, can, suas ri 3 (agus eadhon suas gu 1!). Air sgàth seo, feumaidh a h-uile teachdaireachd taobh a-staigh nód an raon iomlan a ghabhail a-steach. Is e seo aon de na malairtean clasaigeach nuair a dh'fheumas tu taghadh eadar coileanadh agus comas giùlain. Tha e coltach riumsa nach bu chòir dhut a bhith draghail mu dheidhinn seo ach ma tha latency ultra-ìosal deatamach don tagradh agad, leis gu bheil toraidhean DNS cuideachd air an tasgadh a-staigh.

iomraidhean

Dh’ ionnsaich mi mun fheart seo an toiseach air K8s-coinneachadh, air a chumail air 25 Faoilleach. Bha deasbad ann mun duilgheadas seo, am measg rudan eile.

Seo cuid de na ceanglaichean airson tuilleadh sgrùdaidh:

Nota: Thagh mi gun a bhith ga chleachdadh dig san artaigil seo. dig cuiridh e dot gu fèin-ghluasadach (aithnichear sòn freumh), a’ dèanamh an àrainn “làn theisteanas” (FQDN), chan eil le bhith ga ruith tron ​​​​liosta sgrùdaidh an-toiseach. Sgrìobh mu dheidhinn seo ann an aon de na foillseachaidhean roimhe. Ach, tha e na iongnadh gu bheil, san fharsaingeachd, bratach air leth a bhith air a shònrachadh airson an giùlan àbhaisteach.

DNSing sona dhut! Chì mi fhathast thu!

PS bhon eadar-theangair

Leugh cuideachd air ar blog:

Source: www.habr.com

Cuir beachd ann