Fikarohana DNS ao amin'ny Kubernetes

Fanamarihana. transl.: Olana DNS ao amin'ny Kubernetes, na ny marimarina kokoa, firafitry ny paramètre ndots, dia mahagaga malaza, ary efa Tsy voalohany ny taona. Ao amin'ny fanamarihana iray hafa momba ity lohahevitra ity, ny mpanoratra azy, injeniera DevOps avy amin'ny orinasa brokerage lehibe iray any India, dia miresaka amin'ny fomba tena tsotra sy fohy momba ny zavatra mahasoa ho fantatry ny mpiara-miasa miasa Kubernetes.

Fikarohana DNS ao amin'ny Kubernetes

Iray amin'ireo tombontsoa lehibe amin'ny fametrahana rindranasa ao amin'ny Kubernetes ny fahitana fampiharana tsy misy olana. Ny fifandraisana amin'ny vondrona dia nohamafisina tanteraka noho ny foto-kevitry ny serivisy (Service), izay IP virtoaly izay manohana andiana adiresy IP pod. Ohatra, raha ny serivisy vanilla te hifandray amin'ny serivisy chocolate, afaka miditra mivantana amin'ny IP virtoaly ho an'ny chocolate. Mipetraka ny fanontaniana: iza amin'ity tranga ity no hamaha ny fangatahana DNS chocolate Ary ahoana?

Ny famaha ny anaran'ny DNS dia amboarina amin'ny kluster Kubernetes mampiasa CoreDNS. Kubelet dia manoratra pod miaraka amin'ny CoreDNS ho mpizara anarana amin'ny rakitra /etc/resolv.conf ny pods rehetra. Raha jerena ny votoatiny /etc/resolv.conf na inona na inona pod, dia ho toy izao manaraka izao:

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

Ity fandrindrana ity dia ampiasain'ny mpanjifa DNS handefasana fangatahana amin'ny mpizara DNS. Ao anaty rakitra resolv.conf ahitana ireto fampahalalana manaraka ireto:

  • nameserver: mpizara izay handefasana ny fangatahana DNS. Amin'ity tranga ity, ity no adiresin'ny serivisy CoreDNS;
  • fikarohana: Mamaritra ny lalan'ny fikarohana ho an'ny sehatra iray manokana. Mahaliana izany google.com na mrkaran.dev tsy FQDN (anarana domaine mahafeno fepetra). Araka ny fifanarahana manara-penitra izay arahin'ny ankamaroan'ny mpamaham-bolongana DNS, ireo izay mifarana amin'ny teboka ".", izay misolo tena ny faritra faka, no heverina ho sehatra mahafeno fepetra (FDQN). Ny mpanapa-kevitra sasany dia afaka manampy teboka ny tenany. Noho izany, mrkaran.dev. dia ny anaran-tsehatra feno (FQDN), ary mrkaran.dev - Tsia;
  • dots: Ny mari-pamantarana mahaliana indrindra (miresaka momba izany ity lahatsoratra ity). ndots mamaritra ny isan'ny teboka amin'ny anaran'ny fangatahana alohan'ny hiheverana azy ho anarana sehatra "mahafeno fepetra". Hiresaka bebe kokoa momba izany isika any aoriana rehefa mandinika ny filaharan'ny fitadiavana DNS.

Fikarohana DNS ao amin'ny Kubernetes

Andeha hojerentsika izay mitranga rehefa manontany isika mrkaran.dev amin'ny 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

Ho an'ity fanandramana ity dia nametraka ny haavon'ny logging CoreDNS aho all (izay mahatonga azy io ho tena verbose). Andeha hojerentsika ny diarin'ny pod 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. Zavatra roa no mahasarika ny sainao eto:

  • Ny fangatahana dia mandalo amin'ny dingana rehetra amin'ny fikarohana mandra-pahatongan'ny valiny misy ny kaody NOERROR (Ny mpanjifa DNS dia mahazo izany ary mitahiry izany ho vokany). NXDOMAIN midika fa tsy nisy firaketana hita ho an'ny anaran-tsehatra nomena. Satria ny mrkaran.dev dia tsy anarana FQDN (araka ny ndots=5), ny solver dia mijery ny lalan'ny fikarohana ary mamaritra ny filaharan'ny fangatahana;
  • noraisim-peo А и АААА tonga mifanitsy. Ny zava-misy dia ny fangatahana indray mandeha /etc/resolv.conf Amin'ny alàlan'ny default, izy ireo dia amboarina amin'ny fomba izay anaovana fikarohana mifanitsy amin'ny alàlan'ny protocols IPv4 sy IPv6. Azonao atao ny manafoana ity fihetsika ity amin'ny fanampiana ny safidy single-request в resolv.conf.

Fanamarihana: glibc azo amboarina handefasana ireo fangatahana ireo misesy, ary musl - Tsia, noho izany dia tokony handray an-tsoratra ny mpampiasa Alpine.

Fanandramana amin'ny ndots

Andeha isika hanandrana bebe kokoa ndots ary andeha hojerentsika ny fitondran-tenan'io paramèter io. Tsotra ny hevitra: ndots mamaritra raha ny mpanjifa DNS dia hitondra ny sehatra ho tanteraka na havana. Ohatra, amin'ny trangan'ny mpanjifa Google DNS tsotra, ahoana no ahafantarany raha toa ka tanteraka io sehatra io? Raha mametraka ianao ndots mitovy amin'ny 1, ny mpanjifa dia hiteny hoe: "Oh, in google tsy misy teboka iray; Heveriko fa handeha hamaky ny lisitry ny fikarohana manontolo aho. " Na izany aza, raha manontany ianao google.com, ny lisitry ny tovana dia tsy hiraharaha tanteraka satria ny anarana nangatahana dia mahafeno ny tokonam-baravarana ndots (misy teboka iray farafahakeliny).

Andeha hojerentsika izao:

$ 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

CoreDNS logs:

[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

Hatramin'ny mrkaran tsy misy teboka iray, ny fikarohana dia natao manerana ny lisitry ny tovana rehetra.

Fanamarihana: amin'ny fampiharana ny sanda ambony indrindra ndots voafetra ho 15; amin'ny alàlan'ny default ao amin'ny Kubernetes dia 5 izany.

Fampiharana amin'ny famokarana

Raha manao antso an-tambajotra ivelany be dia be ny fampiharana iray, dia mety ho lasa sakana ny DNS amin'ny trangan'ny fifamoivoizana mavitrika, satria ny famahana ny anarana dia miteraka fanontaniana tsy ilaina (alohan'ny hahatongavan'ny rafitra ho amin'ny tsara). Matetika ny fampiharana dia tsy manampy faritra faka amin'ny anaran-tsehatra, fa toa hack ihany izany. Izany hoe, fa tsy manontany api.twitter.com, azonao atao ny 'hardcode' azy api.twitter.com. (miaraka amin'ny teboka) ao amin'ny rindranasa, izay hanosika ny mpanjifa DNS hanao fikarohana ara-dalàna mivantana amin'ny sehatra tanteraka.

Fanampin'izany, manomboka amin'ny Kubernetes version 1.14, fanitarana dnsConfig и dnsPolicy nahazo sata stable. Noho izany, rehefa mametraka pod ianao dia afaka mampihena ny sandany ndots, lazao, hatramin'ny 3 (ary hatramin'ny 1 aza!). Noho izany, ny hafatra rehetra ao anatin'ny node iray dia tsy maintsy mampiditra ny sehatra feno. Ity dia iray amin'ireo varotra mahazatra rehefa tsy maintsy misafidy eo amin'ny fampisehoana sy ny portable ianao. Amiko dia tokony hanahy momba izany ianao raha tena ilaina amin'ny fampiharanao ny latency faran'izay ambany, satria ny valin'ny DNS dia voatahiry ao anatiny ihany koa.

soratra masina

Nianatra momba an'io endri-javatra io aho tamin'ny K8s-fihaonana, natao ny 25 Janoary. Nisy ny adihevitra momba ity olana ity, ankoatra ny zavatra hafa.

Ireto misy rohy vitsivitsy ho fikarohana fanampiny:

  • fanazavana, maninona no ndots=5 ao amin'ny Kubernetes;
  • Zavatra lehibe ny fiantraikan'ny fiovan'ny dotts amin'ny fahombiazan'ny fampiharana;
  • mifanohitra eo anelanelan'ny musl sy glibc solvers.

Fanamarihana: Nisafidy ny tsy hampiasa aho dig ato amin'ity lahatsoratra ity. dig manampy teboka ho azy (famantarana faritra faka), ka mahatonga ny sehatra "mahafeno fepetra" (FQDN), tsy amin'ny alàlan'ny fandefasana azy voalohany amin'ny lisitry ny fikarohana. Nanoratra momba izany tao amin'ny iray amin'ireo fanontana teo aloha. Na izany aza, dia mahagaga fa, amin'ny ankapobeny, dia tsy maintsy voafaritra saina manokana ho an'ny fitondran-tena mahazatra.

Happy DNSing! Rehefa avy eo!

PS avy amin'ny mpandika teny

Vakio ihany koa ao amin'ny bilaoginay:

Source: www.habr.com

Add a comment