د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

Kubernetes ته د ځای په ځای کولو لومړی ګام ستاسو غوښتنلیک په کانتینر کې ځای په ځای کول دي. پدې لړۍ کې، موږ به وګورو چې تاسو څنګه کولی شئ یو کوچنی، خوندي کانتینر عکس جوړ کړئ.
د ډاکر څخه مننه ، د کانټینر عکسونه رامینځته کول هیڅکله اسانه ندي. یو بیس انځور مشخص کړئ، خپل بدلونونه اضافه کړئ، او یو کانټینر جوړ کړئ.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

پداسې حال کې چې دا تخنیک د پیل کولو لپاره خورا ښه دی، د ډیفالټ بیس عکسونو کارول کولی شي د زیانونو څخه ډک لوی عکسونو سره ناامنه کار رامینځته کړي.

سربیره پردې ، په ډاکر کې ډیری عکسونه د بیس عکس لپاره ډیبیان یا اوبنټو کاروي ، او پداسې حال کې چې دا عالي مطابقت او اسانه تخصیص چمتو کوي (د ډاکر فایل یوازې دوه کرښې کوډ اخلي) ، د بیس عکسونه کولی شي ستاسو کانټینر ته سلګونه میګابایټ اضافي بار اضافه کړي. د مثال په توګه، د Go "hello-world" غوښتنلیک لپاره ساده node.js فایل شاوخوا 700 میګابایټ دی، پداسې حال کې چې ستاسو اصلي غوښتنلیک یوازې یو څو میګابایټ اندازه دی.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

نو دا ټول اضافي کاري بار د ډیجیټل ځای ضایع کول او د امنیت زیان منونکو او کیګونو لپاره د پټیدو عالي ځای دی. نو راځئ چې د کانټینر عکس اندازه کمولو لپاره دوه لارې وګورو.

لومړی د کوچني بیس عکسونو کارول دي ، دوهم د جوړونکي نمونې کارول دي. د کوچني بیس عکسونو کارول شاید ستاسو د کانټینر اندازې کمولو لپاره ترټولو اسانه لار وي. ډیری احتمال، هغه ژبه یا سټیک چې تاسو یې کاروئ د اصلي غوښتنلیک انځور وړاندې کوي چې د ډیفالټ عکس څخه خورا کوچنی دی. راځئ چې زموږ د node.js کانټینر ته یو نظر وګورو.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

په ډاکر کې د ډیفالټ په واسطه، نوډ: 8 د بیس عکس اندازه 670 MB ده، او د نوډ: 8-الپین عکس اندازه یوازې 65 MB ده، دا 10 ځله کوچنی دی. د کوچني الپین بیس عکس په کارولو سره ، تاسو به د پام وړ ستاسو د کانټینر اندازه کمه کړئ. الپین یو کوچنی او لږ وزن لرونکی لینکس توزیع دی چې د ډاکر کاروونکو ترمنځ خورا مشهور دی ځکه چې دا د ډیری غوښتنلیکونو سره مطابقت لري پداسې حال کې چې کانټینرونه کوچني ساتل کیږي. د معیاري ډاکر "نوډ" عکس برعکس ، "نوډ: الپین" د خدماتو ډیری فایلونه او برنامې لرې کوي ، یوازې هغه یې پریږدي چې ستاسو د غوښتنلیک چلولو لپاره کافي دي.

د کوچني بیس عکس ته د تګ لپاره ، په ساده ډول د نوي بیس عکس سره کار پیل کولو لپاره ډاکرفایل تازه کړئ:

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

اوس، د زاړه آن بلډ عکس برعکس، تاسو اړتیا لرئ خپل کوډ په کانټینر کې کاپي کړئ او کوم انحصار نصب کړئ. په نوي ډاکر فایل کې، کانټینر د نوډ سره پیل کیږي: الپین عکس، بیا د کوډ لپاره لارښود جوړوي، د NPM کڅوړې مدیر په کارولو سره انحصارونه نصبوي، او په پای کې server.js چلوي.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

دا اپ گریڈ په یوه کانټینر کې پایله لري چې په اندازې کې 10 ځله کوچنی دی. که ستاسو د پروګرام کولو ژبه یا سټیک د بیس عکس کمولو فعالیت نلري، الپین لینکس وکاروئ. دا به د کانټینر مینځپانګې په بشپړ ډول اداره کولو وړتیا هم چمتو کړي. د کوچني بیس عکسونو کارول د ګړندي کوچني کانټینرونو رامینځته کولو عالي لاره ده. مګر حتی لوی کمښت د جوړونکي نمونې په کارولو سره ترلاسه کیدی شي.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

په تفسیر شویو ژبو کې، د سرچینې کوډ لومړی ژباړونکي ته لیږدول کیږي او بیا په مستقیم ډول اجرا کیږي. په تالیف شوي ژبو کې، د سرچینې کوډ لومړی په تالیف شوي کوډ کې بدلیږي. په هرصورت، تالیف اکثرا هغه وسیلې کاروي چې واقعیا د کوډ چلولو لپاره اړین ندي. دا پدې مانا ده چې تاسو کولی شئ دا وسیلې په بشپړ ډول له وروستي کانټینر څخه لرې کړئ. تاسو کولی شئ د دې لپاره د جوړونکي نمونه وکاروئ.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

کوډ په لومړي کانټینر کې رامینځته شوی او تالیف شوی. بیا تالیف شوی کوډ په وروستي کانټینر کې بسته کیږي پرته له دې چې د دې کوډ تالیف کولو لپاره اړین تالیف کونکي او وسیلې. راځئ چې د دې پروسې له لارې د Go غوښتنلیک پرمخ یوسو. لومړی، موږ به د جوړ شوي عکس څخه الپین لینکس ته لاړ شو.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

په نوي ډاکر فایل کې، کانټینر د ګولنګ سره پیل کیږي: الپین عکس. دا بیا د کوډ لپاره لارښود رامینځته کوي ، دا د سرچینې کوډ کې کاپي کوي ، د سرچینې کوډ رامینځته کوي ، او غوښتنلیک پرمخ وړي. دا کانټینر د جوړ شوي کانټینر په پرتله خورا کوچنی دی ، مګر دا لاهم کمپیلر او نور Go اوزار لري چې موږ واقعیا ورته اړتیا نلرو. نو راځئ چې یوازې جوړ شوی برنامه راوباسئ او په خپل کانټینر کې یې واچوئ.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

تاسو ممکن پدې ډاکر فایل کې یو څه عجیب وګورئ: دا دوه لینونه لري. د لومړۍ 4 لاین برخه د تیر ډاکر فایل په څیر ورته ښکاري پرته لدې چې دا د دې مرحلې نومولو لپاره د AS کلیدي کلمه کاروي. بله برخه د نوي عکس پیل کولو لپاره نوې FROM کرښه لري، چیرې چې د ګولنګ:الپین انځور پر ځای به موږ خام الپین د بیس انځور په توګه کاروو.

Raw Alpine Linux هیڅ SSL سندونه ندي نصب کړي، کوم چې به د HTTPS په اړه ډیری API کالونه ناکام کړي، نو راځئ چې ځینې د روټ CA سندونه نصب کړو.

اوس د ساتیرۍ برخه راځي: د لومړي کانټینر څخه دوهم ته تالیف شوي کوډ کاپي کولو لپاره ، تاسو کولی شئ په ساده ډول د COPY کمانډ وکاروئ چې د دوهمې برخې په 5 کرښه کې موقعیت لري. دا به یوازې د غوښتنلیک یوه فایل کاپي کړي او د Go یوټیلټي وسیلې به اغیزه ونکړي. نوی ملټي سټیج ډاکر فایل به د کانټینر عکس ولري چې یوازې 12 میګابایټ اندازه لري ، د اصلي کانټینر عکس په پرتله چې 700 میګابایټ و ، کوم چې لوی توپیر دی!
نو د کوچني بیس عکسونو او د جوړونکي نمونې کارول د ډیری کار پرته خورا کوچني کانټینرونو رامینځته کولو عالي لارې دي.
دا ممکنه ده چې د غوښتنلیک سټیک پورې اړه ولري ، د عکس او کانټینر اندازې کمولو لپاره اضافي لارې شتون لري ، مګر ایا کوچني کانټینرونه واقعیا د اندازه کولو وړ ګټه لري؟ راځئ چې دوه ساحې وګورو چیرې چې کوچني کانټینرونه خورا اغیزمن دي - فعالیت او امنیت.

د فعالیت زیاتوالي ارزولو لپاره ، د کانټینر رامینځته کولو پروسې موده په پام کې ونیسئ ، دا په راجسټری کې دننه کړئ (پش) ، او بیا یې له هغه ځای څخه ترلاسه کړئ (کش کړئ). تاسو کولی شئ وګورئ چې یو کوچنی کانټینر د لوی کانټینر په پرتله جلا ګټه لري.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

ډاکر به پرتونه ذخیره کړي نو راتلونکي جوړونه به خورا ګړندي وي. په هرصورت، ډیری CI سیسټمونه چې د کانټینرونو جوړولو او ازموینې لپاره کارول کیږي د پرتونو ذخیره نه کوي، نو د پام وړ وخت سپما شتون لري. لکه څنګه چې تاسو لیدلی شئ ، ستاسو د ماشین ځواک پورې اړه لري د لوی کانټینر جوړولو وخت له 34 څخه تر 54 ثانیو پورې دی ، او کله چې د کانټینر کارولو سره د جوړونکي نمونې په کارولو سره کم شوی - له 23 څخه تر 28 ثانیو پورې. د دې ډول عملیاتو لپاره، د تولید زیاتوالی به 40-50٪ وي. نو یوازې د دې په اړه فکر وکړئ چې تاسو څو ځله خپل کوډ جوړ او ازموینه وکړئ.

وروسته له دې چې کانټینر جوړ شي ، تاسو اړتیا لرئ د دې عکس (د کانټینر عکس فشار) د کانټینر راجسټری کې فشار ورکړئ ترڅو تاسو وکولی شئ دا په خپل کبرنیټس کلستر کې وکاروئ. زه د ګوګل کانټینر راجسټری کارولو وړاندیز کوم.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

د ګوګل کانټینر راجسټری (GCR) سره، تاسو یوازې د خام ذخیره کولو او شبکې لپاره پیسې ورکوئ، او د کانټینر مدیریت اضافي فیس نشته. دا شخصي، خوندي او خورا ګړندی دی. GCR د پلولو عملیاتو ګړندي کولو لپاره ډیری چلونه کاروي. لکه څنګه چې تاسو لیدلی شئ، د Go:onbuild په کارولو سره د ډاکر کانټینر عکس کانټینر داخلول به له 15 څخه تر 48 ثانیو پورې وخت ونیسي ، د کمپیوټر فعالیت پورې اړه لري ، او د کوچني کانټینر سره ورته عملیات به له 14 څخه تر 16 ثانیو پورې وخت ونیسي ، او د لږ تولیدي ماشینونو لپاره. د عملیاتو سرعت کې ګټه 3 ځله ډیریږي. د لوی ماشینونو لپاره، وخت یو شان دی، ځکه چې GCR د انځورونو د ګډ ډیټابیس لپاره نړیوال کیچ کاروي، پدې معنی چې تاسو اړتیا نلرئ چې دوی پورته کړئ. په ټیټ بریښنا کمپیوټر کې، CPU یو خنډ دی، نو د کوچنیو کانټینرونو کارولو ګټه دلته ډیره ده.

که تاسو GCR کاروئ، زه ستاسو د جوړونې سیسټم برخې په توګه د ګوګل کانټینر بلډر (GCB) کارولو سپارښتنه کوم.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

لکه څنګه چې تاسو لیدلی شئ، د دې کارول تاسو ته اجازه درکوي چې حتی د تولیدي ماشین په پرتله د Build+Push عملیاتو موده کمولو کې خورا ښه پایلې ترلاسه کړئ - پدې حالت کې، کوربه ته د کانټینرونو جوړولو او لیږلو پروسه نږدې 2 ځله ګړندۍ کیږي. . برسیره پردې، تاسو هره ورځ د 120 وړیا جوړونې دقیقې ترلاسه کوئ، کوم چې په ډیری قضیو کې ستاسو د کانټینر ودانۍ اړتیاوې پوښي.

بل د فعالیت خورا مهم میټریک راځي - د بیرته ترلاسه کولو سرعت ، یا ډاونلوډ کول ، د کانټینرونو ایستل. او که تاسو د فشار په عملیاتو کې د مصرف شوي وخت په اړه ډیر پام نه کوئ، نو د پلولو پروسې اوږدوالی د ټول سیسټم فعالیت باندې جدي اغیزه لري. راځئ چې ووایو تاسو د دریو نوډونو کلستر لرئ او یو یې ناکام دی. که تاسو د مدیریت سیسټم کاروئ لکه د ګوګل Kubernetes Engine، دا به په اتوماتيک ډول مړ نوډ د نوي سره بدل کړي. په هرصورت، دا نوی نوډ به په بشپړه توګه خالي وي او تاسو باید خپل ټول کانټینرونه په دې کې کش کړئ ترڅو دا کار پیل کړي. که د پلولو عملیات کافي وخت ونیسي، ستاسو کلستر به ټول وخت په ټیټ فعالیت کې پرمخ ځي.

ډیری قضیې شتون لري چیرې چې دا پیښ کیدی شي: په کلستر کې د نوي نوډ اضافه کول ، د نوډونو نوي کول ، یا حتی د ځای په ځای کولو لپاره نوي کانټینر ته لیږدول. په دې توګه، د پل استخراج وخت کمول یو مهم فاکتور کیږي. دا د انکار وړ نه ده چې یو کوچنی کانټینر د لوی په پرتله خورا ګړندی ډاونلوډ کوي. که تاسو د Kubernetes کلستر کې ډیری کانټینرونه پرمخ وړئ، د وخت سپما کولی شي د پام وړ وي.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

دې پرتله ته یو نظر وګورئ: په کوچني کانټینرونو کې د پلولو عملیات 4-9 ځله لږ وخت نیسي ، د ماشین ځواک پورې اړه لري ، د ورته عملیاتو په پرتله د go:onbuild په کارولو سره. د شریک شوي ، کوچني کانټینر بیس عکسونو کارول د پام وړ وخت او سرعت ګړندی کوي په کوم کې چې نوي کوبرنیټس نوډونه ځای په ځای کیدی شي او آنلاین راځي.

راځئ چې د امنیت مسله وګورو. کوچني کانټینرونه د لویو په پرتله خورا خوندي ګڼل کیږي ځکه چې دوی د کوچني برید سطح لري. ایا دا واقعا دی؟ د ګوګل کانټینر راجسټری یو له خورا ګټورو ځانګړتیاو څخه د زیانونو لپاره ستاسو کانټینرونو په اوتومات ډول سکین کولو وړتیا ده. څو میاشتې دمخه ما دواړه آن بلډ او ملټي سټیج کانټینرونه رامینځته کړل ، نو راځئ وګورو چې دلته کوم زیانونه شتون لري.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

پایله حیرانوونکې ده: په یوه کوچني کانټینر کې یوازې 3 منځني زیانونه وموندل شول، او 16 مهم او 376 نور زیانونه په لوی کانټینر کې وموندل شول. که موږ د لوی کانټینر مینځپانګې ته وګورو، موږ لیدلی شو چې ډیری امنیتي ستونزې زموږ د غوښتنلیک سره هیڅ تړاو نلري، مګر د پروګرامونو سره تړاو لري چې موږ یې هم نه کاروو. نو کله چې خلک د لوی برید سطح په اړه خبرې کوي، دا د دوی معنی ده.

د Kubernetes غوره کړنې. د کوچنیو کانتینرونو جوړول

لرې کول روښانه دي: کوچني کانټینرونه جوړ کړئ ځکه چې دوی ستاسو سیسټم ته ریښتیني فعالیت او امنیتي ګټې چمتو کوي.

د Kubernetes غوره کړنې. د نوم ځای سره د Kubernetes تنظیم

ځینې ​​اعلانونه 🙂

له موږ سره د پاتې کیدو لپاره مننه. ایا تاسو زموږ مقالې خوښوي؟ غواړئ نور په زړه پورې مینځپانګه وګورئ؟ د امر په ورکولو یا ملګرو ته وړاندیز کولو سره زموږ ملاتړ وکړئ ، کلاوډ VPS د پراختیا کونکو لپاره له $ 4.99 څخه, د ننوتلو کچې سرورونو یو ځانګړی انلاګ ، کوم چې زموږ لخوا ستاسو لپاره اختراع شوی و: د VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps په اړه بشپړ حقیقت له $ 19 څخه یا څنګه سرور شریک کړئ؟ (د RAID1 او RAID10 سره شتون لري، تر 24 کور پورې او تر 40GB DDR4 پورې).

ډیل R730xd په امستردام کې د Equinix Tier IV ډیټا مرکز کې 2 ځله ارزانه؟ یوازې دلته 2x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 تلویزیون له $199 څخه په هالنډ کې! ډیل R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - له $ 99 څخه! په اړه ولولئ د زیربنا شرکت جوړولو څرنګوالی د ډیل R730xd E5-2650 v4 سرورونو کارولو سره ټولګي د یوې پیسي لپاره د 9000 یورو ارزښت لري؟

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

Add a comment