نوټ. ژباړه: په Kubernetes کې د DNS ستونزه، یا په سمه توګه، د پیرامیټ ترتیبات ndots
، په حیرانتیا سره مشهور دی، او دمخه
په کبرنیټس کې د غوښتنلیکونو پلي کولو یوه له اصلي ګټو څخه د بې سیمه غوښتنلیک کشف کول دي. د انټرا کلستر تعامل خورا ساده شوی د خدماتو مفهوم څخه مننه (vanilla
غواړي له خدمت سره اړیکه ونیسي chocolate
، دا کولی شي مستقیم د دې لپاره مجازی IP ته لاسرسی ومومي chocolate
. پوښتنه راپورته کیږي: څوک به پدې حالت کې د DNS غوښتنه حل کړي chocolate
او څنګه؟
د DNS نوم ریزولوشن د Kubernetes کلستر په کارولو سره تنظیم شوی /etc/resolv.conf
ټول پوزې که تاسو محتويات وګورئ /etc/resolv.conf
هر پوډ، دا به داسې ښکاري:
search hello.svc.cluster.local svc.cluster.local cluster.local
nameserver 10.152.183.10
options ndots:5
دا ترتیب د DNS پیرودونکو لخوا د DNS سرور ته غوښتنې لیږلو لپاره کارول کیږي. په دوتنه کې resolv.conf
لاندې معلومات لري:
- نوم سرور: سرور چې د DNS غوښتنې به لیږل کیږي. زموږ په قضیه کې، دا د CoreDNS خدمت پته ده؛
- لټون: د ځانګړي ډومین لپاره د لټون لاره تعریفوي. دا په زړه پورې ده چې
google.com
او یاmrkaran.dev
FQDN نه دي (په بشپړ ډول وړ ډومین نومونه ). د معیاري کنوانسیون له مخې چې ډیری DNS حل کونکي یې تعقیبوي، یوازې هغه څوک چې د نقطې سره پای ته رسیږي ". ځینې حل کونکي کولی شي پخپله یو ټکی اضافه کړي. په دې توګه،mrkaran.dev.
د بشپړ وړ ډومین نوم (FQDN) دی، اوmrkaran.dev
- نه؛ - ndots: ترټولو په زړه پورې پیرامیټر (دا مقاله د دې په اړه ده).
ndots
مخکې له دې چې د "بشپړ وړ" ډومین نوم وګڼل شي د غوښتنې نوم کې د نقطو حد شمیره مشخصوي. موږ به وروسته د دې په اړه نور خبرې وکړو کله چې موږ د DNS لټون ترتیب تحلیل کړو.
راځئ وګورو چې څه پیښیږي کله چې موږ پوښتنه وکړو mrkaran.dev
په پوزه کې:
$ 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
د دې تجربې لپاره، ما د CoreDNS د ننوتلو کچه ترتیب کړه all
(کوم چې دا خورا لفظي کوي). راځئ چې د پوډ لوګو ته وګورو 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
اوف دلته دوه شیان ستاسو پام ځانته را اړوي:
- غوښتنه د لټون ټولو مرحلو څخه تیریږي تر هغه چې ځواب کوډ ولري
NOERROR
(د DNS پیرودونکي پدې پوهیږي او د پایلې په توګه یې ذخیره کوي).NXDOMAIN
پدې معنی چې د ورکړل شوي ډومین نوم لپاره هیڅ ریکارډ ندی موندل شوی. ځکه چې دmrkaran.dev
د FQDN نوم ندی (په ویناndots=5
)، حل کونکی د لټون لاره ګوري او د غوښتنو ترتیب ټاکي؛ - پوسټونه
А
иАААА
په موازي توګه راشي. حقیقت دا دی چې یو وخت غوښتنه کوي/etc/resolv.conf
په ډیفالټ ډول، دوی په داسې ډول ترتیب شوي چې موازي لټونونه د IPv4 او IPv6 پروتوکولونو په کارولو سره ترسره کیږي. تاسو کولی شئ دا چلند د اختیار په اضافه کولو سره لغوه کړئsingle-request
вresolv.conf
.
نوټ: glibc
په ترتیب سره دا غوښتنې لیږلو لپاره تنظیم کیدی شي، او musl
- نه، نو د الپین کاروونکي باید یادونه وکړي.
د ndots سره تجربه کول
راځئ چې لږ نور تجربه وکړو ndots
او راځئ وګورو چې دا پیرامیټر څنګه چلند کوي. نظر ساده دی: ndots
ټاکي چې ایا د DNS پیرودونکي به د ډومین سره د مطلق یا اړوند په توګه چلند وکړي. د مثال په توګه، د ساده google DNS پیرودونکي په صورت کې، دا څنګه پوهیږي چې دا ډومین مطلق دی؟ که تاسو ترتیب کړئ ndots
د 1 سره مساوي، پیرودونکي به ووایي: "او، په کې google
یو ټکی نشته؛ زه فکر کوم چې زه به د ټول لټون لیست ته لاړ شم. په هرصورت، که تاسو پوښتنه وکړئ google.com
د لاحقو لیست به په بشپړه توګه له پامه غورځول شي ځکه چې غوښتل شوي نوم د حد سره سمون لري ndots
(لږترلږه یو ټکی شتون لري).
راځئ چې دا ډاډ ترلاسه کړو:
$ 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
له هغه راهیسې mrkaran
دلته یو ټکی نشته، لټون د ضمیمو په ټول لیست کې ترسره شوی.
یادونه: په عمل کې اعظمي ارزښت ndots
تر 15 پورې محدود؛ په Kubernetes کې د ډیفالټ له مخې دا 5 دی.
په تولید کې غوښتنلیک
که چیرې یو غوښتنلیک ډیری بهرنۍ شبکې تلیفونونه وکړي، DNS کولی شي د فعال ټرافیک په حالت کې خنډ شي، ځکه چې د نوم حل ډیری غیر ضروري پوښتنې رامینځته کوي (مخکې له دې چې سیسټم سمې ته ورسیږي). غوښتنلیکونه معمولا د ډومین نومونو ته د روټ زون نه اضافه کوي، مګر دا د هیک په څیر ښکاري. یعنی د پوښتنی پر ځای api.twitter.com
، تاسو کولی شئ هارډ کوډ وکړئ api.twitter.com.
(د یوې نقطې سره) په غوښتنلیک کې، کوم چې به د DNS مراجعینو ته وهڅوي چې مستند لیدونه مستقیم په مطلق ډومین کې ترسره کړي.
سربیره پردې، د Kubernetes نسخه 1.14 سره پیل کول، غزول dnsConfig
и dnsPolicy
باثباته حالت ترلاسه کړ. پدې توګه ، کله چې د پوډ ځای په ځای کول ، تاسو کولی شئ ارزښت کم کړئ ndots
، ووایه تر 3 پورې (او حتی تر 1 پورې!). د دې له امله، په نوډ کې هر پیغام باید بشپړ ډومین شامل کړي. دا یو له کلاسیک تجارت څخه دی کله چې تاسو باید د فعالیت او پورټ وړتیا تر مینځ غوره کړئ. ماته داسې ښکاري چې تاسو باید یوازې د دې په اړه اندیښنه ولرئ که چیرې خورا ټیټ ځنډ ستاسو غوښتنلیک لپاره حیاتي وي ، ځکه چې د DNS پایلې هم په داخلي توګه زیرمه شوي.
مرجع
ما په لومړي ځل د دې خصوصیت په اړه زده کړل
دلته د نورو سپړنې لپاره ځینې لینکونه دي:
-
تشریح ولې ndots=5 په Kubernetes کې؛ -
عالي توکي څنګه د ndots بدلول د غوښتنلیک فعالیت اغیزه کوي؛ -
توپیرونه د musl او glibc حل کونکو ترمنځ.
یادونه: ما نه کارول غوره کړل dig
پدې مقاله کې. dig
په اوتومات ډول یو نقطه اضافه کوي (د روټ زون پیژندونکی)، ډومین "بشپړ وړ" (FQDN) جوړوي، نه لومړی د لټون لیست له لارې دا په چلولو سره. په دې اړه یې لیکلي
خوشحاله DNSing! وروسته به سره ګورو!
PS د ژباړونکي څخه
زموږ په بلاګ کې هم ولولئ:
- «
کالیکو په کوبرنیټس کې د شبکې لپاره: پیژندنه او لږ تجربه » - «
CoreDNS - د کلاوډ اصلي نړۍ لپاره DNS سرور او د Kubernetes لپاره د خدماتو کشف » - "کوبرنیټس کې د شبکې جوړولو لپاره یو انځور شوی لارښود":
1 او 2 برخې (د شبکې ماډل، پوښښ شبکې) ,دریمه برخه (خدمات او ترافیک پروسس کول) .
سرچینه: www.habr.com