ران تایم کانتینر برای داکر و کوبرنتیز
داکر و کوبرنتیز به عنوان دو سرویس معروف در دنیای کانتینرها شناخته میشوند که در این مقاله قرار است به معرفی ران تایم کانتینر در آنها بپردازیم.
کانتینرها به عنوان یکی از جدیدترین تکنولوژیها در دنیای دواپس شناخته میشوند. داکر و کوبرنتیز دو سرویس محبوب برای ایجاد، اجرا و مدیریت کانتینرها هستند. از طرفی دستور ران تایم برای اجرای برنامهها در زبانهای مختلف برنامهنویسی است. یکی از مهمترین بخشهای داکر و کوبرنتیز نیز ران تایم آن است که در این مقاله به معرفی آن خواهیم پرداخت.
کانتینر، موتور کانتینر و ران تایم کانتینر چیست؟
کانتینر نوع خاصی از ماشین مجازی است. مانند همه ماشینهای مجازی دیگر، چندین کانتینر میتوانند به صورت همزمان روی یک کامپیوتر فیزیکی اجرا شوند. این مسئله باعث پیشرفت در استفاده از منابع کامپیوتر و صرفهجویی در هزینهها شده است. دلیل این موضوع نیز نیاز کمتر به سرورهای فیزیکی برای اجرای برنامهها است. ماشینهای مجازی ابزارهای کاملا ایزولهای هستند، اگرچه کانتینرها به دلیل دسترسی اساسی به کرنل، از سرعت بیشتر، حجم کمتر و تعداد بیشتر نسبت به ماشینهای مجازی سنتیتر برخوردار هستند.
کانتینرها نیاز به یک موتور کانتینر دارند. موتور کانتینر یک پلتفرم نرمافزاری کلی است که از استفاده کانتینرها پشتیبانی میکند. موتورهای کانتینر معروف شامل داکر، CRI-O، RKT و LXD هستند. یک موتور ورودیهای کاربر را میگیرد و آنها را با ارکستریتور یا تنظیمکننده به اشتراک میگذارد. سپس فایل ایمیج کانتینر را از یک مخزن مانند سرویسهای ابری میخواند و آن را برای اجرای کانتینر آماده میکند. در نهایت این خروجی را با استفاده از ران تایم کانتینر اجرا میکند و متعلقات مستقر در کانتینر را مدیریت میکند.
ران تایم کانتینر (Container Runtime) یک عضو درونیتر از موتور کانتینر است که کانتینر را آماده میکند و با ارتباطی که با کرنل دارد، باعث اجرا شدن و پشتیبانی از فرایند کانتینری شدن آن میشود. برای یک سیستم عامل مانند Red Hat لینوکس، ران تایم مواردی مانند cgroups، سیاست SELinux، AppArmour و قوانینی را تنظیم میکند. رایجترین ران تایم، runC است. اما سایر ران تایمهای کانتینر مانند crun، railcar و Kata Containers نیز کاربرد خود را دارند.
استانداردسازی در تکنولوژی کانتینر
استانداردسازی یکی از بخشهای مهم تکنولوژی کانتینر است. با تعریف استانداردهایی برای فرمتهای گوناگون فایلهای ایمیج و متادیتاهای مرتبط، صنعت کانتینر میتواند ایمیجها و ابزارهای بهتر، امنتر و کاربردیتری را توسعه دهد. این استانداردها باعث استفاده و اجرای فایلهای ایمیج به عنوان کانتینر میشوند. از طرفی این استانداردها به بهبود امنیت و عملکرد ابزارهای ران تایم نیز کمک میکنند.
اگرچه فرمتهای زیادی برای فایلهای ایمیج کانتینر وجود دارند، اما OCI (Open Container Initiative) به عنوان محبوبترین و شناختهشدهترین استاندارد مورد قبول برای ایمیجهای کانتینر و ران تایمها شناخته میشود. OCI از موتور کانتینر runc استفاده میکند. البته این استاندارد از موتورهای دیگر مانند داکر و CRI-O نیز میتواند استفاده کند. به همین دلیل کانتینرهای روی این استاندارد قابلیت حمل بالایی دارند.
ارکستریشن کانتینرها
کانتینرها ارزش زیادی برای ارکستریشن یا تنظیمکننده قائل هستند. با تکیه بر ابزارهای حیاتی مانند کوبرنتیز، مدیریت و خودکار کردن کانتینری کردن اپلیکیشنها و محیط آنها در مراکز اطلاعات محلی یا سرویسهای ابری اتفاق میافتد. این بدین معنی است که کوبرنتیز باید نظم فرمتهای ایمیج کانتینر به خصوص در هنگام ساخت و مدیریت پادها و کلاسترها، مدیریت کند. CRI (Container Runtime Interface) کوبرنتیز یک API برای اتصال کوبرنتیز به ران تایمهای کانتینر تامین میکند.
CRI-O یک روش پیادهسازی CRI است که به کوبرنتیز اجازه میدهد تا از هر OCI برای اجرا استفاده کند. در واقع CRI-O کوبرنتیز را به یک موتور کانتینر که از runc و Kata Contariners به عنوان ران تایم برای پادهای کوبرنتیز استفاده میکند، تبدیل میکند.
رانتایمهای داکر و کانتینر
اجرای کانتینرها در فضای داکر نیازمند چهار بخش اصلی است؛ موتور یا اینترفیس داکر، فایل دیمون، ران تایم و خود کانتینر. در ادامه به معرفی بیشتر این بخشها میپردازیم.
· داکر
موتور داکر اصلیترین قسمت برای ران تایم داکر است. پلتفرمی مانند داکر وظیفه نصب، ساخت، اجرا و مدیریت اپلیکیشنهای کانتینری را بر عهده دارد. داکر یک پلتفرم همهجانبه را برای ادمینهای سیستم مانند کاربران دواپس (DevOps) ایجاد میکند. یک قسمت کلیدی موتور کانتینر UI آن است. داکر یک اینترفیس خط فرمان یا CLI را به نام docker-cli آماده کرده است که کاربران با استفاده از آن میتوانند فایلهای ایمیج، رجیستریهای کانتینر را آماده کنند و با استفاده از آن پروژه کانتینری خود را شروع و مدیریت کنند.
· دیمون
موتور داکر کانتینرها را به صورت مستقیم کنترل نمیکند، بلکه آنها را یک پروسه استفاده از فایلهای دیمون (Daemon) به نام Containerd کنترل میکند. کانتینرد محیط کانتینر را مدیریت میکند. دیمون کانتینرد جنبه اصلی CRI کوبرنتیز است که به کوبرنتیز اجازه میدهد تا با ران تایمهای زیادی مانند runC و Kata Containers ارتباط برقرار کند.
· ران تایم
ران تایم کانتینر یک بخش جزئیتر است که کانتینرها را میسازد و اجرا میکند. داکر معمولا از runC استفاده میکند که به استاندارد OCI پایبند است و فرمت ایمیجهای کانتینر را تعریف میکند.
· کانتینرها
در نهایت این روند کانتینرها ساخته و مدیریت میشوند و نتیجه پروسه ران تایم خواهند بود.
ران تایمهای کوبرنتیز و کانتینر
اجرای کانتینر در سرویس کوبرنیتز نیز شبیه به اجرای آن در داکر به چهار بخش اصلی تقسیم میشود که در ادامه به معرفی آنها میپردازیم.
· ارکستریشن
کوبرنتیز یک سرویس ارکستریشن یا تنظیم کانتینرها در مقیاس بزرگ است که با استفاده از آن میتوانید کانتینرهای گوناگون خود را مدیریت کنید. این ارکستریشن میتواند در سرورهای گوناگون در یک کلاستر انجام شود و به راحتی با استفاده از آن میتوان به مدیریت سرویسهای کانتینری پرداخت.
· Daemon
کوبرنتیز از طریق CRI API با دیمونهای کانتینر ارتباط برقرار میکند. CRI یک استاندارد صنعتی ایجاد میکند که با استفاده از آن میتوانید هر دیمونی را با کوبرنتیز ارتباط دهید. از طرفی CRI میتواند با کانتینرد نیز ارتباط برقرار کند. بدین وسیله توسعهدهندگان میتوانند از دیمونهای سبکوزن CRI-O روی کوبرنتیز استفاده کنند.
· ران تایم
CRI-O باید با ران تایم کانتینر ارتباط برقرار کند، به همین دلیل CRI-O از ران تایم runC به صورت پیشفرض استفاده میکند اما میتواند از سایر ران تایمها مانند crun و Kata Containers نیز استفاده کند. بعضی از ران تایمها ممکن است برای قابلیت همکاری نیاز به افزونههایی داشته باشند؛ بنابراین تست و ارزشیابی هر کدام آنها برای عملکرد و ثبات مناسب نیاز است.
· کانتینرها
مانند داکر، کانتینرهای تنظیم شده در کوبرنتیز، در نهایت این فرایند استفاده خواهند شد.
کلام آخر
در این مقاله سعی کردیم تا شما را با ران تایمهای کانتینر برای داکر و کوبرنتیز آشنا کنیم. در این مقاله در ابتدا به معرفی مفاهیم ران تایم، موتور کانتینر و خود کانتینر پرداختیم. سپس با بررسی استانداردهای کانتینر و ارکستریشن کانتینر، به معرفی ران تایم کانتینر در پلتفرم داکر و سرویس کوبرنتیز پرداختیم. امیدواریم از خواندن این مقاله نهایت استفاده را برده باشید.