ProHoster > ΠΠ»ΠΎΠ³ > Pagdumala > /etc/resolv.conf para sa mga Kubernetes pod, ndots:5 nga opsyon, sa unsang paagi kini negatibong makaapekto sa performance sa aplikasyon
/etc/resolv.conf para sa mga Kubernetes pod, ndots:5 nga opsyon, sa unsang paagi kini negatibong makaapekto sa performance sa aplikasyon
Bag-o lang namon gilusad ang Kubernetes 1.9 sa AWS gamit ang Kops. Kagahapon, samtang hapsay nga nagpadagan sa bag-ong trapiko sa labing kadaghan sa among mga kumpol sa Kubernetes, nagsugod ako nga nakamatikod sa dili kasagaran nga mga sayup sa resolusyon sa ngalan sa DNS nga na-log sa among aplikasyon.
Adunay daghan bahin niini sa GitHub nagsulti, mao nga nakahukom ko nga mahibal-an usab kini. Sa katapusan, nakaamgo ko nga sa among kaso kini tungod sa dugang nga load sa kube-dns ΠΈ dnsmasq. Ang labing makapaikag ug bag-o nga butang alang kanako mao ang hinungdan sa hinungdanon nga pagtaas sa trapiko sa hangyo sa DNS. Ang akong post bahin niini ug kung unsa ang buhaton bahin niini.
Ang resolusyon sa DNS sulod sa sudlanan - sama sa bisan unsang sistema sa Linux - gitino sa configuration file /etc/resolv.conf. Default nga Kubernetes dnsPolicy kini ClusterFirst, nga nagpasabot nga ang bisan unsang hangyo sa DNS ipasa ngadto dnsmasq, nagdagan sa usa ka pod kube-dns sulod sa cluster, nga sa baylo ipadala ang hangyo ngadto sa aplikasyon kube-dns, kung ang ngalan matapos sa usa ka cluster suffix, o, kung dili, sa mas taas nga lebel sa DNS server.
file /etc/resolv.conf sulod sa matag sudlanan ang default tan-awon sama niini:
Sama sa imong makita, adunay tulo ka mga direktiba:
Ang name server mao ang IP sa serbisyo kube-dns
Gipiho ang 4 ka lokal nga domain sa pagpangita search
Adunay usa ka kapilian ndots:5
Ang makaiikag nga bahin niini nga configuration mao ang paagi sa lokal nga pagpangita sa mga domain ug mga setting ndots:5 mag uban. Aron masabtan kini, kinahanglan nimong masabtan kung giunsa ang resolusyon sa DNS alang sa dili kwalipikado nga mga ngalan molihok.
Unsa ang tibuok nga ngalan?
Ang usa ka hingpit nga kwalipikado nga ngalan usa ka ngalan nga walaβy lokal nga pagpangita nga himuon ug ang ngalan maisip nga hingpit sa panahon sa resolusyon sa ngalan. Pinaagi sa kombensyon, ang DNS software nag-isip sa usa ka ngalan nga hingpit nga kwalipikado kung kini matapos sa usa ka tulbok (.), ug dili hingpit nga kwalipikado kung dili. Kana mao google.com. hingpit nga gihubit ug google.com - Dili.
Giunsa pagdumala ang usa ka dili kwalipikado nga ngalan?
Kung ang usa ka aplikasyon magkonektar sa hilit nga host nga gitakda sa ngalan, ang resolusyon sa ngalan sa DNS kasagarang gihimo gamit ang usa ka tawag sa sistema, pananglitan. getaddrinfo(). Apan kung ang ngalan dili kwalipikado (dili matapos sa .), Naghunahuna ko kung ang sistema nga tawag mosulay sa pagsulbad sa ngalan ingon usa ka hingpit nga ngalan una, o moagi una sa lokal nga mga domain sa pagpangita? Nagdepende kini sa kapilian ndots.
Kini nagpasabot nga kon alang sa ndots gihatagan og bili nga 5 ug ang ngalan adunay ubos sa 5 ka tuldok, ang sistema sa tawag mosulay sa pagsulbad niini nga sunud-sunod, una nga moagi sa tanang lokal nga mga domain sa pagpangita, ug, kon dili molampos, sa katapusan masulbad kini isip usa ka hingpit nga ngalan.
Ngano diay ndots:5 mahimo ba kini nga negatibo nga makaapekto sa performance sa aplikasyon?
Sama sa imong mahanduraw, kung ang imong aplikasyon naggamit og daghang eksternal nga trapiko, alang sa matag koneksyon sa TCP nga natukod (o mas tukma, alang sa matag ngalan nga nasulbad), kini mag-isyu sa 5 ka DNS nga mga pangutana sa dili pa ang ngalan masulbad sa husto, tungod kay kini moagi una. 4 lokal nga domain sa pagpangita, ug sa katapusan mag-isyu sa usa ka hingpit nga hangyo sa resolusyon sa ngalan.
Ang mosunod nga tsart nagpakita sa kinatibuk-ang trapiko sa among 3 kube-dns modules sa wala pa ug human namo gibalhin ang pipila ka mga hostname nga gi-configure sa among aplikasyon ngadto sa hingpit nga mga kwalipikado.
Ang mosunud nga diagram nagpakita sa latency sa aplikasyon sa wala pa ug pagkahuman gibalhin namon ang daghang mga hostname nga gi-configure sa among aplikasyon sa tibuuk nga mga ngalan (ang bertikal nga asul nga linya mao ang pag-deploy):
Solusyon #1 - Paggamit ug hingpit nga kwalipikado nga mga ngalan
Kung ikaw adunay pipila ka mga static nga eksternal nga mga ngalan (pananglitan gihubit sa configuration sa aplikasyon) diin naghimo ka og daghang gidaghanon sa mga koneksyon, tingali ang pinakasimple nga solusyon mao ang pagbalhin kanila ngadto sa hingpit nga mga kwalipikado pinaagi lamang sa pagdugang niini. sa katapusan.
Dili kini usa ka katapusang solusyon, apan makatabang kini nga dali, bisan kung dili limpyo, mapaayo ang kahimtang. Gi-apply namo kini nga patch aron masulbad ang among problema, ang mga resulta niini gipakita sa mga screenshot sa ibabaw.
Solusyon #2 - pag-customize ndots Π² dnsConfig
Sa Kubernetes 1.9, ang functionality nagpakita sa alpha mode (beta version v1.10), nga nagtugot kanimo nga mas makontrol ang DNS parameters pinaagi sa pod property sa dnsConfig. Lakip sa ubang mga butang, kini nagtugot kanimo sa pag-configure sa bili ndots alang sa usa ka piho nga pod, i.e.