بلاگ/افزودن Compute Node به کلاستر OpenStack با Kolla-Ansible: مقیاس‌پذیری روی سرور اختصاصی
به‌روز شده

افزودن Compute Node به کلاستر OpenStack با Kolla-Ansible: مقیاس‌پذیری روی سرور اختصاصی

1405/06/214 بازدید
افزودن Compute Node به کلاستر OpenStack با Kolla-Ansible: مقیاس‌پذیری روی سرور اختصاصی

افزودن Compute Node به کلاستر OpenStack با Kolla-Ansible: مقیاس‌پذیری روی سرور اختصاصی

وقتی تعداد ماشین‌های مجازی در OpenStack بیشتر می‌شود، معمولاً نخستین گلوگاه در لایهٔ محاسباتی (Compute) دیده می‌شود. در این وضعیت لازم نیست کنترلرها یا سرویس‌های مدیریتی را از ابتدا نصب کنید. می‌توانید یک سرور اختصاصی جدید را به‌عنوان Compute Node اضافه کنید تا Nova بار اجرای نمونه‌های جدید را میان منابع بیشتری توزیع کند. Kolla-Ansible این کار را با الگوی زیرساخت به‌عنوان کد ساده می‌کند. کافی است سرور جدید را آماده کنید، اینونتوری را به‌روزرسانی کنید و playbookهای مناسب را اجرا کنید. اگر کلاستر پایه را هنوز راه‌اندازی نکرده‌اید، ابتدا نصب و راه‌اندازی OpenStack روی سرور اختصاصی با Kolla-Ansible را ببینید؛ در این راهنما، مراحل افزودن compute node به openstack را روی یک کلاستر موجود بررسی می‌کنیم و در پایان، صحت قرارگیری نود در سرویس‌های Nova و Placement را می‌سنجیم. روند افزودن چند سرور جدید به یک کلاستر واحد با Kolla-Ansible

پیش‌نیازهای سرور اختصاصی جدید

پیش از تغییر کلاستر، مشخصات و وضعیت سرور جدید را با نیازمندی‌های محیط فعلی هماهنگ کنید. اختلاف نسخهٔ سیستم‌عامل، معماری پردازنده یا تنظیمات شبکه می‌تواند باعث شود استقرار کانتینرها موفق باشد، اما اجرای ماشین مجازی با خطا مواجه شود. حداقل موارد زیر را بررسی کنید: - سیستم‌عامل پشتیبانی‌شده و هم‌نسخه با نودهای فعلی؛ برای نمونه Ubuntu یا Rocky Linux مطابق نسخه‌ای که Kolla-Ansible شما پشتیبانی می‌کند. - نام میزبان یکتا و رکوردهای DNS یا /etc/hosts برای همهٔ نودها. - دسترسی شبکه‌ای پایدار به شبکهٔ مدیریت، API و شبکهٔ تونل یا Provider. - فعال بودن VT-x یا AMD-V در BIOS/UEFI. - دیسک کافی برای ایمیج‌های موقت، لاگ‌ها و سرویس‌های کانتینری؛ اگر بعداً به فضای بیشتری نیاز شد، مدیریت دیسک با LVM روی سرور اختصاصی و VPS افزایش فضا را بدون Downtime ممکن می‌کند. - زمان سیستم هماهنگ با NTP یا Chrony. اگر سرور از چند رابط شبکه استفاده می‌کند، از همان ابتدا نقش هر رابط را مشخص کنید. یک رابط معمولاً برای مدیریت و API، و رابط دیگر برای تونل‌های شبکه یا ترافیک Provider استفاده می‌شود. نام رابط‌ها باید با مقادیر network_interface و tunnel_interface در تنظیمات Kolla-Ansible مطابقت داشته باشد.

سازگاری منابع سخت‌افزاری

اگر هنوز سرور اختصاصی جدید را انتخاب نکرده‌اید، راهنمای انتخاب پلن سرور اختصاصی آریانت کمک می‌کند تیر مناسب را متناسب با بار موردانتظار این Compute Node انتخاب کنید. قرار نیست همهٔ Compute Nodeها دقیقاً یکسان باشند، اما بهتر است تفاوت‌ها را مستند کنید. تعداد هسته، مقدار RAM، نوع دیسک و قابلیت‌های CPU روی ظرفیت زمان‌بندی Nova اثر می‌گذارند. اگر یک سرور پردازندهٔ قدیمی‌تری دارد، مدل CPU را در تنظیمات Nova طوری انتخاب کنید که مهاجرت زنده میان نودها با مشکل ناسازگاری مواجه نشود.

موردکنترلرهای موجودCompute Node جدید
سیستم‌عامل و نسخهیکسان یا سازگارمطابق نسخهٔ کلاستر
نام میزبانیکتایکتا و قابل resolve
مجازی‌سازی سخت‌افزاریفعالفعال در BIOS/UEFI
شبکهٔ مدیریتدسترسی به API و SSHIP ثابت و دسترسی دوطرفه
زمان سیستمNTP/Chronyهمگام با کلاستر

آماده‌سازی SSH و دسترسی Ansible

Kolla-Ansible از طریق SSH به سرور جدید متصل می‌شود. روی نودی که فرمان‌های استقرار را اجرا می‌کنید، کلید عمومی کاربر مدیریتی را در authorized_keys سرور جدید قرار دهید. سپس اتصال را بدون درخواست رمز عبور آزمایش کنید:

ssh-copy-id cloudadmin@compute-03
ssh cloudadmin@compute-03 'sudo -n true && hostnamectl'

کاربر باید اجازهٔ اجرای دستورات مدیریتی با sudo داشته باشد. در فایل /etc/sudoers.d/cloudadmin می‌توانید دسترسی لازم را تعریف کنید:

cloudadmin ALL=(ALL) NOPASSWD: ALL

مجوز فایل را محدود کنید:

sudo chmod 440 /etc/sudoers.d/cloudadmin

اگر سیاست امنیتی شما استفاده از NOPASSWD را نمی‌پذیرد، باید روش تأمین رمز sudo را در Ansible به‌صورت امن تنظیم کنید. رمز را در متن playbook یا مخزن Git قرار ندهید. برای سخت‌سازی بیشتر همین دسترسی، امن‌سازی دسترسی SSH به سرور لینوکس را هم مطالعه کنید. فایروال سرور جدید نیز باید پورت‌های SSH و ارتباطات موردنیاز سرویس‌های OpenStack را اجازه دهد. در محیط‌های تولیدی، به‌جای باز کردن همهٔ پورت‌ها، دامنهٔ IP شبکهٔ مدیریت و تونل را محدود کنید؛ برای تعریف دقیق این قوانین می‌توانید از راه‌اندازی فایروال nftables روی سرور لینوکس کمک بگیرید.

افزودن نود به اینونتوری Kolla-Ansible

فایل اینونتوری مورد استفادهٔ کلاستر را پیدا کنید. در بسیاری از نصب‌ها نام آن multinode است. بخش را باز کنید و سرور جدید را با نامی که در DNS یا فایل hosts تعریف کرده‌اید اضافه کنید: ```ini