د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)
دا زما تازه دی پخوانی بنچمارک، کوم چې اوس د اپریل 1.14 پورې د وروستي CNI نسخې سره په Kubernetes 2019 کې چلیږي.

له هرڅه دمخه ، زه غواړم د سیلیم ټیم څخه مننه وکړم: هلکانو ما سره د میټریک نظارت سکریپټونو په چک او سمولو کې مرسته وکړه.

د نومبر 2018 راهیسې څه بدل شوي

دلته هغه څه دي چې له هغه وروسته بدل شوي (که تاسو علاقه لرئ):

فلانیل ترټولو ګړندی او ساده CNI انٹرفیس پاتې دی ، مګر لاهم د شبکې پالیسیو او کوډ کولو ملاتړ نه کوي.

رومانا نور ملاتړ نه کوي، نو موږ یې له بنچمارک څخه لرې کړی دی.

WeaveNet اوس د Ingress او Egress لپاره د شبکې پالیسیو ملاتړ کوي! مګر تولیدات کم شوي.

په کالیکو کې ، تاسو لاهم اړتیا لرئ په لاسي ډول د غوره فعالیت لپاره اعظمي پیکټ اندازه (MTU) تنظیم کړئ. کالیکو د CNI نصبولو لپاره دوه اختیارونه وړاندې کوي، نو تاسو کولی شئ د جلا ETCD ذخیره پرته ترسره کړئ:

  • په Kubernetes API کې د ډیټا ذخیره په توګه د ذخیره کولو حالت (د کلستر اندازه <50 نوډونه)؛
  • د ټایفا پراکسي سره د ډیټا سټور په توګه په Kubernetes API کې د ذخیره کولو حالت د K8S API (د کلستر اندازه> 50 نوډونو) باندې بار کمولو لپاره.

کالیکو ملاتړ اعلان کړ د غوښتنلیک کچې پالیسۍ د غوښتنلیک کچې امنیت لپاره د اسټیو په سر کې.

Cilium اوس د کوډ کولو ملاتړ کوي! Cilium د IPSec تونلونو سره کوډ کول چمتو کوي او د کوډ شوي WeaveNet شبکې لپاره بدیل وړاندې کوي. مګر WeaveNet د کوډ کولو فعال سره د Cilium څخه ګړندی دی.

Cilium اوس د جوړ شوي ETCD آپریټر څخه مننه ځای پرځای کول اسانه دي.

د سیلیم ټیم هڅه کړې چې د حافظې مصرف او CPU لګښتونو کمولو سره د خپل CNI څخه یو څه وزن کم کړي ، مګر سیالي کونکي یې لاهم سپک دي.

د بنچمارک شرایط

بنچمارک په دریو غیر مجازی سوپر مایکرو سرورونو کې د 10 جی بی سوپر مایکرو سویچ سره چلیږي. سرورونه د غیر فعال DAC SFP+ کیبلونو له لارې مستقیم سویچ سره وصل دي او په ورته VLAN کې د جمبو چوکاټونو (MTU 9000) سره تنظیم شوي.

Kubernetes 1.14.0 په اوبنټو 18.04 LTS کې د ډاکر 18.09.2 سره نصب شوی (پدې ریلیز کې د ډیفالټ ډاکر نسخه).

د تولید وړتیا ښه کولو لپاره ، موږ پریکړه وکړه چې تل په لومړي نوډ کې ماسټر تنظیم کړو ، د بنچمارک سرور برخه په دوهم سرور کې او د پیرودونکي برخه په دریم کې ځای په ځای کړو. د دې کولو لپاره، موږ د کوبرنیټس ګمارنې کې نوډ سلیکٹر کاروو.

موږ به د بنچمارک پایلې په لاندې پیمانه بیان کړو:

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)

د بنچمارک لپاره د CNI غوره کول

دا یوازې په برخه کې د لیست څخه د CNI لپاره معیار دی د kubeadm سره د یو ماسټر کلستر جوړولو په اړه د Kubernetes رسمي اسناد وګورئ. د 9 CNIs څخه، موږ به یوازې 6 واخلو: موږ به هغه کسان خارج کړو چې نصب کول ستونزمن دي او/یا د اسنادو سره سم د ترتیب پرته کار نه کوي (Romana، Contiv-VPP او JuniperContrail/TungstenFabric).

موږ به لاندې CNIs پرتله کړو:

  • کالیکو v3.6
  • کانال v3.6 (په اصل کې د شبکې کولو لپاره فلالین + کالیکو د فائر وال په توګه)
  • سیلیم 1.4.2
  • فلالین 0.11.0
  • کیوب روټر 0.2.5
  • WeaveNet 2.5.1

د جوړولو

څومره چې د CNI نصب کول اسانه وي، زموږ لومړی تاثیر به ښه وي. د بنچمارک څخه ټول CNIs نصب کول خورا اسانه دي (د یو یا دوه کمانډونو سره).

لکه څنګه چې موږ وویل، سرورونه او سویچ د جمبو چوکاټونو سره تنظیم شوي دي (موږ MTU 9000 ته ټاکلی). موږ به خوشحاله یو که CNI په اتوماتيک ډول د اډیپټرونو ترتیب پراساس MTU وټاکي. په هرصورت، یوازې Cilium او Flannel دا اداره کوله. پاتې CNIs په GitHub کې غوښتنې لري چې د MTU اتوماتیک کشف اضافه کړي ، مګر موږ به دا په لاسي ډول د کالیکو ، کانال او کیوب روټر لپاره د ConfigMap بدلولو سره تنظیم کړو ، یا د WeaveNet لپاره د چاپیریال متغیر تیرولو سره.

د غلط MTU ستونزه څه ده؟ دا ډیاګرام د ډیفالټ MTU او جمبو چوکاټونو فعال شوي سره د WeaveNet ترمنځ توپیر ښیې:

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)
MTU څنګه د ټریپټ اغیزه کوي؟

موږ ولیدل چې MTU د فعالیت لپاره څومره مهم دی، اوس راځئ وګورو چې زموږ CNIs څنګه په اتوماتيک ډول دا ټاکي:

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)
CNI په اوتومات ډول MTU کشف کوي

ګراف ښیې چې تاسو اړتیا لرئ د غوره فعالیت لپاره د کالیکو ، کانال ، کیوب روټر او WeaveNet لپاره MTU تنظیم کړئ. Cilium او Flannel د دې توان درلود چې پرته له کوم ترتیباتو څخه پخپله MTU په سمه توګه وټاکي.

امنیت

موږ به د CNI امنیت په دوه اړخونو کې پرتله کړو: د لیږد شوي ډیټا کوډ کولو وړتیا او د کوبرنیټس شبکې پالیسیو پلي کول (د اصلي ازموینو پراساس ، نه د اسنادو).

یوازې دوه CNIs ډاټا کوډ کوي: Cilium او WeaveNet. کوډ کول WeaveNet د CNI چاپیریال متغیر په توګه د کوډ کولو پټنوم ترتیبولو سره فعال شوی. IN اسناد WeaveNet دا په پیچلي ډول بیانوي، مګر هرڅه په ساده ډول ترسره کیږي. کوډ کول cilium د کمانډونو لخوا تنظیم شوی ، د کوبرنیټس رازونو رامینځته کولو سره ، او د ډیمون سیټ ترمیم کولو له لارې (د WeaveNet په پرتله یو څه ډیر پیچلي ، مګر Cilium ګام په ګام لري لارښوونې).

د شبکې پالیسي پلي کولو لپاره، دوی بریالي شوي Calico، کانال، Cilium او WeaveNetپه کوم کې چې تاسو کولی شئ د ننوتلو او وتلو قواعد تنظیم کړئ. لپاره کیوب روټر یوازې د ننوتلو لپاره قواعد شتون لري، او فلالین په ټوله کې د شبکې تګلارې شتون نلري.

دلته عمومي پایلې دي:

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)
د خوندیتوب فعالیت بنچمارک پایلې

محصولات

دا بنچمارک د هرې ازموینې لږ تر لږه درې منډې اوسط له لارې ښیي. موږ د TCP او UDP فعالیت ازموینه کوو (د iperf3 په کارولو سره) ، ریښتیني غوښتنلیکونه لکه HTTP (د Nginx او curl سره) یا FTP (د vsftpd او curl سره) او په پای کې د SCP پراساس کوډ کولو (د پیرودونکي او سرور OpenSSH کارولو سره) په کارولو سره د غوښتنلیک فعالیت.

د ټولو ازموینو لپاره، موږ د اصلي شبکې فعالیت سره د CNI فعالیت پرتله کولو لپاره د فلزي بنچمارک (شنه لاین) ترسره کړ. دلته موږ ورته پیمانه کاروو، مګر په رنګ کې:

  • ژیړ = ډیر ښه
  • نارنج = ښه
  • نیلي = دومره
  • سور = بد

موږ به په غلط ډول ترتیب شوي CNIs ونه اخلو او یوازې به د سم MTU سره د CNIs پایلې وښیو. (یادونه: Cilium په سمه توګه د MTU محاسبه نه کوي که تاسو کوډ کول فعال کړئ، نو تاسو به په لاسي ډول MTU په 8900 نسخه کې 1.4 ته راټیټ کړئ. راتلونکی نسخه، 1.5، دا په اتوماتيک ډول کوي.)

دلته پایلې دي:

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)
د TCP فعالیت

ټولو CNIs د TCP بنچمارک کې ښه فعالیت کړی. CNI د کوډ کولو سره خورا وروسته پاتې دی ځکه چې کوډ کول ګران دي.

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)
د UDP فعالیت

دلته هم، ټول CNIs ښه کار کوي. CNI د کوډ کولو سره نږدې ورته پایله ښودلې. Cilium د سیالۍ څخه یو څه شاته دی، مګر دا یوازې 2,3٪ د فلز فلز دی، نو دا خرابه پایله نه ده. مه هېروئ چې یوازې سیلیم او فلانیل پخپله MTU په سمه توګه ټاکلي، او دا د دوی پایلې دي پرته له کوم اضافي ترتیب.

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)

د ریښتیني غوښتنلیک په اړه څه؟ لکه څنګه چې تاسو لیدلی شئ، د HTTP لپاره عمومي فعالیت د TCP په پرتله یو څه ټیټ دی. حتی که تاسو د TCP سره HTTP کاروئ، موږ د TCP بنچمارک کې iperf3 ترتیب کړی ترڅو د ورو پیل مخه ونیسي چې د HTTP بنچمارک اغیزه وکړي. هرڅوک دلته ښه کار وکړ. کیوب روټر روښانه ګټه لري، مګر WeaveNet ښه فعالیت نه دی کړی: شاوخوا 20٪ د نري فلز څخه بد. Cilium او WeaveNet د کوډ کولو سره واقعیا غمجن ښکاري.

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)

د FTP سره، د بل TCP پر بنسټ پروتوکول، پایلې توپیر لري. فلانیل او کیوب روټر دا کار کوي، مګر کیلیکو، کانال او سیلیم یو څه شاته دي او د فلزاتو په پرتله شاوخوا 10٪ ورو دي. WeaveNet تر 17٪ شاته دی، مګر کوډ شوی WeaveNet د کوډ شوي Cilium څخه 40٪ مخکې دی.

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)

د SCP سره موږ کولی شو سمدلاسه وګورو چې د SSH کوډ کول موږ ته څومره لګښت لري. نږدې ټول CNIs ښه کار کوي، مګر WeaveNet بیا وروسته پاتې دی. Cilium او WeaveNet د کوډ کولو سره تمه کیږي د دوه ګوني کوډ کولو (SSH + CNI) له امله ترټولو خراب وي.

دلته د پایلو سره یو لنډیز جدول دی:

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)

د منابعو مصرف

اوس راځئ پرتله کړو چې څنګه CNI د درنو بارونو لاندې سرچینې مصرفوي (د TCP لیږد پرمهال ، 10 Gbps). د فعالیت په ازموینو کې موږ CNI د نرۍ فلزي (شین لاین) سره پرتله کوو. د منابعو د مصرف لپاره، راځئ چې د CNI پرته خالص Kubernetes (جامني کرښه) وښایه او وګورو چې CNI څومره اضافي سرچینې مصرفوي.

راځئ چې د حافظې سره پیل وکړو. دلته د لیږد پرمهال په MB کې د نوډونو RAM (د بفرونو او کیچ پرته) اوسط ارزښت دی.

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)
د حافظې مصرف

فلانیل او کیوب روټر غوره پایلې ښودلې - یوازې 50 MB. کیلیکو او کانال هر یو 70 لري. WeaveNet په ښکاره ډول د نورو په پرتله ډیر مصرف کوي - 130 MB، او Cilium تر 400 پورې کاروي.
اوس راځئ چې د CPU وخت مصرف وګورو. د پام وړ: ډیاګرام فیصدي نه ښیي، مګر ppm، یعني، د "ننګې اوسپنې" لپاره 38 ppm 3,8٪ دی. دلته پایلې دي:

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)
د CPU مصرف

کیلیکو، کانال، فلانیل او کیوب روټر د CPU ډیر اغیزمن دي - د CNI پرته د Kubernetes څخه یوازې 2٪ ډیر. WeaveNet د اضافي 5٪ سره ډیر وروسته پاتې دی، وروسته د Cilium په 7٪ کې.

دلته د سرچینو مصرف لنډیز دی:

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)

پایلې

د ټولو پایلو سره جدول:

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)
د عمومي بنچمارک پایلې

پایلې

په وروستۍ برخه کې به زه د پایلو په اړه خپل موضوعي نظر څرګند کړم. په یاد ولرئ چې دا بنچمارک یوازې په خورا کوچني کلستر (3 نوډونو) کې د یو واحد اتصال له لارې ازموینه کوي. دا په لویو کلسترونو (<50 نوډونو) یا موازي اړیکو باندې نه پلي کیږي.

زه د سناریو پراساس د لاندې CNIs کارولو وړاندیز کوم:

  • ایا تاسو په خپل کلستر کې لرئ نوډونه د لږو سرچینو سره (څو GB رام، څو کورونه) او تاسو امنیتي ځانګړتیاو ته اړتیا نلرئ - غوره کړئ فلالین. دا یو له خورا ارزانه CNIs څخه دی. او دا د مختلف جوړښتونو سره مطابقت لري (amd64، بازو، arm64، او نور). سربیره پردې ، دا له دوه څخه یو دی (بل یې سیلیم دی) CNI چې کولی شي په اوتومات ډول MTU وټاکي ، نو تاسو اړتیا نلرئ هیڅ شی تنظیم کړئ. کیوب روټر هم مناسب دی، مګر دا معیاري نه دی او تاسو به د MTU په لاسي ډول تنظیم کولو ته اړتیا ولرئ.
  • که اړتیا وي شبکه کوډ کړئ د خوندیتوب لپاره، واخلئ WeaveNet. د MTU اندازه مشخص کول مه هیروئ که تاسو د جمبو چوکاټونه کاروئ ، او د چاپیریال متغیر له لارې د پاسورډ مشخص کولو سره کوډ کول فعال کړئ. مګر دا غوره ده چې د فعالیت په اړه هیر کړئ - دا د کوډ کولو لګښت دی.
  • لپاره عادي استعمال زه مشوره ورکوم کلیکو. دا CNI په پراخه کچه د کبرنیټس ګمارنې وسیلو کې کارول کیږي (کوپس، کوبیسپری، رینچر، او نور). لکه څنګه چې د WeaveNet سره، ډاډ ترلاسه کړئ چې MTU په ConfigMap کې تنظیم کړئ که چیرې جمبو چوکاټونه وکاروئ. دا یو څو اړخیزه وسیله ده چې د سرچینو مصرف، فعالیت او امنیت په برخه کې اغیزمنه ده.

او په نهایت کې ، زه تاسو ته مشوره درکوم چې پرمختګ تعقیب کړئ cilium. دا CNI یو ډیر فعال ټیم ​​لري چې د دوی په محصول باندې ډیر کار کوي (د ځانګړتیاوو، د سرچینو سپما، فعالیت، امنیت، کلستر کول ...) او دوی خورا په زړه پوري پلانونه لري.

د Kubernetes شبکې پلگ ان (CNI) د 10 Gbps شبکې څخه د بنچمارک پایلې (تازه شوي: اپریل 2019)
د CNI انتخاب لپاره بصری ډیاګرام

سرچینه: www.habr.com

Add a comment