لودبالانسینگ در رنچر

ابزار ارکستریشن مورد علاقه من رنچر هستش به دلیل تحریم هایی که برای کوبرنتیز داریم من تمپلیت cattle رو برای پروداکشن و تست ترجیح میدم . کتل توسط تیم رنچر توسعه داده شده و از رنچر کامپوز و داکر کامپوز هم پیشتیبانی میکنه . نصب و راه اندازی rancher ساده است کمی جزئیات داره که با کمی بالا پایین کردن داکیومنت های رنچر به راحتی میتونید پیاده سازی کنید (ویدئو آموزشی که با یکی از دوستان آماده کرده بودیم متاسفانه از روی سیستمش پاک شده )

به صورت پیشفرض و سنتی اگه بخواین لود بالانسینگ راه اندازی کنید مجبور هستین روی پورت ۸۰ و۴۴۳ هرکدوم از هاست هایی که به کلاستر متصل هست پورت رو مپ کنید که برای virtualhosting مناسب نیست .

راه حل مورد علاقه من این هستش که یه لود بالانسر گلوبال یا به عبارتی frontended loadbalancer جلوی تمام ترافیکی که به سمت کلاستر میاد قرار بدیم و با label ترافیک رو به سمت کانتینر ها مدیریت کنیم . معماریش در واقع اینطوری میشه

تو قدم اول یه استک بسازین به هر اسمی که دوست دارین و توش یه لود بالانسر اضافه کنید فراموش نکنید که تو schedule انتخاب کنید که دقیقا روی کدوم از هاست هاتون میخواین پیاده سازی بشه (همون هاستی که dns ها قراره به اون resolve بشن ) روی add selector rule کلیک کنید و این مقادیر رو اضافه کنید

حالا وقتشه سراغ استکی برین که قراره توش internal loadbalancer پیاده سازی بشه ایندفعه به جای public رول internal رو انتخاب کنید و اینجوری سرویس خودتون رو مپ کنید ، نکته مهم این هستش که تو لود بالانسرتون تو قسمت label ها مقدار web.http یا web.https رو بنا به نیاز خودتون معادل true قرار بدین

تبریک میگم حالا شما سرویسی دارین که میتونه scale بشه loadbalancer های اینترنال میتونه scale بشه و virtualhosting هم انجام بشه .

مباحث دیگه ای مثل forwardfor تو haproxy و maxconn و nbproc تنظیمات sysctl برای تنظیم متغیر های کرنل هم وجود داره که در حوصله این بحث نیست . تنظیمات ssl هم میتونه روی frontend loadbalancer قرار بگیره .