برای استفادهی تخصصی از کانتینر ابری آروان نیاز است با مفاهیم Kubernetes آشنایی داشته باشید. در این راهنما به بررسی کانتینر ابری آروان به کمک این مفاهیم خواهیم پرداخت. اگر آشنایی کامل با Kubernetes ندارید، پیشنهاد میشود ابتدا مقالهی راهنمای تخصصی کانتینر ابری و Kubernetes برای مبتدیان را مطالعه کنید و سپس به بررسی این راهنما بپردازید.
مقدمه
سرویس کانتینر ابری آروان بر مبنای نسخه Community پلتفرم OpenShift طراحی و پیادهسازی شده که OpenShift خود بر مبنای Kubernetes پیادهسازی شده است.
بهطور کلی تقریبن تمامی ویژگیهای Kubernetes در OpenShift پشتیبانی شده و صرفا نقاط تمایزی مانند استفاده از OpenShift Route به جای استفاده از Kubernetes Ingress و یا امکان تعریف Build در OpenShift وجود دارد.
همچنین به دلیلی پیادهسازی این سرویس به عنوان یک سرویس ابری در مجموعه سرویسهای ابر آروان، محدودیتهای خاصی برای این محصول وجود دارد که در بخش بعد به بررسی این محدودیتها خواهیم پرداخت.
برای استفاده از کانتینر ابری ابر آروان نیاز است از کامندلاین ابر آروان استفاده کنید. برای این منظور، کامندلاین ابر آروان را برای سیستمعامل لینوکس و یا مک خود دانلود کرده، و آن را در PATH خود قرار داده و قابل اجرا کنید. سپس در بخش تنظیمات < کلیدهای 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 مربوطه تمامی ماهیتهای ایجاد شده را حذف خواهد کرد.