اگرچه بسیاری از شرکت ها به Kubernetes کمک کرده اند، مشارکت Red Hat به ویژه قابل توجه است. Red Hat از آغاز بهعنوان یک پروژه منبع باز، بخشی از اکوسیستم Kubernetes بوده است و همچنان به عنوان دومین مشارکتکننده بزرگ Kubernetes فعالیت میکند. بر اساس این تخصص عملی با Red Hat توزیع خود را از Kubernetes ارائه می دهد که از آن به عنوان OpenShift یاد می کند. OpenShift گسترده ترین توزیع Kubernetes در سراسر سازمان ها است. این پلتفرم 100% سازگار Kubernetes را فراهم می کند و آن را با ابزارها و قابلیت های مختلفی که بر بهبود بهره وری توسعه دهندگان و عملیات فناوری اطلاعات متمرکز شده اند، تکمیل می کند. OpenShift ابتدا در سال 2011 منتشر شد. در آن زمان، محیط اجرای کانتینر مخصوص پلتفرم خود را داشت. در اوایل سال 2014، تیم Red Hat با تیم ارکستراسیون کانتینر در Google ملاقات کرد و در مورد پروژه جدید ارکستراسیون کانتینر که در نهایت به Kubernetes تبدیل شد، مطلع شد. تیم Red Hat به طرز باورنکردنی تحت تاثیر Kubernetes قرار گرفت و OpenShift برای استفاده از Kubernetes به عنوان موتور ارکستراسیون کانتینر خود بازنویسی شد. در نتیجه این تلاش ها، OpenShift توانست یک پلتفرم 100% سازگار Kubernetes را به عنوان بخشی از نسخه 3 خود در ژوئن 2015 ارائه کند.
پلتفرم کانتینر OpenShift Red Hat Kubernetes قابلیتهای پشتیبانی اضافی برای عملیاتی کردن آن برای نیازهای سازمانی دارا است . انجمن Kubernetes برای یک دوره حداکثر 12 ماهه، راهحلهایی را برای انتشار ارائه میکند. OpenShift با ارائه پشتیبانی طولانی مدت (سه سال یا بیشتر) برای نسخه های اصلی Kubernetes، وصله های امنیتی و قراردادهای پشتیبانی سازمانی که هم سیستم عامل و هم پلت فرم OpenShift Kubernetes را پوشش می دهد، خود را از سایر توزیع ها متمایز می کند. Red Hat Enterprise Linux (RHEL) مدتهاست که توزیع واقعی لینوکس برای سازمانهای بزرگ و کوچک بوده است. Red Hat OpenShift Container Platform بر روی RHEL ساخته شده است تا از توزیع های لینوکس منسجم از سیستم عامل میزبان از طریق همه توابع کانتینری درکلاستز اطمینان حاصل کند. علاوه بر تمام این مزایا، OpenShift با تکمیل آن با ابزارها و قابلیتهای متنوعی که بر بهبود بهرهوری توسعهدهندگان و عملیات فناوری اطلاعات متمرکز شدهاند، Kubernetes را تقویت میکند. بخش های زیر این مزایا را شرح می دهند .
مزایای openshift برای برنامه نویس ها :
در حالی که Kubernetes دارای عملکردهای زیادی برای تهیه و مدیریت ایمیج های کانتینر است، اما پشتیبانی زیادی برای ایجاد ایمیج های جدید از ایمیج پایه، ارسال ایمیج ها به رجیستری، یا شناسایی زمانی که نسخه های جدید در دسترس قرار می گیرند، ارائه نمی دهد. علاوه بر این، پشتیبانی شبکه ارائه شده توسط Kubernetes می تواند بسیار پیچیده باشد. برای پر کردن این شکافها، OpenShift مزایای متعددی را به توسعهدهندگان ارائه میکند، فراتر از مزایای ارائه شده توسط پلتفرم اصلی Kubernetes:
1-سورس فایل به ایمیج :
هنگام استفاده از Kubernetes اولیه، توسعهدهنده برنامه ابری مسئول ایجاد ایمیج های کانتینر خود است. به طور معمول، این شامل یافتن ایمیج های پایه مناسب و ایجاد یک Dockerfile با تمام دستورات لازم برای گرفتن یک ایمیج پایه و اضافه کردن کد توسعهدهنده برای ایجاد یک ایمیج اسمبل شده است که Kubernetes میتواند اجرا کند. این امر مستلزم آن است که توسعه دهنده انواع دستورات Docker را که برای اسمبل ایمیج استفاده می شود، یاد بگیرد. OpenShift با قابلیت Source-to-Image (S2I) خود می تواند کدهای توسعه دهنده ابر را در ایمیج پایه ادغام کند. در بسیاری از موارد، S2I را می توان به گونه ای پیکربندی کرد که تنها کاری که توسعه دهنده باید انجام دهد این است که تغییرات خود را در یک مخزن Git انجام دهد و S2I تغییرات به روز شده را مشاهده کرده و آنها را با یک ایمیج پایه ادغام می کند تا یک ایمیج اسمبل شده جدید برای استقرار ایجاد کند.
2- ارسال ایمیج ها به رجیستری :
یکی دیگر از مراحل کلیدی که باید توسط توسعه دهنده ابر هنگام استفاده از Kubernetes پایه انجام شود، ذخیره ایمیج های تازه اسمبل شده در یک رجیستری تصویر مانند Docker Hub است. در این حالت، توسعه دهنده نیاز به ایجاد و مدیریت مخزن دارد. در مقابل، OpenShift رجیستری خصوصی خود را فراهم می کند و توسعه دهندگان می توانند از آن گزینه استفاده کنند، یا S2I می تواند پیکربندی شود تا ایمیج های اسمبل شده را به رجیستری های شخص ثالث منتقل کند.
3- استریم ایمیج ها :
هنگامی که توسعهدهندگان برنامههای ابری ایجاد میکنند، تلاش توسعه منجر به تعداد زیادی تغییرات پیکربندی و همچنین تغییرات در ایمیج کانتینر برنامه میشود. برای پرداختن به این پیچیدگی، OpenShift عملکرد استریم ایمیج را ارائه میکند که پیکربندی یا تغییرات ایمیج را نظارت میکند و ساختها و استقرارهای خودکار را بر اساس رویدادهای تغییر انجام میدهد. این ویژگی باری را از دوش توسعهدهنده میگیرد که هر زمان که تغییراتی اتفاق میافتد، این مراحل را به صورت دستی انجام دهد.
4- لیست ایمیج های پایه :
OpenShift یک کاتالوگ ایمیج پایه با تعداد زیادی ایمیج پایه مفید برای ابزارها و پلتفرم های مختلف مانند WebSphere Liberty، JBoss، PHP، Redis، Jenkins، Python، .NET، MariaDB و بسیاری دیگر ارائه می دهد. کاتالوگ محتوای قابل اعتمادی را ارائه می دهد که از سورس کد های شناخته شده ساخته شده است.
4-Routes(مسیر یابی):
پیکربندی شبکه در Kubernetes پایه می تواند بسیار پیچیده باشد. OpenShift یک ساختار route دارد که با سرویسهای Kubernetes ارتباط برقرار میکند و مسئول افزودن سرویسهای Kubernetes به یک لودبالانسر خارجی است. مسیرها همچنین URL های قابل خواندن برای برنامه ها و انواع استراتژی های متعادل کننده بار را برای پشتیبانی از چندین گزینه استقرار، مانند استقرار آزمایش blue-green، canary و A/B ارائه می دهند. در حالی که OpenShift مزایای زیادی برای توسعه دهندگان دارد، بزرگترین وجه تمایز آن مزایایی است که به عملیات IT می دهد. در بخش بعدی، چندین مورد از قابلیتهای اصلی را برای خودکارسازی عملیات روزانه اجرای OpenShift در تولید شرح میدهیم.
مزایای openshift برای تیم های عملیات و نگهداری :
در ماه مه 2019، Red Hat از انتشار OpenShift 4.11 Red Hat به CoreOS خبر داد که رویکردی بسیار خودکار برای مدیریت رفتار چرخه زندگی Kubernetes داشت و اولین مدافع مفهوم «اپراتور» بود. این نسخه جدید OpenShift به طور کامل بازنویسی شد تا بر اساس قابلیتهای شیوههای مدیریت نوآورانه CoreOS و شهرت OpenShift 3 برای قابلیت اطمینان، که به طرز چشمگیری نحوه نصب، ارتقا و مدیریت پلتفرم OpenShift را بهبود بخشد. برای ارائه این بهبودهای قابل توجه در چرخه عمر، OpenShift به شدت از آخرین نوآوری ها و بهترین شیوه های Kubernetes برای خودکارسازی مدیریت منابع در معماری خود استفاده کرد. در نتیجه این تلاش ها، OpenShift 4 می تواند مزایای زیر را برای عملیات IT ارائه دهد:
1-نصب اتوماتیک :
OpenShift 4 از یک رویکرد نصب نوآورانه پشتیبانی می کند که خودکار، قابل اعتماد و قابل تکرار است. علاوه بر این، فرآیند نصب OpenShift 4 از استقرار خودکار تمام پشته پشتیبانی می کند و می تواند نصب زیرساخت کامل، از جمله اجزایی مانند DNS و VM را انجام دهد.
2-سیستم عامل اتومات و آپدیت های openshift :
OpenShift به شدت با سیستم عامل سبک RHEL CoreOS یکپارچه شده است، که خود برای اجرای OpenShift و برنامه های ابری بهینه شده است. به لطف اتصال فشرده OpenShift با نسخه خاصی از RHEL CoreOS، پلتفرم OpenShift قادر است به روز رسانی سیستم عامل را به عنوان بخشی از عملیات مدیریت کلاتسر خود مدیریت کند. ارزش کلیدی این رویکرد برای عملیات فناوری اطلاعات این است که از بهروزرسانیهای خودکار، خود مدیریتی پشتیبانی میکند. این OpenShift را قادر می سازد تا از عملیات ابری و اتوماتیک ابری پشتیبانی کند.
3- مدیریت اتوماتیک اندازه کلاستر :
OpenShift از توانایی افزایش یا کاهش خودکار اندازه کلاستری که مدیریت می کند پشتیبانی می کند. مانند همه کلاسترهای Kubernetes، یک کلاستر OpenShift تعداد معینی گره worker دارد که برنامههای کانتینری روی آنها مستقر میشوند. در یک کلاستر معمولی Kubernetes، افزودن گره های worker یک عملیات خارج از باند است که عملیات فناوری اطلاعات باید به صورت دستی آن را انجام دهند. در مقابل، OpenShift مؤلفهای به نام اپراتور ماشین ارائه میکند که میتواند به طور خودکار گرههای worker را به یک کلاستر اضافه کند. یک اپراتور فناوری اطلاعات میتواند از یک شی MachineSet برای اعلام تعداد ماشینهای مورد نیاز کلاستر استفاده کند و OpenShift به طور خودکار تهیه و نصب گرههای worker جدید را برای رسیدن به وضعیت مطلوب انجام میدهد.
4- مدیریت خودکار ورژن کلاستر :
OpenShift مانند همه توزیع های Kubernetes از تعداد زیادی مؤلفه تشکیل شده است. هر کدام از این اجزا دارای شماره نسخه مخصوص به خود هستند. برای مدیریت بهروزرسانی هر یک از این مؤلفهها، OpenShift بر یک نوآوری Kubernetes به نام ساختار عملگر متکی است. OpenShift از یک شماره نسخه کلاستر ای برای تشخیص اینکه کدام نسخه OpenShift در حال اجرا است استفاده می کند و این شماره نسخه کلاستر ای نشان می دهد که کدام نسخه از اجزای پلتفرم OpenShift منفرد باید نصب شوند. با مدیریت خودکار نسخه کلاستر، OpenShift میتواند نسخههای مناسب همه این مؤلفهها را بهطور خودکار نصب کند تا اطمینان حاصل شود که هنگام بهروزرسانی کلاستر به نسخه جدید، بهدرستی بهروزرسانی میشوند.
5- پشتیبانی از قابلیت MultiCloud :
بسیاری از مشتریان سازمانی که از OpenShift استفاده می کنند دارای چندین ;کلاستر هستند و این کلاستر ها در چندین ابر یا در چندین مرکز داده مستقر می شوند. برای سادهسازی مدیریت کلاسترهای چندگانه، OpenShift 4 کنسول ابری یکپارچه جدیدی را معرفی کرده است که به مشتریان اجازه میدهد چندین کلاستر OpenShift را مشاهده و مدیریت کنند.
معماری Openshift :
در شکل زیر می توانید معماری openshift را ملاحظه بفرمایید :