Fanamarihana. transl.: Olana DNS ao amin'ny Kubernetes, na ny marimarina kokoa, firafitry ny paramètre ndots, dia mahagaga malaza, ary efa Tsy voalohanyny 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.
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:
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.
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).
[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.