HAProxy
برنامه HAProxy یک ابزار متنباز و قدرتمند برای توزیع بار (Load Balancing) و معکوس کردن پروکسی (Reverse Proxy) است که از پروتکلهای TCP و HTTP پشتیبانی میکند. وظیفه اصلی این سرویس، توزیع هوشمندانه ترافیک شبکه بین سرورهای مختلف و ارتقای پایداری برنامههای تحت وب است. این ابزار با اجرای مستمر تستهای سلامت (Health Checks)، ترافیک ورودی را منحصرا به سرورهای سالم هدایت کرده و از بروز اختلال در سیستمهای توزیع شده جلوگیری میکند.
مراحل استقرار
برای مشاهده راهنمای گامبهگام ساخت سرویس و پیکربندیهای پایه، به مستندات «استقرار برنامههای آماده» مراجعه کنید. همچنین برای تنظیمات زیرساختی نیز به بخش مدیریت اپلیکیشن مراجعه کنید:
پیشنیازها و استقرار برنامه
در استقرار کانتینری HAProxy، معماری سیستم دارای الزامات و محدودیتهای زیر است که باید در زمان دیپلوی به آنها توجه کنید:
-
معماری بدون حالت (Stateless): این کانتینر صرفا وظیفه هدایت و توزیع ترافیک را بر عهده دارد؛ بنابراین فاقد فضای ذخیرهسازی پایدار (Persistent Volume) جهت نگهداری دادهها است و دیسکی به آن متصل نمیشود.
-
سطح دسترسی سیستمی: جهت حفظ امنیت شبکه، ترمینال و اپلیکیشن این سرویس با سطح دسترسی کاربر عادی (Non-Root) اجرا میشوند تا امکان اجرای دستورات سیستمی در هسته سیستمعامل مسدود باشد.
متغیرهای محیطی
در فرایند پیکربندی، علاوه بر تعیین نام پروژه، نام اپلیکیشن و نام دامنه (Sub-domain)، تنظیم دقیق متغیرهای سلامت (Probes) کاملا حیاتی است. پیکربندی اشتباه این مقادیر میتواند منجر به قطع شدن مسیر ترافیک یا ریاستارت شدن مداوم کانتینر شود:
-
Liveness Probe (بررسی زنده بودن): این تست مشخص میکند که آیا برنامه به درستی در حال اجرا است یا خیر. در صورت عدم موفقیت، زیرساخت کانتینر را از کار افتاده (Unhealthy) تلقی کرده و آن را ریاستارت میکند.
-
initial delay: زمان انتظار اولیه برای شروع تست (پیشفرض: ۵ ثانیه).
-
timeout: حداکثر زمان انتظار برای دریافت پاسخ (پیشفرض: ۱ ثانیه).
-
-
Readiness Probe (بررسی آمادگی): تایید میکند که سرویس آماده دریافت بار و ترافیک ورودی است. در صورت پاس نشدن این تست، ترافیک به سمت زیردامنه تنظیم شده هدایت نخواهد شد.
-
initial delay: (پیشفرض: ۳۰ ثانیه).
-
timeout: (پیشفرض: ۱ ثانیه).
-
-
Startup Probe (بررسی شروع موفق): تعیین میکند که آیا برنامه با موفقیت راهاندازی اولیه را پشت سر گذاشته است یا خیر. تا زمان اتمام این بررسی، دو پروب قبلی متوقف میمانند.
-
initial delay: (پیشفرض: ۳۰ ثانیه).
-
timeout: (پیشفرض: ۵ ثانیه).
-
نکته: برای آموزش گامبهگام نحوه تعریف متغیرهای اختصاصی، ConfigMapها و Secretها در داشبورد، به
تنظیمات دامنه
جهت اتصال دامنه یا سابدامین اختصاصی خود برای هدایت ترافیک، به
راهاندازی و ورود اولیه
به دلیل ماهیت پردازشی و عدم نیاز به ذخیرهسازی دادهها، اسلایدر مربوط به فضای دیسک در این سرویس در دسترس نیست. برای تخصیص منابع، میتوانید از پلن پایه (شامل ۱ گیگابایت رم و ۱ هسته پردازنده) استفاده کرده یا برای شبکههای دارای ترافیک ورودی بالا، منابع را از طریق اسلایدرها شخصیسازی کنید. پس از تایید هزینه، بر روی دکمه «ایجاد اپلیکیشن» کلیک کنید:
- با شروع فرایند ساخت، پنجره خلاصه اطلاعات باز میشود. در این صفحه میتوانید زیردامنه اختصاص یافته و نسخه ایمیج مستقر شده را مشاهده کنید.
- پس از پر شدن نوار پیشرفت بیلد، سرویس HAProxy شما آماده مسیریابی و توزیع ترافیک در شبکه خواهد بود.
نکته فنی مهم:
به دلیل ماهیت لودبالانسر، بلافاصله پس از استقرار و پیش از تعریف سرورهای مقصد، در صورت فراخوانی دامنه با خطای 503 Service Unavailable مواجه خواهید شد. این حالت کاملاً طبیعی است و نشان میدهد هسته سرویس به درستی فعال شده است. برای شروع مسیریابی و توزیع ترافیک، باید در گام بعدی سرورهای پسزمینه (Backend) خود را در فایل پیکربندی سرویس تعریف کنید.