پرش به مطلب اصلی

اپراتورها

اپراتورها در کوبرنتیز افزونه‌هایی برای خودکارسازی استقرار اپلیکیشن‌ها هستند. به‌طور معمول اپراتورها با فراهم کردن کنترلرها و Custom Resource Definition یا CRDها به‌شما کمک می‌کنند اپلیکیشن‌ها را به‌طور خودکار نصب و مدیریت کنید. در واقع اپراتورهای کوبرنتیز می‌توانند به‌کمک APIهای کوبر اپلیکیشن‌های پیچیده را به‌جای کاربر ایجاد، پیکربندی و نگه‌داری کنند.

کوبرنتیز می‌تواند اپلیکیشن‌های Stateless مانند وب‌اپلیکیشن‌ها، بک‌اند موبایل یا سرویس‌های API را بدون نیاز به آگاهی از شیوه‌ی عملکرد آن‌ها مدیریت و مقیاس کند. اما برای اپ‌های Stateful مانند دیتابیس‌ها و سیستم‌های مانیتورینگ نیاز به دانش اضافه‌ای وجود دارد که کوبرنتیز آن‌ را ندارد. اپراتورهای کوبرنتیز این دانش را در افزونه‌های Kubernetes قرار می‌دهند تا بتوانند چرخه‌ی عمر اپ را مدیریت و خوکار کنند.

به عبارت دیگر، اپراتورها مثل یک "اپراتور انسانی" عمل می‌کنند که وظایف تکراری و پیچیده را به‌طور خودکار انجام می‌دهد.

برای نمونه، اگر یک دیتابیس دچار خرابی شود، اپراتور می‌تواند به صورت خودکار اقدام به بازیابی داده‌ها و راه‌اندازی مجدد دیتابیس کند. هم‌چنین، اپراتورها می‌توانند به صورت خودکار برنامه‌ها را به نسخه‌های جدیدتر ارتقاء دهند و اطمینان حاصل کنند که تمامی اجزای سیستم به درستی پیکربندی شده‌اند.

کانتینر ابری آروان‌کلاد با ارایه‌ی اپراتورهای پرکاربردی هم‌چون MongoDB ،PostgreSQL ،MariaDB ،Redis ،Kafka و CockroachDB تجربه‌ی ساده‌تری در اجرا و مدیریت این اپلیکیشن‌ها فراهم کرده است.

این قابلیت از طریق Kubectl در دسترس شما قرار دارد.

استفاده از اپراتورها​

با اجرای دستور زیر به‌کمک Kubectl می‌توانید لیستی از تمام اپراتورهای موجود در زیرساخت کانتینر ابری را دریافت کنید:

kubectl api-resources

پس از آن می‌‌توانید با دریافت فایل yaml موردنظرتان و اجرای دستور زیر از آن‌ها استفاده کنید.

kubectl apply -f [operator.yaml] -n [namespace]

توجه داشته باشید هر یک از این اپراتورها توسط ارایه‌دهنده‌هایی مانند Strimzi ،Opstreelabs و ... طراحی شده‌اند. بنابراین اپلیکیشن‌هایتان ممکن است بر اساس محدودیت‌ها و ویژگی‌های هر کدام تحت تاثیر قرار بگیرد.