کوبرنتیز (Kubernetes) یک راهکار متن باز (Open Source) و رایگان برای مدیریت کانتینر و سرویس است. شرکت گوگل که توسعه دهنده اولیه این پلتفرم است آن را به هدف مدیریت برنامه های کانتینرسازی شده و سرویس در مجموعه از گره ها (Node) طراحی کرد. اما صرف نظر از مفاهیم پایه ای کوبرنتیز در این مقاله می خواهیم با مدیریت پایگاه داده ها در این پلتفرم بیشتر آشنا شویم.
مدیریت پایگاه داده ها در کوبرنتیز
ابتدا باید بدانیم که چطور می توان پایگاه داده ها را در کوبرنتیز مدیریت کرد. در این پلتفرم برای مدیریت پایگاه داده ها (Database) دو راه اصلی وجود دارد: StatefulSets و DaemonSets. ما هم به همین ترتیب این دو راه را با هم بررسی می کنیم.
مدیریت پایگاه داده ها در کوبرنتیز با StatefulSets
یک استیت فول ست گروهی از پادها (Pod) با هویت ثابت و هاست نیم (Host name) ثابت است که برای اجرای سرویس های تکراری و حالتمند کوبرنتیز طراحی شده است. کوبینتیز چه برنامه ریزی شده و چه نشده باشد، پادها را در StatefulSet نگهداری می کند. ست ها، دیسک های پایداری دارند که در آنها داده های گذرا مانند اطلاعات وضعیت هر کدام از پادها نگهداری می شود. هر پاد در StatefulSet یک آی دی (ID) منحصر به فرد دارد که به کوبرنتیز اجازه می دهد تا یک پایگاه داده های تکراری را اجرا کند. منحصر به فرد بودن آی دی به این معنی است که حتی با تغییر برنامه ریزی و راه اندازی در سیستم دیگر هم ثابت می ماند.
مدیریت پایگاه داده ها در کوبرنتیز با DaemonSets
سرویس DaemonSets کارش اطمینان حاصل کردن از اجرای یک پاد در تمام گره ها (Node) است. به عنوان مثال می توانید یک DaemonSets را در یک خوشه با پنج گره اجرا کنید. در این حالت DaemonSets در مجموع پنج پاد را برنامه ریزی کرده است. این کار به شما اجازه می دهد تا بتوانید یک دیتابیس را روی مجموعه خاصی از نادها اجرا کنید و همزمان اطمینان داشته باشید که کوبرنتیز در دسترسی بودن همیشگی پایگاه داده ها را برایتان تضمین کند. با استفاده از این سرویس نیازی به اجرای هیچ چیز دیگری در نادهای پایگاه داده ها ندارید. DaemonSets از لوکال دیسک با اطمینان بیشتری استفاده می کند، چرا که نیازی به برنامه ریزی مجدد پادهای پایگاه داده نداشته و نگرانی بابت از دست رفتن دیسک ها را ندارید. با اینحال باید توجه داشت که خود لوکال دیسک ها مستعد خرابی هستند.
چند نکته برای راه اندازی پایگاه داده ها در کوبرنتیز
زمانی که از کوبرنتیز استفاده می کنید، باید نوع پایگاه داده ها را با توجه به محدودیت های مختلف و عملکرد آن در نظر بگیرید. بهتر است ابتدا موارد زیر را در نظر داشته باشید:
نوع پایگاه داده ها: معمولا پایگاه داده هایی مثل (Elasticsearch، MondoDB و Cassandra) برای کوبرنتیز مناسبتر هستند. چرا که ویژگی های داخلی مناسبتری برای هماهنگی با آن دارند.
کارکرد: عملکرد پایگاه داده ها و نحوه ارتباط آن با نیازهای کسب و کار خود را پیش از انتخاب در نظر بگیرید.
حالت تکرارشونده: مهم است تا بدانید چه حالت های تکرار شونده ای در پایگاه داده های شما امکان پذیر هستند. تکرار غیرهمزمان خطر از دست رفتن داده ها را افرایش می دهد.
منبع:
https://cloud.netapp.com/blog/cvo-blg-kubernetes-database-how-to-deploy-manage-dbs-on-kubernetes