راهنمای پلتفرم ابری ابر آروان برای متخصصین آشنا با Kubernetes
در صورتی که آشنایی کامل با Kubernetes ندارید پیشنهاد میکنید ابتدا مقالهی راهنمای تخصصی پلتفرم ابری و Kubernetes برای مبتدیان را مطالعه کنید.
مقدمه
سرویس پلتفرم ابری آروان بر مبنای نسخه Community پلتفرم OpenShift طراحی و پیادهسازی شده که OpenShift خود بر مبنای Kubernetes پیادهسازی شده است.
بهطور کلی تقریبن تمامی ویژگیهای Kubernetes در OpenShift پشتیبانی شده و صرفا نقاط تمایزی مانند استفاده از OpenShift Route به جای استفاده از Kubernetes Ingress و یا امکان تعریف Build در OpenShift وجود دارد.
همچنین به دلیلی پیادهسازی این سرویس به عنوان یک سرویس ابری در مجموعه سرویسهای ابر آروان، محدودیتهای خاصی برای این محصول وجود دارد که در بخش بعد به بررسی این محدودیتها خواهیم پرداخت.
برای استفاده از پلتفرم ابری ابر آروان نیاز است که از کامندلاین ابر آروان استفاده کنید. برای این منظور کامندلاین ابر آروان را برای سیستمعامل لینوکس و یا مک خود دانلود کرده، و کامندلاین را در PATH خود قرار داده و آن را قابل اجرا (executable) کنید. سپس در بخش تنظیمات < کلیدهای API از پنل، یک کلید جدید تولید کرده و یا از یکی از کلیدهای فعلی خود استفاده کنید. در پایان با استفاده از دستور login در خط فرمان سیستم عامل خود وارد شوید:
arvan login
تمامی دستورات قابل اجرا با کامندلاین ابر آروان با استفاده از زیردستور paas قابل دسترسی است:
arvan paas -h
زیردستور paas کامندلاین ابر آروان بر مبنای oc و kubectl طراحی شده و تمامی دستورات منطبق با دستورات آنهاست.
گرچه کامندلاین پلتفرم ابری با استفاده از APIهای استاندارد kubernetes با سرور مرکزی ارتباط برقرار میکند، استفادهی مستقیم از kubectl و یا oc به دلیل ساختار authentication خاص ابر آروان و اصلاحات جهت بهبود کاربری در کامندلاین، مورد توصیه و پشتیبانی ما نمیباشد.
محدودیتهای پلتفرم ابری در مقایسه با Kubernetes
۱- ورژن Kubernetes API
توجه داشته باشید که سرویس پلتفرم ابری آروان در حال حاضر بر مبنای OpenShift ورژن 3.11 قرار دارد که خود بر مبنای Kubernetes ورژن 1.11 است. پس تمامی apiهای پشتیبانی شده مربوط به این ورژن است. (در آینده با ارائه نسخههای جدید OpenShift Community دیتاسنترهایی با ورژن جدید ارائه خواهد شد.)
۲- دسترسی رده کلاستر
یکی از مهمترین محدودیتهای پلتفرم ابری در مقایسه با نسخه on-premise پلتفرم kubernetes که خود آن را مستقر کردهاید، عدم امکان دسترسی شما در سطح cluster administration است. در پلتفرم ابری ابر آروان تمامی کاربران به پروژهی خود (هر پروژه متناظر یک namespace است) محدود میشوند و سطوح دسترسی فقط در این پروژه قابل تعریف است.
این محدودیت باعث میشود قابلیتهایی از Kubernetes که نیاز به دسترسی در ردهی کلاستر باشند را نتوانید روی پلتفرم پیاده کنید. بهعنوان مثال امکان تعریف CRD روی کلاستر توسط شما، و یا پیادهسازی service meshهایی مانند istio وجود ندارد.
۳- محدودیت تعریف request و limit
محدودیت بعدی در عدم امکان تعریف pod بدون محدود کردن منابع است. در پلتفرم ابری آروان، در تمامی پادها و deploymentها باید برای resoruceهای مصرفی cpu، memory و ephemeral-storage مقادیر limit و request با مقدار برابر ثبت کنید (QoS Class QoS class of Guaranteed). دلیل این محدودیت امکان ارائه سرویس به صورت pay as you go است. هر میزان منابعی که بهعنوان limit منابع شما در پادها در زمانی که در وضعیت running هستند مصرف شوند به همان میزان بر اساس تعرفه پلتفرم ابری هزینه از حساب کاربری شما کسر خواهد شد.
سایر منابع و مفاهیم پایه Kubernetes مانند deployment ،statefulset ،secret ،service و … و همینطور مفاهیم اختصاصی OpenShift مانند route و build در پلتفرم ابری آروان پشتیبانی میشود. برای دریافت راهنماهای این مفاهیم میتوانید به بخش راهنمای پلتفرم ابری مراجعه کرده و یا برای مطالعهی سناریوهای پیادهسازی نرمافزارهای مختلف به بخش مقالات مراجعه نمایید.
کاتالوگ و نرمافزارهای پیشآماده
بخش کاتالوگ پنل پلتفرم ابری ابر آروان بر مبنای کاتالوگ سرویس OpenShift طراحی شده که امکان ایجاد نرمافزارهای پیچیده را با استفاده از یک Template فراهم میکند. کاربر برای ساخت یک نرمافزار بر اساس این Template باید یک Service Instance با پارامترهای آن بسازد که این کار با استفاده از پنل انجام میپذیرد.
توجه داشته باشید که حذف کردن ماهیتهایی که توسط کاتالوگ ساخته شده بیاثر بوده و بعد از مدتی دوباره ساخته خواهند شد. بهعنوان مثال اگر Deployment یک Redis که با کاتالوگ ساخته شده را حذف کنید، مجدد دوباره ایجاد خواهد شد. به همین دلیل توصیه میکنیم برای ایجاد و حذف این نرمافزارها از پنل استفاده کنید چون پیدا کردن ارتباط بین این ماهیتها کمی مشکل است.
در صورتی که میخواهید از طریق کامندلاین نرمافزار ساخته شده با کاتالوگ را حذف کنید، حذف کردن Service Instance مربوطه تمامی ماهیتهای ایجاد شده را حذف خواهد کرد.