کانتینرها یک نسخه سبک وزن از فضای کاربری سیستم عامل لینوکس هستند - در واقع این حداقل حداقل است. با این حال، هنوز هم یک سیستم عامل کامل است و بنابراین کیفیت خود این کانتینر به اندازه یک سیستم عامل تمام عیار مهم است. به همین دلیل است که ما برای مدت طولانی پیشنهاد دادیم تصاویر Red Hat Enterprise Linux (RHEL).، به طوری که کاربران بتوانند کانتینرهای معتبر، مدرن و به روز در سطح سازمانی داشته باشند. راه اندازی تصاویر ظرف (تصاویر کانتینر) RHEL در میزبان های کانتینر RHEL سازگاری و قابلیت حمل بین محیط ها را فراهم می کند، بدون ذکر این واقعیت که این ابزارها قبلاً آشنا هستند. با این حال، یک مشکل وجود داشت. شما نمی توانید آن تصویر را فقط به شخص دیگری واگذار کنید، حتی اگر مشتری یا شریکی باشد که از لینوکس Red Hat Enterprise استفاده می کند.
اما اکنون همه چیز تغییر کرده است
با انتشار تصویر پایه جهانی ردهت (UBI)، اکنون می توانید قابلیت اطمینان، امنیت و عملکردی را که از تصاویر رسمی کانتینر ردهت انتظار داشتید، دریافت کنید، چه اشتراک داشته باشید و چه نداشته باشید. این بدان معناست که می توانید یک برنامه کانتینری در UBI بسازید، آن را در رجیستری کانتینر انتخابی خود قرار دهید و آن را با جهان به اشتراک بگذارید. Red Hat Universal Base Image به شما امکان میدهد در هر محیطی—هرجا که میخواهید، برنامهای را بسازید، به اشتراک بگذارید و روی آن همکاری کنید.
با UBI، میتوانید برنامههای خود را تقریباً در هر زیرساخت منتشر و اجرا کنید. اما اگر آنها را بر روی پلتفرمهای Red Hat مانند Red Hat OpenShift و Red Hat Enterprise Linux اجرا کنید، میتوانید مزایای بیشتری (طلای بیشتر!) دریافت کنید. و قبل از اینکه به توضیح مفصلتری درباره UBI بپردازیم، اجازه دهید سؤالات متداول کوتاهی در مورد اینکه چرا اشتراک RHEL لازم است ارائه دهم. بنابراین، وقتی یک تصویر UBI را روی پلتفرم RHEL/OpenShift اجرا می کنید، چه اتفاقی می افتد؟
و اکنون که از بازاریابی راضی هستیم، بیایید با جزئیات بیشتری در مورد UBI صحبت کنیم
دلایل استفاده از UBI
وقتی بدانید UBI برای شما مفید خواهد بود، چه احساسی دارید:
من توسعه دهندگان می خواهید از تصاویر کانتینری استفاده کنید که می توانند در هر محیطی توزیع و اجرا شوند
تیم من عملیات یک تصویر پایه پشتیبانی شده با چرخه عمر درجه سازمانی می خواهد
من معماران می خواهند ارائه دهند اپراتور Kubernetes به مشتریان / کاربران نهایی من
من مشتریان آنها نمی خواهند با پشتیبانی در سطح سازمانی برای کل محیط Red Hat خود ذهن خود را منفجر کنند
معدن جامعه می خواهد برنامه های کاربردی کانتینری را به معنای واقعی کلمه در همه جا به اشتراک بگذارد، اجرا کند، منتشر کند
اگر حداقل یکی از سناریوها برای شما مناسب است، پس حتما باید UBI را بررسی کنید.
فراتر از یک تصویر اساسی
UBI کوچکتر از یک سیستم عامل کامل است، اما UBI سه چیز مهم دارد:
مجموعه ای از سه تصویر پایه (ubi، ubi-minimal، ubi-init)
تصاویر با محیط های زمان اجرا آماده برای زبان های برنامه نویسی مختلف (nodejs، ruby، python، php، perl و غیره)
مجموعه ای از بسته های مرتبط در مخزن YUM با رایج ترین وابستگی ها
UBI بهعنوان پایهای برای برنامههای بومی ابری و برنامههای وب توسعهیافته و در کانتینرها ایجاد شد. تمام محتوای UBI زیرمجموعه RHEL است. تمام بستههای موجود در UBI از طریق کانالهای RHEL تحویل داده میشوند و هنگام اجرا بر روی پلتفرمهای پشتیبانی شده از Red Hat مانند OpenShift و RHEL، مشابه RHEL پشتیبانی میشوند.
اطمینان از پشتیبانی با کیفیت بالا برای کانتینرها نیازمند تلاش زیادی از جانب مهندسان، متخصصان امنیتی و سایر منابع اضافی است. این نه تنها به آزمایش تصاویر پایه نیاز دارد، بلکه به تجزیه و تحلیل رفتار آنها در هر میزبان پشتیبانی شده نیز نیاز دارد.
برای کمک به کاهش بار ارتقاء، Red Hat به طور فعال در حال توسعه و پشتیبانی است به طوری که UBI 7 می تواند روی هاست RHEL 8 اجرا شود، برای مثال، و UBI 8 می تواند بر روی هاست RHEL 7 اجرا شود. این به کاربران انعطاف پذیری، اطمینان و آرامش را می دهد. به عنوان مثال، بهروزرسانیهای پلتفرم در تصاویر کانتینر یا میزبانهای مورد استفاده به ذهنشان میرسد. اکنون همه اینها را می توان به دو پروژه مستقل تقسیم کرد.
سه تصویر اساسی
Minimal – طراحی شده برای برنامه هایی با تمام وابستگی ها (Python، Node.js، .NET و غیره)
حداقل مجموعه محتوای از پیش نصب شده
بدون فایل اجرایی suid
حداقل ابزارهای مدیریت بسته (نصب، به روز رسانی و حذف)
پلتفرم - برای هر برنامهای که روی RHEL اجرا میشود
پشته رمزنگاری یکپارچه OpenSSL
پشته کامل YUM
ابزارهای اساسی مفید سیستم عامل شامل (tar، gzip، vi، و غیره)
چند سرویس - اجرای چندین سرویس را در یک کانتینر آسان می کند
برای اجرای systemd در هنگام راه اندازی پیکربندی شده است
امکان فعال کردن سرویس ها در مرحله ساخت
تصاویر کانتینر با محیط های زمان اجرا زبان برنامه نویسی آماده
علاوه بر تصاویر پایه که به شما امکان نصب پشتیبانی از زبان برنامه نویسی را می دهد، UBI ها شامل تصاویر از پیش ساخته شده با محیط های زمان اجرا آماده برای تعدادی از زبان های برنامه نویسی می شوند. بسیاری از توسعه دهندگان می توانند به سادگی تصویر را بگیرند و روی برنامه ای که در حال توسعه هستند شروع به کار کنند.
با راه اندازی UBI، Red Hat دو مجموعه از تصاویر را ارائه می دهد - بر اساس RHEL 7 و بر اساس RHEL 8. آنها به ترتیب بر اساس مجموعه نرم افزار Red Hat (RHEL 7) و Application Streams (RHEL 8) بودند. این زمانهای اجرا بهروز نگه داشته میشوند و تا چهار بهروزرسانی در سال را به صورت استاندارد دریافت میکنند، بنابراین شما همیشه آخرین و پایدارترین نسخهها را اجرا میکنید.
در اینجا لیستی از تصاویر کانتینر UBI 7 آمده است:
در اینجا لیستی از تصاویر کانتینر برای UBI 8 آمده است:
بسته های مرتبط
استفاده از تصاویر آماده واقعا بسیار راحت است. Red Hat آنها را به روز نگه می دارد و آنها را با انتشار نسخه جدید RHEL و همچنین زمانی که به روز رسانی های مهم CVE مطابق با خط مشی به روز رسانی در دسترس قرار می گیرد، به روز می کند. خط مشی تصویر RHEL تا بتوانید یکی از این تصاویر را بگیرید و بلافاصله کار روی اپلیکیشن را شروع کنید.
اما گاهی اوقات، هنگام ایجاد یک برنامه، ممکن است ناگهان به یک بسته اضافی نیاز داشته باشید. یا، گاهی اوقات، برای شروع به کار برنامه، باید یک بسته را به روز کنید. به همین دلیل است که تصاویر UBI با مجموعهای از RPM ارائه میشوند که از طریق yum در دسترس هستند و با استفاده از یک شبکه تحویل محتوا سریع و بسیار در دسترس توزیع میشوند (شما بسته را دارید!). وقتی یک بهروزرسانی yum را روی CI/CD خود در آن نقطه انتشار بحرانی اجرا میکنید، میتوانید مطمئن باشید که کار خواهد کرد.
RHEL پایه است
ما هرگز از تکرار اینکه RHEL اساس همه چیز است خسته نمی شویم. آیا می دانید چه تیم هایی در Red Hat روی ایجاد تصاویر پایه کار می کنند؟ به عنوان مثال اینها:
تیم مهندسی مسئول اطمینان از اینکه کتابخانههای اصلی مانند glibc و OpenSSL، و همچنین زمانهای اجرا زبان مانند Python و Ruby، عملکرد ثابتی را ارائه میدهند و هنگام استفاده در کانتینرها، بارهای کاری قابل اعتماد را اجرا میکنند.
تیم امنیت محصول مسئول تصحیح به موقع خطاها و مسائل امنیتی در کتابخانه ها و محیط های زبانی است که اثربخشی کار آنها با استفاده از یک شاخص ویژه ارزیابی می شود. درجه شاخص سلامت کانتینر.
تیمی از مدیران محصول و مهندسان به افزودن ویژگیهای جدید و تضمین چرخه عمر طولانی محصول اختصاص داده شدهاند و به شما اطمینان میدهند که سرمایهگذاریتان را برای ساختن آن افزایش دهید.
Red Hat Enterprise Linux یک میزبان و تصویر عالی برای کانتینرها ایجاد می کند، اما بسیاری از توسعه دهندگان توانایی کار با سیستم را در قالب های مختلف، که برخی از آنها ممکن است خارج از موارد استفاده پشتیبانی شده از سیستم لینوکس باشد، ارزش می گذارند. اینجاست که تصاویر جهانی UBI به کمک می آیند.
فرض کنید در حال حاضر، در این مرحله، شما فقط به دنبال یک تصویر پایه برای شروع کار بر روی یک برنامه کاربردی کانتینری ساده هستید. یا در حال حاضر به آینده نزدیکتر شدهاید و از کانتینرهای مستقلی که با موتور کانتینر کار میکنند به یک تاریخچه بومی ابری با استفاده از ساخت و تأیید اپراتورهای در حال اجرا در OpenShift در حال حرکت هستید. در هر صورت، UBI یک مبنای عالی برای این کار فراهم خواهد کرد.
ظروف شامل یک نسخه سبک وزن از فضای کاربری سیستم عامل در قالب بسته بندی جدید است. انتشار تصاویر UBI یک استاندارد صنعتی جدید را برای توسعه کانتینری تنظیم می کند و کانتینرهای کلاس سازمانی را در دسترس هر کاربر، توسعه دهندگان نرم افزار مستقل و جوامع منبع باز قرار می دهد. بهویژه، توسعهدهندگان نرمافزار میتوانند محصولات خود را با استفاده از یک پایه ثابت و واحد برای همه برنامههای کاربردی خود، از جمله اپراتورهای Kubernetes. شرکتهای توسعهای که از UBI استفاده میکنند همچنین به گواهینامه Red Hat Container و Red Hat OpenShift Operator Certification دسترسی دارند که به نوبه خود امکان تأیید مداوم نرمافزارهای در حال اجرا بر روی پلتفرمهای Red Hat مانند OpenShift را دارند.
نحوه شروع کار با تصویر
خلاصه خیلی ساده است. Podman نه تنها در RHEL، بلکه در Fedora، CentOS و چندین توزیع دیگر لینوکس نیز در دسترس است. تنها کاری که باید انجام دهید این است که تصویر را از یکی از مخازن زیر دانلود کنید و آماده هستید.