نوټ. ژباړه: دا مقاله چې د LinkedIn څخه د SRE انجنیر لخوا لیکل شوې، په Kubernetes کې د داخلي جادو په اړه توضیحاتو ته ځي - په دقیق ډول، د CRI، CNI او kube-apiserver متقابل عمل - دا هغه وخت پیښیږي کله چې راتلونکی پوډ د IP پتې ته اړتیا ولري.
یو له بنسټیزو اړتیاو څخه
کله چې ما د لومړي ځل لپاره د Kubernetes سره کار پیل کړ، دا زما لپاره په بشپړه توګه روښانه نه وه چې څنګه پوډونه خپل IP پتې ترلاسه کوي. حتی د دې پوهیدلو سره چې انفرادي اجزا څنګه کار کوي، دا ستونزمنه وه چې تصور وکړئ چې دوی یوځای کار کوي. د مثال په توګه، زه پوهیدم چې د CNI پلگ ان د څه لپاره دي، مګر زه نه پوهیږم چې دوی څنګه ویل کیږي. له همدې امله ، ما پریکړه وکړه چې دا مقاله ولیکئ ترڅو د مختلف شبکې اجزاو په اړه پوهه شریک کړئ او دا چې څنګه دوی د کوبرنیټس کلستر کې یوځای کار کوي ، کوم چې هر پوډ ته اجازه ورکوي خپل ځانګړي IP پته ترلاسه کړي.
په Kubernetes کې د شبکې تنظیم کولو مختلفې لارې شتون لري، لکه څنګه چې د کانټینرونو لپاره د چلولو مختلف انتخابونه شتون لري. دا خپرونه به کاروي
ځینې بنسټیز مفهومونه
کانټینرونه او شبکه: یوه لنډه کتنه
په انټرنیټ کې ډیری غوره خپرونې شتون لري چې تشریح کوي چې څنګه کانټینرونه په شبکه کې یو بل سره اړیکه نیسي. له همدې امله، زه به یوازې د بنسټیزو مفاهیمو عمومي کتنه وړاندې کړم او ځان به یوې تګلارې ته محدود کړم، کوم چې د لینکس پل جوړول او د کڅوړو سمبالول شامل دي. توضیحات پریښودل شوي ، ځکه چې د کانټینر شبکې موضوع پخپله د جلا مقالې مستحق ده. د ځینو په ځانګړي ډول بصیرت لرونکي او تعلیمي خپرونو لینکونه به لاندې چمتو شي.
کانټینرونه په یوه کوربه کې
په ورته کوربه کې د کانټینرونو ترمینځ د IP پتې له لارې د اړیکو تنظیم کولو یوه لاره د لینکس پل رامینځته کول شامل دي. د دې هدف لپاره ، مجازی وسیلې په کبرنیټس (او ډاکر) کې رامینځته شوي
په ورته کوربه کې ټول کانټینرونه د ویت یوه پایه لري چې د پل سره وصل وي چې له لارې دوی کولی شي د IP پتې له لارې یو بل سره اړیکه ونیسي. د لینکس پل هم یو IP پته لري او د نورو نوډونو لپاره ټاکل شوي پوډونو څخه د وتلو ترافیک لپاره د دروازې په توګه کار کوي.
کانټینرونه په مختلف کوربه کې
د بسته بندۍ یوه طریقه ده چې په مختلفو نوډونو کې کانټینرونو ته اجازه ورکوي چې د IP پتې په کارولو سره یو بل سره اړیکه ونیسي. په فلانیل کې، ټیکنالوژي د دې فرصت مسولیت لري.
د کبرنیټس کلستر کې، فلانیل د vxlan وسیله رامینځته کوي او په هر نوډ کې د روټ جدول د مطابق مطابق تازه کوي. هر پاکټ چې په مختلف کوربه کې د کانټینر لپاره ټاکل شوی د vxlan وسیلې څخه تیریږي او په UDP کڅوړه کې پوښل کیږي. په منزل کې، ځړول شوی کڅوړه ایستل کیږي او مطلوب پوډ ته لیږل کیږي.
یادونه: دا د کانټینرونو ترمنځ د شبکې اړیکو تنظیم کولو لپاره یوازې یوه لاره ده.
CRI څه شی دی؟
CNI څه شی دی؟
پوډونو ته د IP پتې ټاکلو لپاره نوډونو ته د فرعي نیټونو تخصیص
څرنګه چې په کلستر کې هر پوډ باید د IP پته ولري، نو دا مهمه ده چې ډاډ ترلاسه کړئ چې دا پته ځانګړې ده. دا هر نوډ ته د یو ځانګړي فرعي نیټ په ورکولو سره ترلاسه کیږي ، له کوم څخه چې پدې نوډ کې پوډونه بیا IP پتې ټاکل کیږي.
نوډ IPAM کنټرولر
کله چې nodeipam
د بیرغ پیرامیټر په توګه تیر شوی --controllers
د Kubernetes نوډ د پوډ CIDR ټاکل کیږي کله چې دا په پیل کې د کلستر سره راجستر شوی وي. د نوډونو پوډ CIDR بدلولو لپاره، تاسو اړتیا لرئ چې دوی راجستر کړئ او بیا یې راجستر کړئ، په منځ کې د Kubernetes کنټرول پرت ترتیب کې مناسب بدلونونه رامینځته کړئ. تاسو کولی شئ د لاندې کمانډ په کارولو سره د نوډ پوډ CIDR ښکاره کړئ:
$ kubectl get no <nodeName> -o json | jq '.spec.podCIDR'
10.244.0.0/24
کوبیلیټ، د کانټینر چلولو وخت او د CNI پلگ ان: دا ټول څنګه کار کوي
په هر نوډ کې د پوډ مهالویش کول ډیری چمتوالي ګامونه لري. پدې برخه کې، زه به یوازې په هغو کسانو تمرکز وکړم چې په مستقیم ډول د پوډ شبکې ترتیب کولو پورې تړاو لري.
یو ځانګړي نوډ ته د پوډ مهالویش کول د پیښو لاندې سلسله رامینځته کوي:
مرسته:
د کانټینر چلولو وخت او CNI پلگ انونو ترمینځ تعامل
د شبکې هر چمتو کونکی خپل CNI پلگ ان لري. د کانټینر چلولو وخت دا چلوي ترڅو د پوډ لپاره شبکه تنظیم کړي لکه څنګه چې دا پیل کیږي. د کانټینرډ په حالت کې، د CNI پلگ ان د پلگ ان لخوا پیل شوی
سربیره پردې، هر وړاندیز کوونکی خپل استازی لري. دا په ټولو Kubernetes نوډونو کې نصب شوی او د پوډونو د شبکې ترتیب لپاره مسؤل دی. دا اجنټ یا د CNI ترتیب سره شامل دی یا په خپلواک ډول په نوډ کې رامینځته کوي. ترتیب د CRI پلگ ان سره مرسته کوي چې کوم CNI پلگ ان ته زنګ ووهي.
د CNI ترتیب موقعیت دودیز کیدی شي؛ په ډیفالټ کې دی /etc/cni/net.d/<config-file>
. د کلستر مدیران په هر کلستر نوډ کې د CNI پلگ ان نصبولو مسولیت هم لري. د دوی موقعیت هم د تنظیم وړ دی؛ اصلي لارښود - /opt/cni/bin
.
کله چې کانټینرډ وکاروئ ، د پلگ ان ترتیب او بائنری لپاره لارې په برخه کې تنظیم کیدی شي [plugins.«io.containerd.grpc.v1.cri».cni]
в
له هغه ځایه چې موږ فلانیل زموږ د شبکې چمتو کونکي په توګه کاروو ، راځئ چې د دې تنظیم کولو په اړه لږ څه وغږیږو:
- فلانیلډ (فلانیل ډیمون) معمولا په کلستر کې د ډیمون سیټ په توګه نصب کیږي
install-cni
په توګهinit کانتینر . Install-cni
جوړويد CNI تشکیلاتو فایل (/etc/cni/net.d/10-flannel.conflist
) په هر نوډ کې.- فلانیلډ د vxlan وسیله رامینځته کوي، د API سرور څخه د شبکې میټاډاټا ترلاسه کوي، او د پوډ تازه معلومات څاري. لکه څنګه چې دوی رامینځته شوي ، دا په ټول کلستر کې ټولو پوډونو ته لارې توزیع کوي.
- دا لارې پوډونو ته اجازه ورکوي چې د IP پتې له لارې یو بل سره اړیکه ونیسي.
د فلانیل کار په اړه د لا زیاتو معلوماتو لپاره، زه د مقالې په پای کې د لینکونو کارولو وړاندیز کوم.
دلته د کانټینرډ CRI پلگ ان او CNI پلگ انونو ترمینځ د متقابل عمل ډیاګرام دی:
لکه څنګه چې تاسو پورته لیدلی شئ، کوبیلټ د پوډ جوړولو لپاره د کانټینرډ CRI پلگ ان ته زنګ وهي، کوم چې بیا د CNI پلگ ان ته زنګ وهي ترڅو د پوډ شبکه تنظیم کړي. په دې کولو کې، د شبکې چمتو کونکي CNI پلگ ان د شبکې مختلف اړخونه تنظیم کولو لپاره نور اصلي CNI پلگ انونه غږوي.
د CNI پلگ انونو ترمنځ تعامل
د CNI مختلف پلگ انونه شتون لري چې دنده یې په کوربه کې د کانټینرونو ترمینځ د شبکې ارتباط تنظیم کولو کې مرسته کول دي. دا مقاله به د دوی درې په اړه بحث وکړي.
د CNI پلگ ان فلانیل
کله چې د شبکې چمتو کونکي په توګه فلانیل وکاروئ ، د کانټینرډ CRI برخې زنګ وهي /etc/cni/net.d/10-flannel.conflist
.
$ cat /etc/cni/net.d/10-flannel.conflist
{
"name": "cni0",
"plugins": [
{
"type": "flannel",
"delegate": {
"ipMasq": false,
"hairpinMode": true,
"isDefaultGateway": true
}
}
]
}
د فلانیل CNI پلگ ان د فلانیلډ سره په ګډه کار کوي. د پیل په جریان کې، فلانیلډ د API سرور څخه پوډ سی آی آر او نور د شبکې پورې اړوند توضیحات ترلاسه کوي او فایل ته یې خوندي کوي /run/flannel/subnet.env
.
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=false
د Flannel CNI پلگ ان د ډاټا څخه کار اخلي /run/flannel/subnet.env
د CNI برج پلگ ان تنظیمولو او زنګ وهلو لپاره.
د CNI پلگ ان پل
دا پلگ ان د لاندې ترتیب سره ویل کیږي:
{
"name": "cni0",
"type": "bridge",
"mtu": 1450,
"ipMasq": false,
"isGateway": true,
"ipam": {
"type": "host-local",
"subnet": "10.244.0.0/24"
}
}
کله چې د لومړي ځل لپاره ویل کیږي، دا د لینکس پل سره جوړوي «name»: «cni0»
، کوم چې په ترتیب کې ښودل شوی. بیا د هر پوډ لپاره د ویت جوړه جوړه شوې. د دې یوه پای د کانټینر شبکې نوم ځای سره وصل دی ، بل یې د کوربه شبکې لینکس پل کې شامل دی.
د ویت جوړه تنظیم کولو پای ته رسیدو سره ، د برج پلگ ان کوربه - ځایی IPAM CNI پلگ ان ته زنګ ووهي. د IPAM پلگ ان ډول په CNI ترتیب کې تنظیم کیدی شي چې د CRI پلگ ان د فلانیل CNI پلگ ان ته زنګ وهلو لپاره کاروي.
کوربه - محلي IPAM CNI پلگ ان
پل CNI زنګ وهي
{
"name": "cni0",
"ipam": {
"type": "host-local",
"subnet": "10.244.0.0/24",
"dataDir": "/var/lib/cni/networks"
}
}
کوربه - محلي IPAM پلگ ان (IP Aپوښاک Management - د IP پته مدیریت) د فرعي نیټ څخه د کانټینر لپاره IP پته بیرته راګرځوي او په کوربه کې تخصیص شوي IP په برخه کې مشخص شوي لارښود کې ذخیره کوي dataDir
- /var/lib/cni/networks/<network-name=cni0>/<ip>
. دا فایل د کانټینر ID لري چې دا IP پته ورته ټاکل شوې.
کله چې کوربه - محلي IPAM پلگ ان ته زنګ ووهئ، دا لاندې معلومات بیرته راګرځوي:
{
"ip4": {
"ip": "10.244.4.2",
"gateway": "10.244.4.3"
},
"dns": {}
}
لنډیز
کیوب - کنټرولر - مدیر هر نوډ ته پوډ سی آی آر ګماري. د هر نوډ پوډونه د مختص شوي پوډ سی آی آر رینج کې د پتې ځای څخه IP پتې ترلاسه کوي. څرنګه چې د نوډونو پوډ CIDRs نه تیریږي، ټول پوډونه ځانګړي IP پتې ترلاسه کوي.
د Kubernetes کلستر مدیر کوبیلیټ، کانټینر چلولو وخت، د شبکې چمتو کونکي اجنټ ترتیب او نصبوي، او هر نوډ ته د CNI پلگ ان کاپي کوي. د پیل په جریان کې، د شبکې چمتو کونکي اجنټ د CNI تشکیل تولیدوي. کله چې یو پوډ یو نوډ ته ټاکل شوی وي، کوبیلټ د CRI پلگ ان ته زنګ ووهي ترڅو دا رامینځته کړي. بیا، که کانټینرډ کارول کیږي، د کانټینرډ CRI پلگ ان د CNI په ترتیب کې مشخص شوي CNI پلگ ان ته زنګ وهي ترڅو د پوډ شبکه تنظیم کړي. د پایلې په توګه، پوډ یو IP پته ترلاسه کوي.
ما یو څه وخت واخیست چې د دې ټولو تعاملاتو په ټولو فرعياتو او باریکیو پوه شو. زه امید لرم چې دا تجربه به تاسو سره په ښه پوهیدو کې مرسته وکړي چې کوبرنیټس څنګه کار کوي. که زه د هر څه په اړه غلط یم، مهرباني وکړئ ما سره اړیکه ونیسئ
مرجع
کانټینرونه او شبکه
فلالین څنګه کار کوي؟
CRI او CNI
PS د ژباړونکي څخه
زموږ په بلاګ کې هم ولولئ:
- «
کالیکو په کوبرنیټس کې د شبکې لپاره: پیژندنه او لږ تجربه » - "کوبرنیټس کې د شبکې جوړولو لپاره یو انځور شوی لارښود":
1 او 2 برخې (د شبکې ماډل، پوښښ شبکې) ,دریمه برخه (خدمات او ترافیک پروسس کول) ; - «
د کانټینر شبکې انٹرفیس (CNI) - د لینکس کانټینرونو لپاره د شبکې انٹرفیس او معیاري ".
سرچینه: www.habr.com