SlideShare a Scribd company logo
1 of 32
‫حق‬ ‫بسمه‬
Load Balancing-as-a-Service (LBaaS) with
: ‫نویسنده‬
‫دخت‬ ‫اسمعیل‬ ‫یاشار‬ ‫مهندس‬
: ‫نسخه‬
0.1
: ‫نویسنده‬ ‫درباره‬
‫رشته‬ ‫آموخته‬ ‫دانش‬ ‫دخت‬ ‫اسمعیل‬ ‫یاشار‬ ‫بنده‬
cyber security
. ‫هستم‬
‫از‬ ‫بیش‬
۱۵
. ‫دارم‬ ‫فعالیت‬ ‫سابقه‬ ‫سال‬
‫مولف‬ - ‫مدرس‬ - ‫مشاور‬ : ‫داد‬ ‫شرح‬ ‫زیر‬ ‫های‬ ‫ساختار‬ ‫در‬ ‫میتوان‬ ‫را‬ ‫بنده‬ ‫های‬ ‫فعالیت‬ ‫جمله‬ ‫از‬
gnu/linux system/network/security/cloud Engineer/administrator & oracle dba | Linux Trainer |devops
. (: ‫جدید‬ ‫دنیاهای‬ ‫کشف‬ ‫و‬ ‫تحقیق‬ ‫و‬ ‫مطالعه‬ ‫به‬ ‫مند‬ ‫علقه‬
. ‫کنم‬ ‫اشاره‬ ‫استراتژی‬ ‫های‬ ‫بازی‬ ‫و‬ ‫اوتلو‬ ‫و‬ ‫شطرنج‬ ‫بازی‬ ‫به‬ ‫میتوانم‬ ‫من‬ ‫های‬ ‫سرگرمی‬ ‫از‬ ‫واقع‬ ‫در‬
‫تبریز‬ ‫لگ‬ ‫گذاران‬ ‫بنیان‬ ‫از‬ ‫یکی‬ ‫و‬ ‫لینوکس‬/‫گنو‬ ‫و‬ ‫باز‬ ‫متن‬ ‫دنیای‬ ‫عاشق‬ . ‫هستم‬ ‫عاشق‬ ‫یک‬ ‫من‬
: ‫کنید‬ ‫پیدا‬ ‫و‬ ‫کنید‬ ‫دنبال‬ ‫را‬ ‫من‬ ‫میتوانید‬ ‫چطور‬ ‫خب‬
Mob : 09141100257
Telegram ID
Telegram channel
Instagram Account
Linkedin Account
. ‫بشنوم‬ ‫را‬ ‫انتقادتون‬ ‫یا‬ ‫پیشنهاد‬ ‫هرگونه‬ ‫میشم‬ ‫خوشحال‬ ‫همچنین‬
: ‫کنید‬ ‫پیدا‬ ‫را‬ ‫من‬ ‫از‬ ‫ی‬ ‫دیگر‬ ‫های‬ ‫کتاب‬ ‫میتونید‬ ‫چطور‬
‫توی‬
slideshare
. ‫کنید‬ ‫پیدا‬ ‫را‬ ‫کردم‬ ‫منتشر‬ ‫آزاد‬ ‫بصورت‬ ‫که‬ ‫دیگری‬ ‫های‬ ‫کتاب‬ ‫میتونید‬ ‫بگردید‬ ‫من‬ ‫اسم‬ ‫دنبال‬ ‫گوگل‬ ‫یا‬
‫این‬ ‫از‬ ‫میتوانید‬ ‫هم‬ ‫دونیت‬ ‫جهت‬
‫لینک‬
‫کنید‬ ‫استفاده‬
: ‫مشاوره‬
. ‫بود‬ ‫خواهم‬ ‫شما‬ ‫دسترس‬ ‫در‬ ‫من‬ . ‫فرمایید‬ ‫حاصل‬ ‫تماس‬ . ‫کردم‬ ‫اشاره‬ ‫قبل‬ ‫صفحه‬ ‫در‬ ‫که‬ ‫هایی‬ ‫کانال‬ ‫از‬ ‫میتوانید‬ ‫مشاوره‬ ‫جهت‬
: ‫به‬ ‫تقدیم‬
‫خدا‬
‫شتافت‬ ‫یاریم‬ ‫به‬ ‫که‬ ‫بود‬ ‫او‬ ‫تنها‬ ‫هایم‬ ‫سختی‬ ‫در‬ ‫که‬ ‫چرا‬
‫مادرم‬
‫اویم‬ ‫مدیون‬ ‫که‬ ‫را‬ ‫ححبت‬‫م‬ ‫و‬ ‫انسانیت‬ ‫داد‬ ‫یاد‬ ‫و‬ . ‫کرد‬ ‫تقدیم‬ ‫زندگی‬ ‫به‬ ‫مرا‬ ‫که‬ ‫چرا‬
‫پدرم‬
‫اویم‬ ‫مدیون‬ ‫و‬ ‫بود‬ ‫من‬ ‫حامی‬ ‫همیشه‬ ‫روحش‬ ‫که‬
‫عشقم‬
‫هست‬ ‫و‬ ‫بود‬ ‫مشوقم‬ ‫که‬
‫سورس‬ ‫اپن‬ ‫جامعه‬
‫بشریت‬
‫را‬ ‫هایش‬ ‫دانسته‬ ‫میکند‬ ‫منتشر‬ ‫و‬ ‫میخواند‬ ‫که‬ ‫او‬ ‫و‬
(: ‫هیچ‬ ‫دیگر‬ ‫و‬ ‫جهانی‬ ‫صلح‬ ‫امید‬ ‫به‬ ‫و‬
‫های‬ ‫سرور‬ ‫روی‬ ‫افزاری‬ ‫نرم‬ ‫ترافیک‬ ‫یا‬ ‫و‬ ‫شبکه‬ ‫بار‬ ‫توضیع‬
Cluster
‫تقسم‬ ‫پایداری‬ ‫و‬ ‫کیفیت‬ ‫افزایش‬ ‫و‬ ‫درخواست‬ ‫به‬ ‫پاسخ‬ ‫سازی‬ ‫بهینه‬ ‫جهت‬
‫یا‬ ‫بار‬
Load Balancing
‫بین‬ ‫بار‬ ‫تقسیم‬ ‫سیستم‬ ‫یا‬ ‫سرور‬ .‫میشود‬ ‫گفته‬
Client
‫و‬
Server Farm
‫نرم‬ ‫و‬ ‫شبکه‬ ‫های‬ ‫ترافیک‬ ‫و‬ ‫میگیرید‬ ‫قرار‬
‫بروز‬ ‫از‬ ‫ها‬ ‫سرور‬ ‫بین‬ ‫عمل‬ ‫این‬ ‫انجام‬ ‫با‬ ‫که‬ ‫میکند‬ ‫توضیع‬ ‫ها‬ ‫سرور‬ ‫بین‬ ‫گوناگون‬ ‫های‬ ‫متد‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬ ‫افزار‬
Single Point Failure
.‫میشود‬ ‫جلوگیری‬
Load Balancing
‫برای‬ ‫معماری‬ ‫ترین‬ ‫کارامد‬ ‫و‬ ‫بهترین‬ ‫از‬ ‫یکی‬
Application server
.‫میباشد‬
‫در‬ ‫افزار‬ ‫نرم‬ ‫لودبالنسینگ‬ ، ‫دو‬ ‫و‬ ‫سه‬ ‫لیه‬ ‫در‬ ‫اینترنت‬ ‫خطوط‬ ‫لودبالنسینگ‬ ، ‫مثال‬ ‫برای‬ . ‫میکنند‬ ‫کار‬ ‫مختلفی‬ ‫های‬ ‫لیه‬ ‫در‬ ‫ها‬ ‫بالنسر‬ ‫لود‬
‫کنید‬ ‫فرض‬ ‫مثل‬ . ‫بشه‬ ‫شامل‬ ‫میتونه‬ ‫حتی‬ ‫هم‬ ‫رو‬ ‫اینترنت‬ ‫های‬ ‫لینک‬ ‫و‬ ‫نیست‬ ‫ها‬ ‫سرور‬ ‫به‬ ‫مختص‬ ‫تنها‬ ‫لودبالنسینگ‬ . ‫چهار‬ ‫و‬ ‫هفت‬ ‫لیه‬
. ‫اسیاتک‬ ‫دیگه‬ ‫خط‬ ‫و‬ ‫انلین‬ ‫پارس‬ ‫خط‬ ‫یه‬ ‫مثل‬ ، ‫کنید‬ ‫تهیه‬ ‫اینترنت‬ ‫مختلف‬ ‫خطوط‬ ‫میتونید‬ ، ‫هستید‬ ‫شرکت‬ ‫یک‬ ‫یا‬ ‫نت‬ ‫کافی‬ ‫یک‬ ‫صاحب‬
‫دیگه‬ ‫و‬ ‫کرد‬ ‫خواهد‬ ‫شدن‬ ‫توزیع‬ ‫به‬ ‫شروع‬ ‫اسیاتک‬ ، ‫شد‬ ‫مشکل‬ ‫دچار‬ ‫انلین‬ ‫پارس‬ ‫که‬ ‫هرموقع‬ ‫حال‬
SPF
. ‫داشت‬ ‫نخواهید‬
‫منابع‬ ‫مصرف‬ ‫و‬ ‫سرور‬ ‫درگیری‬ ‫که‬ ‫زمانی‬ ‫متد‬ ‫این‬ ‫اندازی‬ ‫راه‬ ‫با‬
Application
‫به‬ ‫را‬ ‫جدید‬ ‫های‬ ‫سرور‬ ‫راحتی‬ ‫به‬ ‫میتوان‬ ‫میرود‬ ‫بال‬
Server
Pool
‫جدید‬ ‫سرور‬ ‫شدن‬ ‫اضافه‬ ‫محض‬ ‫به‬ .‫کرد‬ ‫اضافه‬
Request
.‫شد‬ ‫خواهد‬ ‫توضیع‬ ‫نیز‬ ‫جدید‬ ‫سرور‬ ‫روی‬ ‫ترافیک‬ ‫و‬ ‫ها‬
‫وظایف‬ ‫بال‬ ‫توضیحات‬ ‫به‬ ‫توجه‬ ‫با‬
Load Balancer
‫بود‬ ‫خواهد‬ ‫زیر‬ ‫شرح‬ ‫به‬
:
•
‫های‬ ‫درخواست‬ ‫توضیع‬
Client
‫ها‬ ‫سرور‬ ‫بین‬ ‫موثر‬ ‫بصورت‬ ‫شبکه‬ ‫ترافیک‬ ‫یا‬ ‫و‬
•
‫درخواست‬ ‫فرستادن‬ ‫با‬ ‫اعتماد‬ ‫و‬ ‫کیفیت‬ ،‫سرویس‬ ‫پایداری‬ ‫از‬ ‫اطمینان‬
Client
‫دسترس‬ ‫در‬ ‫و‬ ‫فعال‬ ‫های‬ ‫سرور‬ ‫سمت‬ ‫به‬
•
‫نیاز‬ ‫صورت‬ ‫در‬ ‫سرور‬ ‫اضافه‬ ‫یا‬ ‫و‬ ‫حذف‬ ‫در‬ ‫پذیری‬ ‫انعطاف‬ ‫ارائه‬
‫مفهوم‬
Clustering
‫و‬
Distribute
‫یک‬ ‫تنها‬ ‫کاربر‬ ‫کلسترینگ‬ ‫در‬ . ‫هست‬ ‫بندی‬ ‫خوشه‬ ‫معنی‬ ‫به‬ ‫کلسترینگ‬
IP
‫سرور‬ ‫چندین‬ ‫قضیه‬ ‫این‬ ‫پشت‬ ‫که‬ ‫حالی‬ ‫در‬ ‫میکنه‬ ‫مشاهده‬ ‫رو‬
‫رو‬ ‫شما‬ ‫درخواست‬ ‫خودشون‬ ‫بین‬ ‫ها‬ ‫اون‬ ‫و‬ ‫باشه‬ ‫داشته‬ ‫وجود‬ ‫ممکنه‬
LB
‫میدن‬ ‫تحویل‬ ‫شما‬ ‫به‬ ‫پی‬ ‫ای‬ ‫ادرس‬ ‫یک‬ ‫قالب‬ ‫در‬ ‫رو‬ ‫نتیجه‬ ‫و‬ ‫میکنند‬
‫واژه‬ .
Distribute
‫درخواست‬ ‫کردن‬ ‫توزیع‬ : ‫مثال‬ . ‫میکنیم‬ ‫توزیع‬ ‫رو‬ ‫چیزی‬ ‫یک‬ ‫ها‬ ‫اون‬ ‫روی‬ ‫بعد‬ ‫و‬ ‫داریم‬ ‫مشخص‬ ‫چیز‬ ‫تا‬ ‫چند‬ ‫اینکه‬ ‫یعنی‬
‫روی‬ ‫یوزر‬ ‫های‬
LB
.
‫مفهوم‬
SPF
‫و‬
Redundancy
‫اصلح‬
SPF
‫یا‬
Single Point Of Failure
) ‫افزونگی‬ ‫شما‬ ‫که‬ ‫میشه‬ ‫استفاده‬ ‫زمانی‬
Redundancy
‫شبکه‬ ، ‫چیز‬ ‫اون‬ ‫شدن‬ ‫مختل‬ ‫با‬ ‫و‬ ‫ندارید‬ (
‫میشه‬ ‫این‬ ‫نباشه‬ ‫براش‬ ‫جایگزینی‬ ‫عامل‬ ‫و‬ ‫افته‬ ‫بی‬ ‫کار‬ ‫از‬ ‫روتر‬ ‫و‬ ‫دارید‬ ‫روتر‬ ‫یک‬ ‫اگر‬ ‫شبکه‬ ‫یک‬ ‫توی‬ : ‫مثال‬ . ‫میشه‬ ‫مشکل‬ ‫دچار‬ ‫شما‬
SPF
.
‫انواع‬
Load Balancing
‫ها‬
•
1
.
‫لیه‬ ‫در‬ ، ‫اول‬ ‫نوع‬
4
‫براساس‬ ‫و‬ ‫میکنه‬ ‫کار‬
IP
. ‫هست‬ ‫پورت‬ ‫و‬
•
2
.
‫لیه‬ ‫در‬ ، ‫دوم‬ ‫نوع‬
7
. ‫هست‬ ‫افزاری‬ ‫نرم‬ ‫بالنسر‬ ‫لود‬ ‫و‬ ‫میکنه‬ ‫کار‬
•
3
.
، ‫سوم‬ ‫نوع‬
GSLB
‫مخفف‬ ‫که‬
Global server load balancing
‫بالنسینگ‬ ‫لود‬ ‫عملیات‬ ‫و‬ ‫نمیگیره‬ ‫نظر‬ ‫در‬ ‫رو‬ ‫فاصله‬ ‫هست‬
‫عملیات‬ ‫حال‬ ‫این‬ ‫با‬ ‫و‬ ‫باشه‬ ‫تهران‬ ‫در‬ ‫دیگری‬ ‫و‬ ‫مشهد‬ ‫در‬ ‫میتونه‬ ‫ها‬ ‫سرور‬ ‫از‬ ‫یکی‬ ‫مثال‬ ‫برای‬ . ‫نیست‬ ‫جغرافیایی‬ ‫نقطه‬ ‫یک‬ ‫به‬ ‫محدود‬
‫لیه‬ ‫در‬ ‫همچنین‬ ‫و‬ ‫بده‬ ‫انجام‬ ‫رو‬ ‫لودبالنسینگ‬
4
‫و‬
7
. ‫میکنه‬ ‫کار‬
‫های‬ ‫الگورتیم‬ ‫انواع‬
Load Balancing
•
1
.
‫متد‬
Least Connection
. ‫میده‬ ‫انجام‬ ‫رو‬ ‫لودبالنسینگ‬ ‫فعال‬ ‫های‬ ‫کانکشن‬ ‫کمترین‬ ‫براساس‬
•
2
.
‫کاری‬ ‫مکانیزم‬
Round Robin
.. ‫و‬ ‫دوم‬ ‫سرور‬ ‫دوم‬ ‫درخواست‬ ، ‫اول‬ ‫سرور‬ ‫اول‬ ‫درخواست‬ : ‫مثل‬ . ‫هست‬ ‫صف‬ ‫یک‬ ‫مثل‬
•
3
.
‫متد‬
Least Response Time
. ‫پاسخگویی‬ ‫زمان‬ ‫بودن‬ ‫کم‬ ‫و‬ ‫سرور‬ ‫منابع‬ ‫میزان‬ ‫براساس‬
•
4
.
‫روش‬
Least Bandwith
‫سرور‬ ‫باند‬ ‫پهنای‬ ‫بیشترین‬ ‫براساس‬
LB
. ‫میده‬ ‫انجام‬ ‫رو‬
•
5
.
‫روش‬
Least Packets
. ‫میده‬ ‫انجام‬ ‫پکت‬ ‫میزان‬ ‫کمترین‬ ‫براساس‬ ‫رو‬ ‫بررسی‬
•
6
.
‫متد‬
Custom
. ‫کرد‬ ‫استفاده‬ ‫هم‬ ‫با‬ ‫رو‬ ‫بال‬ ‫های‬ ‫روش‬ ‫از‬ ‫چندتا‬ ‫میشه‬ ‫و‬ ‫هست‬ ‫سفارشی‬ ‫صورت‬ ‫به‬
‫همان‬ ‫یا‬ ‫بار‬ ‫تقسیم‬
Load Balancing
‫میشود‬ ‫انجام‬ ‫چگونه‬
:
‫یک‬ ‫که‬ ‫زمانی‬
Application Server
‫میشود‬ ‫دسترس‬ ‫قابل‬ ‫غیر‬
Load balancer
‫به‬ ‫مربوط‬ ‫های‬ ‫درخواست‬ ‫تمامی‬
Application
‫یکی‬ ‫به‬ ‫را‬
‫سیستم‬ ‫یک‬ ‫از‬ ‫افزاری‬ ‫نرم‬ ‫های‬ ‫درخواست‬ ‫پیشرفته‬ ‫تحویل‬ ‫جهت‬ .‫میدهد‬ ‫ارجاع‬ ‫فعال‬ ‫های‬ ‫سرور‬ ‫از‬ ‫دیگر‬
Application Delivery
Controller
‫اختصار‬ ‫به‬ ‫یا‬
ADC
‫و‬ ‫امنیت‬ ‫تا‬ ‫میشود‬ ‫استفاده‬
Performance
‫به‬ ‫درخواست‬ ‫ارجاع‬ ‫زمان‬ ‫در‬
Web
.‫یابد‬ ‫افزایش‬
ADC
‫یک‬ ‫فقط‬
Load Balancer
،‫شبکه‬ ‫تحویل‬ ‫جهت‬ ‫پلتفرم‬ ‫یک‬ ‫بلکه‬ ‫نیست‬
Application
.‫میباشد‬ ‫بال‬ ‫امنیت‬ ‫و‬ ‫سرعت‬ ‫با‬ ‫مبایل‬ ‫های‬ ‫سرویس‬ ،
‫های‬ ‫الگوریتم‬ ‫و‬ ‫متدها‬
Load Balancing
•
The Least Connection Method
‫که‬ ‫زمانی‬ :
Virtual Server
‫متد‬ ‫از‬ ‫تا‬ ‫میشود‬ ‫کانفیگ‬ ‫طوری‬
Least Connection
‫استفاده‬
.‫میشود‬ ‫انتخاب‬ ‫درخواست‬ ‫به‬ ‫پاسخ‬ ‫جهت‬ ‫دارد‬ ‫را‬ ‫کانکشن‬ ‫تعداد‬ ‫کمترین‬ ‫که‬ ‫سرویسی‬ ‫کند‬
•
The Round Robin Method
‫بین‬ ‫ها‬ ‫درخواست‬ ‫گردشی‬ ‫بصورت‬ ‫الگوریتم‬ ‫این‬ ‫در‬ :
Server
‫یا‬
service
‫این‬ ‫به‬ .‫میشود‬ ‫تقسیم‬ ‫ها‬
‫که‬ ‫صورت‬
Server
‫یا‬ ‫ها‬
Service
‫متد‬ ‫این‬ ‫و‬ ‫میشود‬ ‫ارسال‬ ‫لیست‬ ‫دهنده‬ ‫سرویس‬ ‫اول‬ ‫به‬ ‫درخواست‬ ‫و‬ ‫شده‬ ‫لیست‬ ‫یک‬ ‫بصورت‬ ‫ها‬
.‫میابد‬ ‫ادامه‬ ‫گردشی‬ ‫بصورت‬
•
The Least Response Time Method
‫کمترین‬ ‫و‬ ‫کانکشن‬ ‫تعداد‬ ‫کمترین‬ ‫که‬ ‫ای‬ ‫دهنده‬ ‫سرویس‬ ‫به‬ ‫درخواست‬ ‫روش‬ ‫این‬ ‫در‬ :
.‫میشود‬ ‫ارسال‬ ‫دارد‬ ‫را‬ ‫پاسخدهی‬ ‫زمانی‬ ‫میانگین‬
•
The Least Bandwidth Method
‫دهندگان‬ ‫سرویس‬ ‫برای‬ ‫متد‬ ‫این‬ :
File Server
‫میزان‬ ‫کمترین‬ ‫که‬ ‫سروری‬ ‫و‬ ‫بوده‬ ‫مناسب‬
.‫میشود‬ ‫انتخاب‬ ‫درخواست‬ ‫پردازش‬ ‫جهت‬ ‫دارد‬ ‫را‬ ‫شبکه‬ ‫ترافیک‬ ‫مصرف‬
•
The Least Packets Method
‫میزان‬ ‫کمترین‬ ‫ای‬ ‫دهنده‬ ‫سرویس‬ ‫متد‬ ‫این‬ ‫در‬ :
packet
‫انتخاب‬ ‫میکند‬ ‫دریافت‬ ‫مشخص‬ ‫بازه‬ ‫در‬ ‫را‬
.‫میشود‬
•
The Custom Load Method
‫جهت‬ ‫متد‬ ‫این‬ ‫که‬ ‫زمانی‬ :
Load BAlancing
‫برای‬ ‫را‬ ‫درخواستی‬ ‫هیچ‬ ‫که‬ ‫سرویسی‬ ‫شود‬ ‫انتخاب‬
‫پردازش‬ ‫حال‬ ‫در‬ ‫ها‬ ‫سرور‬ ‫همه‬ ‫اگر‬ ،‫میشود‬ ‫انتخاب‬ ‫ندارد‬ ‫پردازش‬
Transaction
‫داراست‬ ‫را‬ ‫لود‬ ‫میزان‬ ‫کمترین‬ ‫که‬ ‫سروری‬ ‫بودند‬
.‫میشود‬ ‫انتخاب‬ ‫جدید‬ ‫درخواست‬ ‫پردازش‬ ‫جهت‬
‫از‬ ‫استفاده‬ ‫دلیل‬
Load Balancing
‫؟‬ ‫چیست‬
!
‫های‬ ‫سیستم‬ ‫در‬ .‫شد‬ ‫خواهد‬ ‫دهی‬ ‫سرویس‬ ‫در‬ ‫امنیت‬ ‫افزایش‬ ‫و‬ ‫کیفیت‬ ،‫پایداری‬ ‫باعث‬ ‫ساختار‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫صورت‬ ‫هر‬ ‫در‬
Critical
Mission
‫که‬ ‫هایی‬ ‫سیستم‬ ‫و‬
High Availability
.‫میباشد‬ ‫ضروری‬ ‫بار‬ ‫تقسیم‬ ‫از‬ ‫استفاده‬ ‫است‬ ‫مهم‬ ‫ان‬ ‫در‬
Octavia
‫همان‬ ‫یا‬ ‫بار‬ ‫کننده‬‫توزیع‬ ‫ارائه‬ ‫جهت‬ ‫پروژه‬ ‫این‬
LoadBalancer
‫انجام‬ ‫و‬
Scaling
‫ابر‬ ‫محیط‬ ‫در‬
Openstack
.‫است‬ ‫یافته‬ ‫توسعه‬ ‫و‬ ‫شده‬ ‫معرفی‬
‫از‬ ‫پروژه‬ ‫این‬
LBaaS
‫توسط‬ ‫که‬
Neutrun
‫سازی‬‫پیاده‬ ‫مرجع‬ ‫گفت‬ ‫توان‬‫می‬ ‫و‬ ‫بوده‬ ‫مجزا‬ ،‫شود‬‫می‬ ‫ارائه‬
LBaaS v2
‫توزیع‬ ‫کار‬ ‫تواند‬‫می‬ ‫و‬ ‫است‬
‫بین‬ ‫را‬ ‫بار‬
instance
‫سرورهای‬ ،‫ها‬
Bare Metal
‫یک‬ ‫مانند‬ ‫که‬ ‫فیزیکی‬ ‫)سرورهای‬
Nova Instance
‫به‬
Openstack
‫یا‬ ‫است‬ ‫شده‬ ‫معرفی‬
ironic
‫انجام‬ ‫و‬ ‫تقاضا‬ ‫اساس‬ ‫بر‬ ‫بار‬ ‫توزیع‬ ،‫کرد‬ ‫مطرح‬ ‫سرویس‬ ‫این‬ ‫برای‬ ‫توان‬‫می‬ ‫که‬ ‫ای‬‫برجسته‬ ‫ویژگی‬ ‫از‬ .‫دهد‬ ‫انجام‬ ‫کانتینرها‬ ‫و‬ (
Scaling
‫مانند‬ ‫اجزا‬ ‫دیگر‬ ‫با‬ ،‫خود‬ ‫وظیفه‬ ‫انجام‬ ‫جهت‬ ‫پروژه‬ ‫این‬ .‫است‬ ‫زمان‬‫هم‬ ‫صورت‬‫به‬ ‫و‬ ‫افقی‬ ‫صورت‬‫به‬
Nova، Neutron، Keystone، Glance
.… ‫و‬
.‫است‬ ‫تعامل‬ ‫در‬
‫معماری‬ ‫بررسی‬ ‫به‬ ‫ادامه‬ ‫در‬
octavia
: ‫پرداخت‬ ‫خواهیم‬
Octavia
‫از‬ ‫ای‬ ‫مجموعه‬ ‫از‬
instance
) ‫آمفورا‬ ‫نام‬ ‫به‬ ‫محاسباتی‬ ‫گره‬ ‫یک‬ ‫در‬ ‫ها‬
amphorae
‫یک‬ ‫طریق‬ ‫از‬ ‫آمفورها‬ ‫با‬ ‫و‬ ‫کند‬ ‫می‬ ‫استفاده‬ (
) ‫بار‬ ‫کننده‬ ‫متعادل‬ ‫مدیریت‬ ‫شبکه‬
lb-mgmt-net
.‫کند‬ ‫می‬ ‫برقرار‬ ‫ارتباط‬ (
Octavia
:‫است‬ ‫زیر‬ ‫های‬ ‫سرویس‬ ‫شامل‬
API Controller(octavia_api container)
.‫کند‬‫می‬ ‫برقرار‬ ‫ارتباط‬ ‫کنترلر‬ ‫با‬ ‫آمفورا‬ ‫های‬‫نمونه‬ ‫حذف‬ ‫یا‬ ‫نظارت‬ ،‫استقرار‬ ‫و‬ ‫پیکربندی‬ ‫های‬‫روزرسانی‬‫به‬ ‫برای‬
Controller Worker(octavia_worker container)
‫شبکه‬ ‫طریق‬ ‫از‬ ‫را‬ ‫پیکربندی‬ ‫های‬‫روزرسانی‬‫به‬ ‫و‬ ‫پیکربندی‬
LB
.‫کند‬‫می‬ ‫ارسال‬ ‫آمفورا‬ ‫به‬
Health Manager
‫خرد‬ ‫شکست‬ ‫رویدادهای‬ ،‫آمفورها‬ ‫غیرمنتظره‬ ‫خرابی‬ ‫صورت‬ ‫در‬ ‫و‬ ‫دارد‬ ‫نظر‬ ‫زیر‬ ‫را‬ ‫آمفورها‬ ‫تک‬ ‫تک‬ ‫سلمت‬
‫ه‬
.‫کند‬ ‫می‬ ‫کنترل‬ ‫را‬
Housekeeping Manager
.‫کند‬ ‫می‬ ‫مدیریت‬ ‫را‬ ‫آمفورا‬ ‫گواهی‬ ‫چرخش‬ ‫و‬ ‫کند‬ ‫می‬ ‫مدیریت‬ ‫را‬ ‫یدکی‬ ‫مخزن‬ ،‫کند‬ ‫می‬ ‫تمیز‬ ‫را‬ (‫شده‬ ‫)حذف‬ ‫قدیمی‬ ‫داده‬ ‫پایگاه‬ ‫سوابق‬
Loadbalancer :
api object
‫آدرس‬ .‫دهد‬ ‫می‬ ‫نشان‬ ‫را‬ ‫بار‬ ‫کننده‬ ‫متعادل‬ ‫موجودیت‬ ‫که‬ ‫بالیی‬
VIP
.‫شود‬ ‫می‬ ‫داده‬ ‫اختصاص‬ ‫کننده‬ ‫متعادل‬ ‫بار‬ ‫ایجاد‬ ‫هنگام‬
‫ایجاد‬ ‫هنگام‬
loadbalancer
‫نمونه‬ ‫یک‬ ،
Amphora
.‫شود‬ ‫می‬ ‫اندازی‬ ‫راه‬ ‫محاسباتی‬ ‫گره‬ ‫روی‬
Amphora :
‫پارامترهای‬ ‫با‬ ‫و‬ ‫شوند‬‫می‬ ‫اجرا‬ ‫محاسباتی‬ ‫های‬‫گره‬ ‫روی‬ ‫که‬ ‫هستند‬ ‫هایی‬‫نمونه‬ ‫معمول‬ ‫آمفوراها‬ .‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫بار‬ ‫تعادل‬ ‫که‬ ‫ای‬ ‫نمونه‬
‫های‬‫سیاست‬ ،‫سلمت‬ ‫مانیتور‬ ،‫استخر‬ ،‫شنونده‬ ‫به‬ ‫توجه‬ ‫با‬ ‫بار‬ ‫کننده‬‫متعادل‬
L7
).‫شوند‬‫می‬ ‫پیکربندی‬ ‫اعضا‬ ‫پیکربندی‬ ‫و‬
listener, pool,
health monitor, L7 policies, and members configuration
.
(
Listener :
‫یک‬ ‫و‬ .‫بار‬ ‫کننده‬ ‫متعادل‬ ‫سرویس‬ ‫یک‬
listner
‫چندین‬ ‫به‬ ‫است‬ ‫ممکن‬
pool
‫لیه‬ ‫قوانین‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬ ‫کند‬ ‫مراجعه‬
7
‫جابجا‬ ‫استخرها‬ ‫بین‬
.‫شود‬
Pool :
‫یک‬ .‫کنند‬ ‫می‬ ‫رسیدگی‬ (‫)آمفورا‬ ‫کننده‬ ‫متعادل‬ ‫بار‬ ‫از‬ ‫مشتری‬ ‫های‬ ‫درخواست‬ ‫به‬ ‫که‬ ‫اعضا‬ ‫از‬ ‫گروهی‬
pool
‫یک‬ ‫با‬ ‫تنها‬
listner
.‫است‬ ‫مرتبط‬
Member :
compute instance
‫یک‬ ‫در‬ (‫)آمفورا‬ ‫کننده‬ ‫متعادل‬ ‫بار‬ ‫پشت‬ ‫ترافیک‬ ‫به‬ ‫که‬ ‫هایی‬
pool
.‫دهند‬ ‫می‬ ‫خدمات‬
‫ترافیک‬ ‫جریان‬ ‫زیر‬ ‫نمودار‬
HTTPS
:‫دهد‬ ‫می‬ ‫نشان‬ ‫استخر‬ ‫عضو‬ ‫یک‬ ‫به‬ ‫را‬
‫سرویس‬
octavia
: ‫دارد‬ ‫نیاز‬ ‫هایی‬ ‫کامپونت‬ ‫چه‬ ‫به‬
• Compute (nova)
• Networking (enable allowed_address_pairs)
• Image (glance)
• Identity (keystone)
• RabbitMQ
• MySQL
‫کجا‬ ‫را‬ ‫کننده‬ ‫متعادل‬ ‫بار‬ ‫واقعی‬ ‫عملکرد‬ ‫که‬ ‫است‬ ‫این‬ ‫بگیرید‬ ‫باید‬ ‫که‬ ‫کلیدی‬ ‫تصمیمات‬ ‫از‬ ‫یکی‬ ،‫مجازی‬ ‫بار‬ ‫کننده‬ ‫متعادل‬ ‫یک‬ ‫طراحی‬ ‫هنگام‬
‫مانند‬ ‫بار‬ ‫کننده‬ ‫متعادل‬ ‫افزار‬ ‫نرم‬ ‫که‬ ‫است‬ ‫این‬ ‫واضح‬ ‫های‬ ‫گزینه‬ ‫از‬ ‫یکی‬ .‫دهید‬ ‫قرار‬
HAProxy
‫یا‬
NGINX
‫های‬ ‫گره‬ ‫از‬ ‫یکی‬ ‫روی‬ ‫بر‬ ‫را‬
‫آشکار‬ ‫عیب‬ ‫این‬ ‫دارای‬ ‫رویکرد‬ ‫این‬ ،‫حال‬ ‫این‬ ‫با‬ .‫کنید‬ ‫هدایت‬ ‫ها‬ ‫گره‬ ‫آن‬ ‫طریق‬ ‫از‬ ‫را‬ ‫ترافیک‬ ‫تمام‬ ‫و‬ ‫کنید‬ ‫ایجاد‬ ‫شبکه‬ ‫گره‬ ‫یا‬ ‫کننده‬ ‫کنترل‬
‫اندازی‬‫راه‬ ‫یک‬ ‫در‬ ‫را‬ ‫خود‬ ‫کننده‬‫کنترل‬ ‫های‬‫گره‬ ،‫البته‬ ،‫اینکه‬ ‫)مگر‬ ‫کند‬‫می‬ ‫معرفی‬ ‫را‬ ‫شکست‬ ‫نقطه‬ ‫یک‬ ‫که‬ ‫است‬
HA
،‫بدتر‬ ‫حتی‬ ،‫و‬ (‫کنید‬ ‫اجرا‬
‫بار‬ ‫های‬ ‫کننده‬ ‫متعادل‬ ‫تعداد‬ ‫وقتی‬ ‫که‬ ‫است‬ ‫معنی‬ ‫این‬ ‫به‬ ‫که‬ ،‫ها‬ ‫گره‬ ‫از‬ ‫کمی‬ ‫تعداد‬ .‫کند‬‫می‬ ‫وارد‬ ‫شبکه‬ ‫های‬‫رابط‬ ‫روی‬ ‫بر‬ ‫را‬ ‫زیادی‬ ‫بار‬
.‫شود‬ ‫نمی‬ ‫پذیر‬ ‫مقیاس‬ ‫خوبی‬ ‫به‬ ‫حل‬ ‫راه‬ ‫این‬ ،‫یابد‬ ‫می‬ ‫افزایش‬ ‫پایانی‬ ‫نقاط‬ ‫یا‬ ‫مجازی‬
Octavia
‫های‬‫نمونه‬ ‫که‬ ،‫مجازی‬ ‫های‬‫ماشین‬ ‫توسط‬ ‫واقعی‬ ‫بار‬ ‫های‬‫کننده‬‫متعادل‬ .‫کند‬ ‫می‬ ‫انتخاب‬ ‫را‬ ‫متفاوتی‬ ‫رویکرد‬
OpenStack
‫معمولی‬
‫یک‬ ‫از‬ ‫اما‬ ،‫شوند‬‫می‬ ‫شناسایی‬ ،‫شوند‬‫می‬ ‫اجرا‬ ‫محاسباتی‬ ‫های‬‫گره‬ ‫روی‬ ‫که‬ ‫هستند‬
image
‫افزار‬‫نرم‬ ‫بار‬ ‫کننده‬‫متعادل‬ ‫یک‬ ‫حاوی‬ ‫اختصاصی‬
HAProxy
‫نمونه‬ ‫پیکربندی‬ ‫کنترل‬ ‫برای‬ ‫که‬ ‫کنند‬‫می‬ ‫استفاده‬ ‫عاملی‬ ‫و‬
HAProxy
‫آمفورا‬ ‫که‬ ‫ها‬‫نمونه‬ ‫این‬ ،‫بنابراین‬ .‫شود‬‫می‬ ‫استفاده‬
–
‫بند‬‫زمان‬ ‫توسط‬ ‫شوند‬‫می‬ ‫نامیده‬
–
Nova
‫های‬‫نمونه‬ ‫سایر‬ ‫مانند‬
Nova
‫توانند‬‫می‬ ‫و‬ ‫شوند‬‫می‬ ‫مقیاس‬ ‫خوبی‬ ‫به‬ ‫بنابراین‬ ‫و‬ ‫شوند‬‫می‬ ‫ریزی‬‫برنامه‬
،‫آمفورها‬ ‫کنترل‬ ‫برای‬ .‫کنند‬ ‫استفاده‬ ‫موجود‬ ‫محاسباتی‬ ‫های‬‫گره‬ ‫تمام‬ ‫از‬
octavia
‫از‬ ‫متشکل‬ ‫که‬ ‫کند‬ ‫می‬ ‫استفاده‬ ‫کنترلی‬ ‫مکانیزم‬ ‫یک‬ ‫از‬
w
octavia worker
،‫کند‬ ‫می‬ ‫اجرا‬ ‫را‬ ‫ها‬ ‫کننده‬ ‫متعادل‬ ‫بار‬ ‫حذف‬ ‫و‬ ‫رسانی‬ ‫روز‬ ‫به‬ ،‫ایجاد‬ ‫منطق‬ ‫که‬ ‫است‬
health manager
‫را‬ ‫آمفورها‬ ‫که‬
.‫کند‬ ‫مدیریت‬ ‫را‬ ‫استخر‬ ‫تواند‬ ‫می‬ ‫و‬ ‫کند‬ ‫می‬ ‫نظارت‬
‫سرور‬
API
‫های‬ ‫تماس‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫کنترل‬ ‫صفحه‬ ‫اجزای‬ ‫و‬
RPC
‫یعنی‬ ،
RabbitMQ
‫آن‬ ‫قبل‬ ‫که‬ ‫همانطور‬ ،‫کنند‬ ‫می‬ ‫برقرار‬ ‫ارتباط‬ ‫یکدیگر‬ ‫با‬ ،
‫های‬ ‫سرویس‬ ‫سایر‬ ‫برای‬ ‫را‬
OpenStack
‫دو‬ ‫ارتباط‬ ‫این‬ .‫کنند‬ ‫برقرار‬ ‫ارتباط‬ ‫آمفورا‬ ‫با‬ ‫باید‬ ‫نیز‬ ‫کنترل‬ ‫صفحه‬ ‫اجزای‬ ،‫حال‬ ‫این‬ ‫با‬ .‫ایم‬ ‫دیده‬
.‫است‬ ‫جهته‬
،‫شود‬ ‫می‬ ‫اجرا‬ ‫آمفورا‬ ‫هر‬ ‫روی‬ ‫که‬ ‫عاملی‬
REST API
. ‫هست‬ ‫بیس‬
،‫برعکس‬
health manager
‫آمفورها‬ ‫از‬ ‫باید‬ ‫کنترل‬ ‫هواپیمای‬ ‫بنابراین‬ ‫و‬ ‫دهد‬ ‫می‬ ‫گوش‬ ‫آمفورا‬ ‫توسط‬ ‫شده‬ ‫صادر‬ ‫سلمت‬ ‫وضعیت‬ ‫های‬ ‫پیام‬ ‫به‬
.‫باشد‬ ‫دسترسی‬ ‫قابل‬ ‫نیز‬
‫دارد‬ ‫وجود‬ ‫بار‬ ‫تعادل‬ ‫مدیریت‬ ‫شبکه‬ ‫نام‬ ‫به‬ (‫نوترون‬ ‫)یعنی‬ ‫مجازی‬ ‫شبکه‬ ‫یک‬ ‫که‬ ‫کند‬‫می‬ ‫فرض‬ ‫اکتاویا‬ ،‫طرفه‬ ‫دو‬ ‫ارتباط‬ ‫این‬ ‫کردن‬ ‫فعال‬ ‫برای‬
‫فرض‬ ‫اکتاویا‬ ،‫این‬ ‫بر‬ ‫علوه‬ .‫کند‬ ‫می‬ ‫متصل‬ ‫شبکه‬ ‫این‬ ‫به‬ ‫را‬ ‫آمفورها‬ ‫تمام‬ ‫اکتاویا‬ ‫سپس‬ .‫شود‬‫می‬ ‫مشخص‬ ‫نصب‬ ‫هنگام‬ ‫در‬ ‫مدیر‬ ‫توسط‬ ‫که‬
‫به‬ ‫توانند‬‫می‬ ‫کنترل‬ ‫صفحه‬ ‫اجزای‬ ،‫شبکه‬ ‫این‬ ‫طریق‬ ‫از‬ ‫که‬ ‫کند‬‫می‬
API REST
. ‫شود‬‫می‬ ‫اجرا‬ ‫آمفورا‬ ‫هر‬ ‫روی‬ ‫که‬ ‫عاملی‬ ‫توسط‬ ‫که‬
‫بار‬ ‫تعادل‬ ‫مدیریت‬ ‫شبکه‬ ‫اتصال‬ ‫و‬ ‫ایجاد‬
‫ما‬ ‫آمفورهای‬ ‫که‬ ‫باشد‬ ‫مجازی‬ ‫شبکه‬ ‫یک‬ ‫باید‬ ‫این‬ ‫که‬ ‫بیاورید‬ ‫یاد‬ ‫به‬ .‫شد‬ ‫ذکر‬ ‫قبل‬ ‫که‬ ‫است‬ ‫بار‬ ،‫کننده‬ ‫متعادل‬ ‫شبکه‬ ‫اندازی‬ ‫راه‬ ‫چالش‬ ‫اولین‬
‫به‬ ‫آمفورا‬ ‫از‬ ‫ترافیک‬ ‫تا‬ ‫دهد‬ ‫می‬ ‫اجازه‬ ‫و‬ ‫دهد‬ ‫می‬ ‫کنترل‬ ‫صفحه‬ ‫از‬ ‫را‬ ‫آمفورها‬ ‫به‬ ‫دسترسی‬ ‫اجازه‬ ‫که‬ ‫شوند‬ ‫متصل‬ ‫آن‬ ‫به‬
health manager
.‫دارد‬ ‫وجود‬ ‫گزینه‬ ‫چندین‬ ‫شبکه‬ ‫این‬ ‫ساخت‬ ‫برای‬ .‫برسد‬
‫تگ‬ ‫یک‬ ‫یا‬ ‫فیزیکی‬ ‫رابط‬ ‫یک‬ ،‫بنابراین‬ .‫کنیم‬ ‫ایجاد‬ ‫منظور‬ ‫این‬ ‫برای‬ ‫اختصاصی‬ ‫دهنده‬ ‫ارائه‬ ‫شبکه‬ ‫یک‬ ‫توانیم‬‫می‬ ‫ما‬ ،‫ابتدا‬
VLAN
‫گره‬ ‫هر‬ ‫در‬
‫کننده‬ ‫متعادل‬ ‫مدیریت‬ ‫شبکه‬ ‫عنوان‬ ‫به‬ ‫که‬ ‫کنیم‬ ‫می‬ ‫اندازی‬ ‫راه‬ ‫نوترون‬ ‫در‬ ‫را‬ ‫مربوطه‬ ‫دهنده‬ ‫ارائه‬ ‫شبکه‬ ‫یک‬ ‫و‬ ‫کنیم‬ ‫می‬ ‫رزرو‬ ‫شبکه‬ ‫آن‬ ‫برای‬
.‫دهد‬ ‫اجازه‬ ‫شما‬ ‫فیزیکی‬ ‫شبکه‬ ‫زیرساخت‬ ‫که‬ ‫کند‬ ‫می‬ ‫کار‬ ‫صورتی‬ ‫در‬ ‫تنها‬ ‫این‬ ‫که‬ ‫است‬ ‫بدیهی‬ .‫کنیم‬ ‫می‬ ‫استفاده‬ ‫بار‬
‫پل‬ ‫یک‬ ‫توانیم‬‫می‬ ،‫مثال‬ ‫عنوان‬ ‫به‬ ‫است‬ " ‫"مجازی‬ ‫فیزیکی‬ ‫شبکه‬ ‫یک‬ ‫از‬ ‫استفاده‬ ‫دیگر‬ ‫گزینه‬ ،‫نیست‬ ‫اینطور‬ ‫اگر‬
OVS
‫نوترون‬ ‫از‬ ‫خارج‬ ‫که‬
‫یک‬ ‫عنوان‬‫به‬ ‫را‬ ‫شبکه‬ ‫این‬ ‫و‬ ‫کنیم‬ ‫متصل‬ ‫هم‬ ‫به‬ ‫همپوشانی‬ ‫شبکه‬ ‫یک‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬ ‫ها‬‫پل‬ ‫این‬ ،‫کنیم‬ ‫اندازی‬‫راه‬ ‫گره‬ ‫هر‬ ‫روی‬ ‫شود‬‫می‬ ‫مدیریت‬
‫پل‬ ‫دلیل‬ ‫به‬ ‫اما‬ ،‫کند‬ ‫کار‬ ‫ها‬ ‫محیط‬ ‫اکثر‬ ‫در‬ ‫باید‬ ‫این‬ .‫دهیم‬‫می‬ ‫قرار‬ ‫دهنده‬‫ارائه‬ ‫شبکه‬ ‫یک‬ ‫آن‬ ‫روی‬ ‫بر‬ ‫که‬ ‫کنیم‬ ‫ارائه‬ ‫نوترون‬ ‫به‬ ‫فیزیکی‬ ‫شبکه‬
.‫کند‬ ‫می‬ ‫ایجاد‬ ‫اضافی‬ ‫سربار‬ ‫یک‬ ،‫گره‬ ‫هر‬ ‫روی‬ ‫نیاز‬ ‫مورد‬ ‫اضافی‬ ‫های‬
‫شبکه‬ ‫یک‬ ‫از‬ ‫سادگی‬ ‫به‬ ‫توانیم‬‫می‬ ‫ما‬ ‫نهایت‬ ‫در‬
VXLAN
‫دستگاه‬ ‫یک‬ ‫افزودن‬ ‫با‬ ‫و‬ ‫کنیم‬ ‫استفاده‬ ‫بار‬ ‫کننده‬ ‫متعادل‬ ‫مدیریت‬ ‫شبکه‬ ‫عنوان‬ ‫به‬
.‫شویم‬ ‫متصل‬ ‫آن‬ ‫به‬ ‫شبکه‬ ‫گره‬ ‫از‬ ،‫نوترون‬ ‫ادغام‬ ‫پل‬ ‫به‬ ‫اضافی‬ ‫شبکه‬
‫شبکه‬ ‫یک‬ ‫اگر‬ ‫که‬ ‫بیاورید‬ ‫یاد‬ ‫به‬
Neutron VXLAN
‫برچسب‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫خود‬ ‫شبکه‬ ‫این‬ ،‫کنیم‬ ‫اندازی‬ ‫راه‬
VLAN
‫پل‬ ‫روی‬ ‫محلی‬
‫عامل‬ ‫که‬ ‫شبکه‬ ‫گره‬ ‫برای‬ ‫خاص‬ ‫طور‬ ‫به‬ ‫این‬ .‫دهد‬ ‫می‬ ‫نشان‬ ‫است‬ ‫متصل‬ ‫شبکه‬ ‫این‬ ‫به‬ ‫پورت‬ ‫یک‬ ‫که‬ ‫ای‬ ‫گره‬ ‫هر‬ ‫ادغام‬
DHCP
‫شبکه‬ ‫برای‬
VXLAN
‫عامل‬ ‫یک‬ ‫نوترون‬ ،‫کنیم‬ ‫می‬ ‫ایجاد‬ ‫را‬ ‫شبکه‬ ‫که‬ ‫هنگامی‬ ،‫بنابراین‬ .‫است‬ ‫صادق‬ ،‫شود‬‫می‬ ‫اجرا‬ ‫آن‬ ‫روی‬ ‫ما‬
DHCP
‫شبکه‬ ‫گره‬ ‫روی‬ ‫را‬
‫تگ‬ ‫یک‬ ‫و‬ . ‫میکند‬ ‫ایجاد‬
VLAN
‫سازی‬ ‫یکپارچه‬ ‫پل‬ ‫در‬ ‫شبکه‬ ‫این‬ ‫به‬ ‫متعلق‬ ‫ترافیک‬ ‫برای‬ ‫که‬ ‫را‬ ‫محلی‬
br-int
.‫دهد‬ ‫می‬ ‫اختصاص‬
‫دستگاه‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫)که‬ ‫ادغام‬ ‫پل‬ ‫به‬ ‫متصل‬ ‫اضافی‬ ‫داخلی‬ ‫پورت‬ ‫یک‬ ‫سادگی‬ ‫به‬ ‫توانیم‬ ‫می‬ ‫اکنون‬ ،‫شبکه‬ ‫گره‬ ‫از‬ ‫شبکه‬ ‫این‬ ‫به‬ ‫اتصال‬ ‫برای‬
‫تگ‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬ ‫شده‬ ‫پیکربندی‬ ‫دسترسی‬ ‫پورت‬ ‫و‬ (‫بود‬ ‫خواهد‬ ‫مشاهده‬ ‫قابل‬ ‫مجازی‬ ‫شبکه‬
VLAN
‫آدرس‬ ‫یک‬ ‫سپس‬ .‫بیاوریم‬
IP
‫به‬
‫آدرس‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬ ‫دهیم‬ ‫می‬ ‫اختصاص‬ ‫دستگاه‬ ‫این‬
IP
‫شبکه‬ ‫در‬ ‫دیگری‬ ‫پورت‬ ‫هر‬ ‫به‬ ‫شبکه‬ ‫گره‬ ‫از‬ ‫توانیم‬ ‫می‬ ‫اکنون‬ ،‫دروازه‬ ‫عنوان‬ ‫به‬
Neutron VXLAN
‫کنترل‬ ‫صفحه‬ ‫اجزای‬ ‫که‬ ‫همانطور‬ .‫شویم‬ ‫متصل‬
Octavia
‫سرور‬ ‫با‬
API Octavia
‫طریق‬ ‫از‬
RPC
،‫کنند‬ ‫می‬ ‫برقرار‬ ‫ارتباط‬
.‫کنند‬ ‫استفاده‬ ‫آمفورا‬ ‫با‬ ‫ارتباط‬ ‫برای‬ ‫رابط‬ ‫این‬ ‫از‬ ‫بتوانند‬ ‫تا‬ ‫دهیم‬ ‫قرار‬ ‫شبکه‬ ‫گره‬ ‫در‬ ‫را‬ ‫آنها‬ ‫توانیم‬ ‫می‬
‫این‬ ‫از‬ ‫میتوانید‬ : ‫نکته‬
ansible
. ‫کنید‬ ‫استفاده‬ ‫شبکه‬ ‫ساخت‬ ‫برای‬ ‫اتوماتیک‬ ‫بصورت‬ ‫هم‬ ‫فایل‬
‫نوترون‬ ‫شبکه‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫مجازی‬ ‫شبکه‬ ‫یک‬
VXLAN
‫کنید‬ ‫اضافه‬ ‫زیرشبکه‬ ‫یک‬ ‫و‬ ‫کنید‬ ‫ایجاد‬ ‫معمولی‬
‫پورت‬ ‫به‬ ‫ترافیک‬ ‫تا‬ ‫کنید‬ ‫ایجاد‬ ‫امنیتی‬ ‫های‬‫گروه‬
TCP
‫عامل‬ ‫که‬
amphora
‫آن‬ ‫روی‬
API REST
‫فرض‬‫پیش‬ ‫طور‬‫)به‬ ‫دهد‬‫می‬ ‫نشان‬ ‫را‬ ‫خود‬
‫پورت‬
9443
‫به‬ ‫دسترسی‬ ‫اجازه‬ ‫و‬ (
health manager
) ‫ب‬
UDP
‫پورت‬ ،
5555
‫ترافیک‬ ‫به‬ ‫که‬ ‫است‬ ‫خوب‬ ‫همچنین‬ .‫کنید‬ ‫ایجاد‬ ‫را‬ (
SSH
‫و‬
ICMP
.‫کنند‬ ‫تحلیل‬ ‫و‬ ‫تجزیه‬ ‫را‬ ‫مسائل‬ ‫آمفورا‬ ‫به‬ ‫دسترسی‬ ‫و‬ ‫کردن‬ ‫پینگ‬ ‫با‬ ‫دهید‬ ‫اجازه‬
‫شبکه‬ ‫در‬ ‫پورت‬ ‫یک‬ ‫اکنون‬
load balancer
‫آدرس‬ ‫یک‬ ‫این‬ .‫کنیم‬ ‫می‬ ‫ایجاد‬
IP
‫استفاده‬ ‫خود‬ ‫پورت‬ ‫برای‬ ‫توانیم‬ ‫می‬ ‫که‬ ‫کند‬ ‫می‬ ‫ذخیره‬ ‫را‬
‫آدرس‬ ‫تداخل‬ ‫از‬ ‫تا‬ ‫کنیم‬
IP
‫کنیم‬ ‫جلوگیری‬ ‫نوترون‬ ‫با‬
‫عامل‬ ‫نام‬ ‫فضای‬ ‫تا‬ ‫مانیم‬ ‫می‬ ‫منتظر‬ ‫سپس‬
DHCP
‫تگ‬ ‫و‬ ‫کرده‬ ‫دریافت‬ ‫را‬ ‫مربوطه‬ ‫نوترون‬ ‫پورت‬ ‫شناسه‬ ،‫شود‬ ‫ایجاد‬
VLAN
‫این‬ ‫برای‬ ‫را‬
‫از‬ ‫پورت‬
OVS DB
‫این‬ ‫از‬ ‫)میتوانید‬ ‫خوانیم‬ ‫می‬
‫اسکریپت‬
(‫کنید‬ ‫استفاده‬ ‫کار‬ ‫این‬ ‫برای‬ ‫هم‬
‫شناسه‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫اکنون‬
VLAN
‫دسترسی‬ ‫پورت‬ ‫یک‬
OVS
‫آدرس‬ ‫یک‬ ،‫کنید‬ ‫ایجاد‬
IP
‫اختصاص‬ ‫مربوطه‬ ‫مجازی‬ ‫شبکه‬ ‫دستگاه‬ ‫به‬
.‫بیاورید‬ ‫بال‬ ‫را‬ ‫دستگاه‬ ‫و‬ ‫دهید‬
‫عامل‬ ‫که‬ ‫هنگامی‬
OVS
. ‫باشد‬ ‫داشته‬ ‫وجود‬ ‫کمی‬ ‫مشکلی‬ ‫شاید‬ ‫پیکربندی‬ ‫این‬ ‫با‬ ،‫شود‬ ‫می‬ ‫مجدد‬ ‫اندازی‬ ‫راه‬
‫شناسه‬ ،‫مورد‬ ‫این‬ ‫در‬ ‫زیرا‬
VLAN
‫را‬ ‫پیکربندی‬ ‫تا‬ ‫کنیم‬ ‫ایجاد‬ ‫اسکریپت‬ ‫یک‬ ‫باید‬ ‫همچنین‬ ‫ما‬ ‫بنابراین‬ .‫کند‬ ‫تغییر‬ ‫تواند‬ ‫می‬ ‫محلی‬
‫عامل‬ ‫که‬ ‫زمان‬ ‫هر‬ ‫و‬ ‫کنیم‬ ‫روزرسانی‬‫به‬
OVS
‫فایل‬ ‫یک‬ ‫طریق‬ ‫از‬ ‫را‬ ‫آن‬ ،‫شد‬ ‫اندازی‬‫راه‬ ‫دوباره‬
unit systemd
.‫کنیم‬ ‫اجرا‬
‫مورد‬ ‫در‬
image
: ‫ها‬
‫در‬ ‫باید‬ ،‫شد‬ ‫ساخته‬ ‫تصویر‬ ‫که‬ ‫هنگامی‬
Glance
‫پیکربندی‬ ‫به‬ ‫که‬ ‫شود‬ ‫تگ‬ ‫برچسبی‬ ‫با‬ ‫و‬ ‫شود‬ ‫آپلود‬
Octavia
‫تگ‬ ‫این‬ .‫شد‬ ‫خواهد‬ ‫اضافه‬ ‫نیز‬
‫توسط‬ ‫بعدا‬
Octavia
‫استفاده‬ ‫برای‬ ‫را‬ ‫طعمی‬ ‫باید‬ ‫ما‬ ،‫این‬ ‫بر‬ ‫علوه‬ .‫شود‬ ‫ایجاد‬ ‫صحیح‬ ‫تصویر‬ ‫یابی‬ ‫مکان‬ ‫برای‬ ‫آمفورا‬ ‫یک‬ ‫که‬ ‫شود‬ ‫می‬ ‫استفاده‬
‫حداقل‬ ‫به‬ ‫ما‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬ .‫کنیم‬ ‫تنظیم‬ ‫آمفورا‬ ‫برای‬
1
‫و‬ ‫رم‬ ‫گیگابایت‬
2
‫آمفورا‬ ‫تصویر‬ ‫بتوانیم‬ ‫تا‬ ‫داریم‬ ‫نیاز‬ ‫دیسک‬ ‫فضای‬ ‫گیگابایت‬
. ‫باشید‬ ‫داشته‬ ‫را‬ ‫منابع‬ ‫این‬ ‫شوید‬ ‫مطمئن‬ ‫بنابراین‬ ،‫کنیم‬ ‫اجرا‬ ‫را‬
‫پیکربندی‬ ‫و‬ ‫کلیدها‬ ،‫ها‬ ‫گواهی‬
‫کنترل‬ ‫صفحه‬ ‫اجزای‬ ‫که‬ ‫دیدیم‬ ‫بال‬ ‫در‬
Octavia
‫یک‬ ‫از‬
REST API
‫برای‬ ‫شود‬‫می‬ ‫اجرا‬ ‫آمفورا‬ ‫هر‬ ‫روی‬ ‫که‬ ‫عاملی‬ ‫توسط‬ ‫که‬ ‫کنند‬‫می‬ ‫استفاده‬
‫های‬‫نمونه‬ ‫پیکربندی‬ ‫در‬ ‫تغییراتی‬ ‫ایجاد‬
HAProxy
،‫منظور‬ ‫این‬ ‫برای‬ .‫شود‬ ‫ایمن‬ ‫باید‬ ‫اتصال‬ ‫این‬ ‫که‬ ‫است‬ ‫بدیهی‬ .‫کند‬‫می‬ ‫استفاده‬
Octavia
‫از‬
‫های‬ ‫گواهینامه‬
TLS
.‫کند‬ ‫می‬ ‫استفاده‬
‫گواهی‬ .‫شود‬ ‫می‬ ‫استفاده‬ ‫عامل‬ ‫به‬ ‫اتصال‬ ‫هنگام‬ ‫در‬ ‫هویت‬ ‫احراز‬ ‫برای‬ ‫کنترل‬ ‫صفحه‬ ‫توسط‬ ‫گواهی‬ ‫این‬ .‫دارد‬ ‫وجود‬ ‫مشتری‬ ‫گواهی‬ ،‫اول‬
‫گواهی‬ ‫که‬ ‫آنجایی‬ ‫از‬ .‫شود‬ ‫ایجاد‬ ‫نصب‬ ‫حین‬ ‫در‬ ‫باید‬ ‫مربوطه‬ ‫کلید‬ ‫و‬ ‫مشتری‬
CA
‫هر‬ ‫در‬ ‫باید‬ ‫شود‬ ‫می‬ ‫استفاده‬ ‫مشتری‬ ‫گواهی‬ ‫امضای‬ ‫برای‬ ‫که‬
‫برای‬ ‫باید‬ ‫گواهی‬ ‫این‬ ،(‫کند‬ ‫استفاده‬ ‫دریافتی‬ ‫های‬ ‫درخواست‬ ‫تأیید‬ ‫برای‬ ‫آن‬ ‫از‬ ‫بتواند‬ ‫نماینده‬ ‫که‬ ‫طوری‬ ‫)به‬ ‫باشد‬ ‫داشته‬ ‫وجود‬ ‫آمفورا‬
Octavia
‫و‬ ،‫باشد‬ ‫شده‬ ‫شناخته‬ ‫نیز‬
Octavia
‫کرد‬ ‫ایجاد‬ ‫آمفورا‬ .‫کند‬ ‫می‬ ‫توزیع‬ ‫جدید‬ ‫مورد‬ ‫هر‬ ‫در‬ ‫را‬ ‫آن‬
‫یک‬ ‫توسط‬ ‫اجرا‬ ‫زمان‬ ‫در‬ ‫پویا‬ ‫صورت‬ ‫به‬ ‫و‬ ‫هستند‬ ‫فرد‬ ‫به‬ ‫منحصر‬ ‫عامل‬ ‫هر‬ ‫برای‬ ‫ها‬ ‫گواهینامه‬ ‫این‬ .‫دارد‬ ‫نیاز‬ ‫سرور‬ ‫گواهی‬ ‫به‬ ‫نماینده‬ ‫هر‬ ،‫ثانیا‬
‫کنترل‬ ‫صفحه‬ ‫در‬ ‫که‬ ‫گواهی‬ ‫مولد‬
Octavia
‫گواهی‬ ‫یک‬ ‫باید‬ ‫فقط‬ ‫ما‬ ،‫نصب‬ ‫طول‬ ‫در‬ .‫شوند‬ ‫می‬ ‫ایجاد‬ ‫است‬ ‫شده‬ ‫تعبیه‬
CA
‫کلید‬ ‫یک‬ ‫و‬
‫که‬ ‫کنیم‬ ‫ارائه‬ ‫مربوطه‬ ‫خصوصی‬
Octavia
‫کلید‬ ‫و‬ ‫ها‬ ‫گواهینامه‬ ‫خلصه‬ ‫طور‬ ‫به‬ ‫زیر‬ ‫نمودار‬ .‫کند‬‫می‬ ‫استفاده‬ ‫سرور‬ ‫های‬‫گواهی‬ ‫صدور‬ ‫برای‬ ‫آن‬ ‫از‬
.‫دهد‬ ‫می‬ ‫نشان‬ ‫را‬ ‫مربوطه‬
: ‫نصب‬ ‫روش‬
‫ساخت‬
user
‫سرویس‬ ‫برای‬
octavia
:
openstack user create --domain default --project service --password servicepassword octavia
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| default_project_id |
| domain_id | default |
| enabled | True |
| id |
| name | octavia |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
‫کاربر‬ ‫برای‬ ‫ادمین‬ ‫رول‬ ‫عنوان‬ ‫به‬ ‫کاربر‬ ‫کردن‬ ‫اضافه‬
octavia
openstack role add --project service --user octavia admin
‫کاربر‬ ‫برای‬ ‫سرویس‬ ‫ساخت‬
octavia
:
openstack service create --name octavia --description "OpenStack LBaaS" load-balancer
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack LBaaS |
| enabled | True |
| id |
| name | octavia |
| type | load-balancer |
+-------------+----------------------------------+
‫ساخت‬
endpoint
:
export octavia_api=<ip>
openstack endpoint create --region RegionOne load-balancer public http://$octavia_api:9876
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | |
| service_name | octavia |
| service_type | load-balancer |
| url | http://<ip>:9876 |
+--------------+----------------------------------+
openstack endpoint create --region RegionOne load-balancer internal http://$octavia_api:9876
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | |
| service_name | octavia |
| service_type | load-balancer |
| url | http://<ip>:9876 |
+--------------+----------------------------------+
openstack endpoint create --region RegionOne load-balancer admin http://$octavia_api:9876
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | |
| service_name | octavia |
| service_type | load-balancer |
| url | http://<ip>:9876 |
+--------------+----------------------------------+
‫برای‬ ‫دیتابیس‬ ‫ایجاد‬
octavia
: ‫یوزر‬ ‫ساخت‬ ‫و‬
MariaDB [(none)]> create database octavia;
MariaDB [(none)]> grant all privileges on octavia.* to octavia@'localhost' identified by
'password';
MariaDB [(none)]> grant all privileges on octavia.* to octavia@'%' identified by
'password';
MariaDB [(none)]> flush privileges;
‫در‬
network node
‫سرویس‬
octavia
: ‫میکنیم‬ ‫نصب‬ ‫را‬
dnf -y install openstack-octavia-api openstack-octavia-health-manager openstack-octavia-housekeeping
‫توسط‬ ‫که‬ ‫گواهی‬ ‫ایجاد‬
LoadBalancer Instance
‫خدمات‬ ‫و‬
Octavia
.‫شود‬ ‫می‬ ‫استفاده‬
mkdir -p /etc/octavia/certs/private
mkdir ~/work
cd ~/work
git clone https://opendev.org/openstack/octavia.git
cd octavia/bin
./create_dual_intermediate_CA.sh
cp -p ./dual_ca/etc/octavia/certs/server_ca.cert.pem /etc/octavia/certs
cp -p ./dual_ca/etc/octavia/certs/server_ca-chain.cert.pem /etc/octavia/certs
cp -p ./dual_ca/etc/octavia/certs/server_ca.key.pem /etc/octavia/certs/private
cp -p ./dual_ca/etc/octavia/certs/client_ca.cert.pem /etc/octavia/certs
cp -p ./dual_ca/etc/octavia/certs/client.cert-and-key.pem /etc/octavia/certs/private
chown -R octavia /etc/octavia/certs
‫کانفیق‬
octavia
:
mv /etc/octavia/octavia.conf /etc/octavia/octavia.conf.org
vi /etc/octavia/octavia.conf
# create new
[DEFAULT]
# RabbitMQ connection info
transport_url = rabbit://openstack:password@<ip>
[api_settings]
# IP address this host listens
bind_host = <ip>
bind_port = 9876
auth_strategy = keystone
api_base_uri = http://<ip>:9876
# MariaDB connection info
[database]
connection = mysql+pymysql://octavia:password@<ip>/octavia
[health_manager]
bind_ip = 0.0.0.0
bind_port = 5555
# Keystone auth info
[keystone_authtoken]
www_authenticate_uri = http://<ip>:5000
auth_url = http://<ip>:5000
memcached_servers = <ip>:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = octavia
password = servicepassword
# specify certificates created on [2]
[certificates]
ca_private_key = /etc/octavia/certs/private/server_ca.key.pem
ca_certificate = /etc/octavia/certs/server_ca.cert.pem
server_certs_key_passphrase = insecure-key-do-not-use-this-key
ca_private_key_passphrase = not-secure-passphrase
# specify certificates created on [2]
[haproxy_amphora]
server_ca = /etc/octavia/certs/server_ca-chain.cert.pem
client_cert = /etc/octavia/certs/private/client.cert-and-key.pem
# specify certificates created on [2]
[controller_worker]
client_ca = /etc/octavia/certs/client_ca.cert.pem
[oslo_messaging]
topic = octavia_prov
# Keystone auth info
[service_auth]
auth_url = http://<ip>:5000
memcached_servers = <ip>:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = octavia
password = servicepassword
chmod 640 /etc/octavia/octavia.conf
chgrp octavia /etc/octavia/octavia.conf
su -s /bin/bash octavia -c "octavia-db-manage --config-file /etc/octavia/octavia.conf upgrade head"
systemctl enable --now octavia-api octavia-health-manager octavia-housekeeping octavia-worker
: ‫فایروال‬ ‫کانفیق‬
firewall-cmd --add-port=9876/tcp
firewall-cmd --runtime-to-permanent
‫ایمیج‬ ‫یک‬ ‫ساخت‬
LoadBalancer
‫به‬ ‫کردن‬ ‫اضافه‬ ‫و‬
Glance
:
dnf -y install openstack-octavia-diskimage-create debootstrap python3-octaviaclient
# create an instance image
octavia-diskimage-create.sh -d focal
# add to Glance
openstack image create "Amphora" --tag "Amphora" --file amphora-x64-haproxy.qcow2 --disk-format
qcow2 --container-format bare --private --project service
# add [flavor] for Amphora instance
openstack flavor create --id 100 --vcpus 1 --ram 1024 --disk 5 m1.octavia --private --project service
# add a security group for Amphora instance
openstack security group create lb-mgmt-sec-group --project service
# allow required ports for security group
openstack security group rule create --protocol icmp --ingress lb-mgmt-sec-group
openstack security group rule create --protocol tcp --dst-port 80:80 lb-mgmt-sec-group
openstack security group rule create --protocol tcp --dst-port 443:443 lb-mgmt-sec-group
openstack security group rule create --protocol tcp --dst-port 9443:9443 lb-mgmt-sec-group
‫سرویس‬
Octavia
: ‫کنید‬ ‫پیکربندی‬ ‫امنیتی‬ ‫گروه‬ ‫شناسه‬ ‫برای‬ ‫را‬
openstack image list
: ‫نمونه‬ ‫برای‬
+--------------------------------------+-----------------+--------+
| ID | Name | Status |
+--------------------------------------+-----------------+--------+
| dc71ffa4-4a41-4614-bdca-27cd5bc8218b | Amphora | active |
| cfce605e-151b-43dd-b743-2c7988d69e96 | CentOS-Stream-8 | active |
+--------------------------------------+-----------------+--------+
openstack flavor list --all
: ‫نمونه‬ ‫برای‬
+-----+------------+------+------+-----------+-------+-----------+
| ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public |
+-----+------------+------+------+-----------+-------+-----------+
| 0 | m1.small | 2048 | 10 | 0 | 1 | True |
| 100 | m1.octavia | 1024 | 5 | 0 | 1 | False |
+-----+------------+------+------+-----------+-------+-----------+
openstack network list
: ‫نمونه‬ ‫برای‬
+--------------------------------------+---------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+---------+--------------------------------------+
| 3adf0a70-6446-4095-916d-17d9f753bbe6 | private | 9724f8a3-4c59-4d7d-9838-82bc682a551c |
| ac8911e7-afd7-4913-997e-2f0412f1271b | public | 61bf3654-bef1-4ddd-8d23-f2fd41166f4e |
+--------------------------------------+---------+--------------------------------------+
openstack security group list
: ‫نمونه‬ ‫برای‬
+--------------------------------------+-------------------+------------------------
+----------------------------------+------+
| ID | Name | Description |
Project | Tags |
+--------------------------------------+-------------------+------------------------
+----------------------------------+------+
| 66feb966-fd16-4c49-99d3-d845fd247ea8 | lb-mgmt-sec-group | lb-mgmt-sec-group |
7e53ef14eb894f379ea1929f5defc949 | [] |
| 888fd13d-5621-4ca9-96cf-3865021329dd | secgroup01 | secgroup01 |
2decda8bcd724687a1cf05064ab21fdf | [] |
| e7b47f71-4cd6-4b91-b1eb-b228856fb842 | default | Default security group |
2decda8bcd724687a1cf05064ab21fdf | [] |
+--------------------------------------+-------------------+------------------------
+----------------------------------+------+
vi /etc/octavia/octavia.conf
# add into [controller_worker] section
[controller_worker]
client_ca = /etc/octavia/certs/client_ca.cert.pem
amp_image_tag = Amphora
# specify [flavor] ID for Amphora instance
amp_flavor_id = 100
# specify security group ID Amphora instance
amp_secgroup_list = 66feb966-fd16-4c49-99d3-d845fd247ea8
# specify network ID to boot Amphora instance (example below specifies public network
[public])
amp_boot_network_list = ac8911e7-afd7-4913-997e-2f0412f1271b
network_driver = allowed_address_pairs_driver
compute_driver = compute_nova_driver
amphora_driver = amphora_haproxy_rest_driver
[root@network ~]#
systemctl restart octavia-api 
octavia-health-manager 
octavia-housekeeping 
octavia-worker
‫نمونه‬ ‫یک‬ ‫ادامه‬ ‫در‬
Loadbalancer
: ‫میکنیم‬ ‫ایجاد‬
openstack subnet list
+--------------------------------------+----------------
+--------------------------------------+------------------+
| ID | Name | Network
| Subnet |
+--------------------------------------+----------------
+--------------------------------------+------------------+
| 61bf3654-bef1-4ddd-8d23-f2fd41166f4e | public-subnet | ac8911e7-afd7-4913-997e-
2f0412f1271b | 10.0.0.0/24 |
| 9724f8a3-4c59-4d7d-9838-82bc682a551c | private-subnet | 3adf0a70-6446-4095-916d-
17d9f753bbe6 | 192.168.100.0/24 |
+--------------------------------------+----------------
+--------------------------------------+------------------+
openstack loadbalancer create --name lb01 --vip-subnet-id private-subnet
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| admin_state_up | True |
| availability_zone | None |
| created_at | |
| description | |
| flavor_id | None |
| id | 5a52749c-95e5-49c5-a034-431a5721b4af |
| listeners | |
| name | lb01 |
| operating_status | OFFLINE |
| pools | |
| project_id | b12f95625664420ca31949963b75b74f |
| provider | amphora |
| provisioning_status | PENDING_CREATE |
| updated_at | None |
| vip_address | 192.168.100.220 |
| vip_network_id | 3adf0a70-6446-4095-916d-17d9f753bbe6 |
| vip_port_id | 7710dbbd-00fc-40eb-8c7e-eaa447abf52c |
| vip_qos_policy_id | None |
| vip_subnet_id | 9724f8a3-4c59-4d7d-9838-82bc682a551c |
| tags | |
+---------------------+--------------------------------------+
‫مدتی‬ ‫از‬ ‫پس‬
instance
‫آن‬ ‫وضعیت‬ ‫و‬ . ‫شده‬ ‫ساخته‬
active
: ‫شود‬‫می‬
openstack loadbalancer list
+--------------------------------------+------+----------------------------------
+-----------------+---------------------+------------------+----------+
| id | name | project_id |
vip_address | provisioning_status | operating_status | provider |
+--------------------------------------+------+----------------------------------
+-----------------+---------------------+------------------+----------+
| 5a52749c-95e5-49c5-a034-431a5721b4af | lb01 | b12f95625664420ca31949963b75b74f |
192.168.100.220 | ACTIVE | OFFLINE | amphora |
+--------------------------------------+------+----------------------------------
+-----------------+---------------------+------------------+----------+
listener
‫و‬
Pool
‫و‬ ‫کنید‬ ‫اضافه‬ ‫نمونه‬ ‫به‬ ‫را‬
loadbalancing
‫از‬ ‫استفاده‬ ‫برای‬ ‫را‬
2
‫سرور‬ ‫وب‬ ‫نمونه‬
backend
.‫کنید‬ ‫پیکربندی‬
# create a listener that listens TCP 80
openstack loadbalancer listener create --name listener01 --protocol TCP --protocol-port 80 lb01
+-----------------------------+--------------------------------------+
| Field | Value |
+-----------------------------+--------------------------------------+
| admin_state_up | True |
| connection_limit | -1 |
| created_at | |
| default_pool_id | None |
| default_tls_container_ref | None |
| description | |
| id | 8df57f4f-bcd0-46df-aafd-fdd77e81fa02 |
| insert_headers | None |
| l7policies | |
| loadbalancers | 5a52749c-95e5-49c5-a034-431a5721b4af |
| name | listener01 |
| operating_status | OFFLINE |
| project_id | b12f95625664420ca31949963b75b74f |
| protocol | TCP |
| protocol_port | 80 |
| provisioning_status | PENDING_CREATE |
| sni_container_refs | [] |
| timeout_client_data | 50000 |
| timeout_member_connect | 5000 |
| timeout_member_data | 50000 |
| timeout_tcp_inspect | 0 |
| updated_at | None |
| client_ca_tls_container_ref | None |
| client_authentication | NONE |
| client_crl_container_ref | None |
| allowed_cidrs | None |
| tls_ciphers | None |
| tls_versions | None |
| alpn_protocols | None |
| tags | |
+-----------------------------+--------------------------------------+
# add a pool to the listener
openstack loadbalancer pool create --name pool01 --lb-algorithm ROUND_ROBIN --listener listener01
--protocol TCP
+----------------------+--------------------------------------+
| Field | Value |
+----------------------+--------------------------------------+
| admin_state_up | True |
| created_at | 2021-11-25T00:29:24 |
| description | |
| healthmonitor_id | |
| id | 537b409b-1ccf-475d-b009-106b802d5891 |
| lb_algorithm | ROUND_ROBIN |
| listeners | 8df57f4f-bcd0-46df-aafd-fdd77e81fa02 |
| loadbalancers | 5a52749c-95e5-49c5-a034-431a5721b4af |
| members | |
| name | pool01 |
| operating_status | OFFLINE |
| project_id | b12f95625664420ca31949963b75b74f |
| protocol | TCP |
| provisioning_status | PENDING_CREATE |
| session_persistence | None |
| updated_at | None |
| tls_container_ref | None |
| ca_tls_container_ref | None |
| crl_container_ref | None |
| tls_enabled | False |
| tls_ciphers | None |
| tls_versions | None |
| tags | |
| alpn_protocols | None |
+----------------------+--------------------------------------+
# web server instances
openstack server list
+--------------------------------------+-------+--------+------------------------
+-----------------+----------+
| ID | Name | Status | Networks | Image
| Flavor |
+--------------------------------------+-------+--------+------------------------
+-----------------+----------+
| 267da02c-056a-4678-9d49-c19c802a2cde | Web02 | ACTIVE | private=192.168.100.78 | CentOS-
Stream-8 | m1.small |
| ff35a3bb-d2cd-4c01-9960-a34c6cb5a5a2 | Web01 | ACTIVE | private=192.168.100.44 | CentOS-
Stream-8 | m1.small |
+--------------------------------------+-------+--------+------------------------
+-----------------+----------+
# add web server instances to the pool member
openstack loadbalancer member create --subnet-id private-subnet --address 192.168.100.78 --protocol-
port 80 pool01
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| address | 192.168.100.78 |
| admin_state_up | True |
| created_at | 2021-11-25T00:34:38 |
| id | 48df21bb-b8d6-4af2-a6c8-64400cddc518 |
| name | |
| operating_status | NO_MONITOR |
| project_id | b12f95625664420ca31949963b75b74f |
| protocol_port | 80 |
| provisioning_status | PENDING_CREATE |
| subnet_id | 9724f8a3-4c59-4d7d-9838-82bc682a551c |
| updated_at | None |
| weight | 1 |
| monitor_port | None |
| monitor_address | None |
| backup | False |
| tags | |
+---------------------+--------------------------------------+
openstack loadbalancer member create --subnet-id private-subnet --address 192.168.100.44 --protocol-
port 80 pool01
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| address | 192.168.100.44 |
| admin_state_up | True |
| created_at | 2021-11-25T00:34:51 |
| id | b2d1f0e0-af04-48c6-a6a7-11323081d683 |
| name | |
| operating_status | NO_MONITOR |
| project_id | b12f95625664420ca31949963b75b74f |
| protocol_port | 80 |
| provisioning_status | PENDING_CREATE |
| subnet_id | 9724f8a3-4c59-4d7d-9838-82bc682a551c |
| updated_at | None |
| weight | 1 |
| monitor_port | None |
| monitor_address | None |
| backup | False |
| tags | |
+---------------------+--------------------------------------+
openstack loadbalancer member list pool01
+--------------------------------------+------+----------------------------------
+---------------------+----------------+---------------+------------------+--------+
| id | name | project_id |
provisioning_status | address | protocol_port | operating_status | weight |
+--------------------------------------+------+----------------------------------
+---------------------+----------------+---------------+------------------+--------+
| 48df21bb-b8d6-4af2-a6c8-64400cddc518 | | b12f95625664420ca31949963b75b74f | ACTIVE
| 192.168.100.78 | 80 | NO_MONITOR | 1 |
| b2d1f0e0-af04-48c6-a6a7-11323081d683 | | b12f95625664420ca31949963b75b74f | ACTIVE
| 192.168.100.44 | 80 | NO_MONITOR | 1 |
+--------------------------------------+------+----------------------------------
+---------------------+----------------+---------------+------------------+--------+
# create a floating IP on public network
openstack floating ip create public
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| created_at | 2021-11-25T00:42:32Z |
| description | |
| dns_domain | |
| dns_name | |
| fixed_ip_address | None |
| floating_ip_address | 10.0.0.253 |
| floating_network_id | ac8911e7-afd7-4913-997e-2f0412f1271b |
| id | 30ef7fe3-b45b-4182-a8ad-7331e005d7df |
| name | 10.0.0.253 |
| port_details | None |
| port_id | None |
| project_id | b12f95625664420ca31949963b75b74f |
| qos_policy_id | None |
| revision_number | 0 |
| router_id | None |
| status | DOWN |
| subnet_id | None |
| tags | [] |
| updated_at | |
+---------------------+--------------------------------------+
# assosiate floating IP with VIP of loadbalancer instace
VIPPORT=$(openstack loadbalancer show lb01 | grep vip_port_id | awk {'print $4'})
openstack floating ip set --port $VIPPORT 10.0.0.253
# verify settings to access to the floating IP
curl 10.0.0.253
Web Server on Instance01
curl 10.0.0.253
Web Server on Instance02
curl 10.0.0.253
Web Server on Instance01
curl 10.0.0.253
Web Server on Instance02

More Related Content

What's hot

OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfssuser1490e8
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntuSim Janghoon
 
How to Survive an OpenStack Cloud Meltdown with Ceph
How to Survive an OpenStack Cloud Meltdown with CephHow to Survive an OpenStack Cloud Meltdown with Ceph
How to Survive an OpenStack Cloud Meltdown with CephSean Cohen
 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Novell
 
Ceph and RocksDB
Ceph and RocksDBCeph and RocksDB
Ceph and RocksDBSage Weil
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumScyllaDB
 
Automated CloudStack Deployment
Automated CloudStack DeploymentAutomated CloudStack Deployment
Automated CloudStack DeploymentShapeBlue
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchTe-Yen Liu
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetMichael Lessard
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to AnsibleKnoldus Inc.
 
Everything you want to know about Ingress
Everything you want to know about IngressEverything you want to know about Ingress
Everything you want to know about IngressJanakiram MSV
 
Ceph with CloudStack
Ceph with CloudStackCeph with CloudStack
Ceph with CloudStackShapeBlue
 
VM Job Queues in CloudStack
VM Job Queues in CloudStackVM Job Queues in CloudStack
VM Job Queues in CloudStackShapeBlue
 
Cilium - BPF & XDP for containers
 Cilium - BPF & XDP for containers Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containersDocker, Inc.
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch IntroductionHungWei Chiu
 
OpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image LifecycleOpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image LifecycleMihai Criveti
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network InterfacesKernel TLV
 
VXLAN Integration with CloudStack Advanced Zone
VXLAN Integration with CloudStack Advanced ZoneVXLAN Integration with CloudStack Advanced Zone
VXLAN Integration with CloudStack Advanced ZoneYoshikazu Nojima
 

What's hot (20)

OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdf
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
 
How to Survive an OpenStack Cloud Meltdown with Ceph
How to Survive an OpenStack Cloud Meltdown with CephHow to Survive an OpenStack Cloud Meltdown with Ceph
How to Survive an OpenStack Cloud Meltdown with Ceph
 
Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)Virtualization with KVM (Kernel-based Virtual Machine)
Virtualization with KVM (Kernel-based Virtual Machine)
 
Ceph and RocksDB
Ceph and RocksDBCeph and RocksDB
Ceph and RocksDB
 
eBPF maps 101
eBPF maps 101eBPF maps 101
eBPF maps 101
 
Using eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in CiliumUsing eBPF for High-Performance Networking in Cilium
Using eBPF for High-Performance Networking in Cilium
 
Automated CloudStack Deployment
Automated CloudStack DeploymentAutomated CloudStack Deployment
Automated CloudStack Deployment
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitch
 
Red Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with PuppetRed Hat Satellite 6 - Automation with Puppet
Red Hat Satellite 6 - Automation with Puppet
 
Introduction to Ansible
Introduction to AnsibleIntroduction to Ansible
Introduction to Ansible
 
Everything you want to know about Ingress
Everything you want to know about IngressEverything you want to know about Ingress
Everything you want to know about Ingress
 
Ceph with CloudStack
Ceph with CloudStackCeph with CloudStack
Ceph with CloudStack
 
Meetup 23 - 02 - OVN - The future of networking in OpenStack
Meetup 23 - 02 - OVN - The future of networking in OpenStackMeetup 23 - 02 - OVN - The future of networking in OpenStack
Meetup 23 - 02 - OVN - The future of networking in OpenStack
 
VM Job Queues in CloudStack
VM Job Queues in CloudStackVM Job Queues in CloudStack
VM Job Queues in CloudStack
 
Cilium - BPF & XDP for containers
 Cilium - BPF & XDP for containers Cilium - BPF & XDP for containers
Cilium - BPF & XDP for containers
 
Open vSwitch Introduction
Open vSwitch IntroductionOpen vSwitch Introduction
Open vSwitch Introduction
 
OpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image LifecycleOpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image Lifecycle
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
VXLAN Integration with CloudStack Advanced Zone
VXLAN Integration with CloudStack Advanced ZoneVXLAN Integration with CloudStack Advanced Zone
VXLAN Integration with CloudStack Advanced Zone
 

Similar to Load Balancing-as-a-Service (LBaaS) with octavia in openstack

Similar to Load Balancing-as-a-Service (LBaaS) with octavia in openstack (20)

OpenStack and its service
OpenStack and its serviceOpenStack and its service
OpenStack and its service
 
Openstack Rally
Openstack RallyOpenstack Rally
Openstack Rally
 
Network Load Balancing (NLB)
Network Load Balancing (NLB)Network Load Balancing (NLB)
Network Load Balancing (NLB)
 
Pg autoscaling in ceph
Pg autoscaling in  cephPg autoscaling in  ceph
Pg autoscaling in ceph
 
rbdmap in ceph
rbdmap in ceph rbdmap in ceph
rbdmap in ceph
 
How Create Waf With Naxsi
How Create Waf With NaxsiHow Create Waf With Naxsi
How Create Waf With Naxsi
 
how enable ceph dashboard
how enable  ceph dashboardhow enable  ceph dashboard
how enable ceph dashboard
 
Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2Rbdmap ceph realease 0.2
Rbdmap ceph realease 0.2
 
cloud services for libraries
cloud services for librariescloud services for libraries
cloud services for libraries
 
Liara
LiaraLiara
Liara
 
how upgrade ceph
how upgrade cephhow upgrade ceph
how upgrade ceph
 
Soap vs restful
Soap vs  restfulSoap vs  restful
Soap vs restful
 
PHP Web service - وب سرویس
PHP Web service - وب سرویسPHP Web service - وب سرویس
PHP Web service - وب سرویس
 
Varnish
VarnishVarnish
Varnish
 
Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...
Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...
Forth exploration dari note-muhibullah aman اکسپلوریشن چهارم- شبکه های کمپیور...
 
Presentation research method
Presentation research methodPresentation research method
Presentation research method
 
Proxmox
ProxmoxProxmox
Proxmox
 
Docker
DockerDocker
Docker
 
DHCP in Linux persion
DHCP in Linux persionDHCP in Linux persion
DHCP in Linux persion
 
Introduction to SOA
Introduction to SOAIntroduction to SOA
Introduction to SOA
 

More from Yashar Esmaildokht

how install and config sdn in proxmox virtualization
how install and config sdn in proxmox virtualizationhow install and config sdn in proxmox virtualization
how install and config sdn in proxmox virtualizationYashar Esmaildokht
 
service registery and the service discovery
service registery and the service discoveryservice registery and the service discovery
service registery and the service discoveryYashar Esmaildokht
 
مرجع oracle mysql |mariadb
مرجع oracle mysql |mariadb مرجع oracle mysql |mariadb
مرجع oracle mysql |mariadb Yashar Esmaildokht
 
bcache and cachefs its benefits.
bcache and cachefs   its benefits. bcache and cachefs   its benefits.
bcache and cachefs its benefits. Yashar Esmaildokht
 
Systemd and its various uses and capabilities.
Systemd and its various uses and capabilities.Systemd and its various uses and capabilities.
Systemd and its various uses and capabilities.Yashar Esmaildokht
 
how add and remove Mgr in ceph cluster
how add and remove  Mgr in ceph  clusterhow add and remove  Mgr in ceph  cluster
how add and remove Mgr in ceph clusterYashar Esmaildokht
 
how add and delete new mon in ceph cluster
how add  and delete new  mon in ceph clusterhow add  and delete new  mon in ceph cluster
how add and delete new mon in ceph clusterYashar Esmaildokht
 
نحوه ایجاد snapshot و ایجاد point در سیستم‌های گنو/لینوکسی برای ایجاد sys...
 نحوه ایجاد snapshot  و ایجاد point  در سیستم‌های گنو/لینوکسی  برای ایجاد sys... نحوه ایجاد snapshot  و ایجاد point  در سیستم‌های گنو/لینوکسی  برای ایجاد sys...
نحوه ایجاد snapshot و ایجاد point در سیستم‌های گنو/لینوکسی برای ایجاد sys...Yashar Esmaildokht
 
how create linux image for cloud
how create linux image for cloud how create linux image for cloud
how create linux image for cloud Yashar Esmaildokht
 

More from Yashar Esmaildokht (20)

how install and config sdn in proxmox virtualization
how install and config sdn in proxmox virtualizationhow install and config sdn in proxmox virtualization
how install and config sdn in proxmox virtualization
 
service registery and the service discovery
service registery and the service discoveryservice registery and the service discovery
service registery and the service discovery
 
process
processprocess
process
 
nbd and it's benefits
nbd and it's benefitsnbd and it's benefits
nbd and it's benefits
 
مرجع oracle mysql |mariadb
مرجع oracle mysql |mariadb مرجع oracle mysql |mariadb
مرجع oracle mysql |mariadb
 
bcache and cachefs its benefits.
bcache and cachefs   its benefits. bcache and cachefs   its benefits.
bcache and cachefs its benefits.
 
Systemd and its various uses and capabilities.
Systemd and its various uses and capabilities.Systemd and its various uses and capabilities.
Systemd and its various uses and capabilities.
 
radosgw
radosgw radosgw
radosgw
 
cachefs
cachefs cachefs
cachefs
 
how add and remove Mgr in ceph cluster
how add and remove  Mgr in ceph  clusterhow add and remove  Mgr in ceph  cluster
how add and remove Mgr in ceph cluster
 
how add and delete new mon in ceph cluster
how add  and delete new  mon in ceph clusterhow add  and delete new  mon in ceph cluster
how add and delete new mon in ceph cluster
 
Nfs Acl
Nfs AclNfs Acl
Nfs Acl
 
nbd
nbdnbd
nbd
 
raid with megacli
raid with megacliraid with megacli
raid with megacli
 
نحوه ایجاد snapshot و ایجاد point در سیستم‌های گنو/لینوکسی برای ایجاد sys...
 نحوه ایجاد snapshot  و ایجاد point  در سیستم‌های گنو/لینوکسی  برای ایجاد sys... نحوه ایجاد snapshot  و ایجاد point  در سیستم‌های گنو/لینوکسی  برای ایجاد sys...
نحوه ایجاد snapshot و ایجاد point در سیستم‌های گنو/لینوکسی برای ایجاد sys...
 
linux industry
linux industrylinux industry
linux industry
 
security book
security book security book
security book
 
squid
squidsquid
squid
 
how use iptables
how use iptables how use iptables
how use iptables
 
how create linux image for cloud
how create linux image for cloud how create linux image for cloud
how create linux image for cloud
 

Load Balancing-as-a-Service (LBaaS) with octavia in openstack

  • 1. ‫حق‬ ‫بسمه‬ Load Balancing-as-a-Service (LBaaS) with : ‫نویسنده‬ ‫دخت‬ ‫اسمعیل‬ ‫یاشار‬ ‫مهندس‬ : ‫نسخه‬ 0.1
  • 2.
  • 3. : ‫نویسنده‬ ‫درباره‬ ‫رشته‬ ‫آموخته‬ ‫دانش‬ ‫دخت‬ ‫اسمعیل‬ ‫یاشار‬ ‫بنده‬ cyber security . ‫هستم‬ ‫از‬ ‫بیش‬ ۱۵ . ‫دارم‬ ‫فعالیت‬ ‫سابقه‬ ‫سال‬ ‫مولف‬ - ‫مدرس‬ - ‫مشاور‬ : ‫داد‬ ‫شرح‬ ‫زیر‬ ‫های‬ ‫ساختار‬ ‫در‬ ‫میتوان‬ ‫را‬ ‫بنده‬ ‫های‬ ‫فعالیت‬ ‫جمله‬ ‫از‬ gnu/linux system/network/security/cloud Engineer/administrator & oracle dba | Linux Trainer |devops . (: ‫جدید‬ ‫دنیاهای‬ ‫کشف‬ ‫و‬ ‫تحقیق‬ ‫و‬ ‫مطالعه‬ ‫به‬ ‫مند‬ ‫علقه‬ . ‫کنم‬ ‫اشاره‬ ‫استراتژی‬ ‫های‬ ‫بازی‬ ‫و‬ ‫اوتلو‬ ‫و‬ ‫شطرنج‬ ‫بازی‬ ‫به‬ ‫میتوانم‬ ‫من‬ ‫های‬ ‫سرگرمی‬ ‫از‬ ‫واقع‬ ‫در‬ ‫تبریز‬ ‫لگ‬ ‫گذاران‬ ‫بنیان‬ ‫از‬ ‫یکی‬ ‫و‬ ‫لینوکس‬/‫گنو‬ ‫و‬ ‫باز‬ ‫متن‬ ‫دنیای‬ ‫عاشق‬ . ‫هستم‬ ‫عاشق‬ ‫یک‬ ‫من‬ : ‫کنید‬ ‫پیدا‬ ‫و‬ ‫کنید‬ ‫دنبال‬ ‫را‬ ‫من‬ ‫میتوانید‬ ‫چطور‬ ‫خب‬ Mob : 09141100257 Telegram ID Telegram channel Instagram Account Linkedin Account . ‫بشنوم‬ ‫را‬ ‫انتقادتون‬ ‫یا‬ ‫پیشنهاد‬ ‫هرگونه‬ ‫میشم‬ ‫خوشحال‬ ‫همچنین‬ : ‫کنید‬ ‫پیدا‬ ‫را‬ ‫من‬ ‫از‬ ‫ی‬ ‫دیگر‬ ‫های‬ ‫کتاب‬ ‫میتونید‬ ‫چطور‬ ‫توی‬ slideshare . ‫کنید‬ ‫پیدا‬ ‫را‬ ‫کردم‬ ‫منتشر‬ ‫آزاد‬ ‫بصورت‬ ‫که‬ ‫دیگری‬ ‫های‬ ‫کتاب‬ ‫میتونید‬ ‫بگردید‬ ‫من‬ ‫اسم‬ ‫دنبال‬ ‫گوگل‬ ‫یا‬ ‫این‬ ‫از‬ ‫میتوانید‬ ‫هم‬ ‫دونیت‬ ‫جهت‬ ‫لینک‬ ‫کنید‬ ‫استفاده‬
  • 4. : ‫مشاوره‬ . ‫بود‬ ‫خواهم‬ ‫شما‬ ‫دسترس‬ ‫در‬ ‫من‬ . ‫فرمایید‬ ‫حاصل‬ ‫تماس‬ . ‫کردم‬ ‫اشاره‬ ‫قبل‬ ‫صفحه‬ ‫در‬ ‫که‬ ‫هایی‬ ‫کانال‬ ‫از‬ ‫میتوانید‬ ‫مشاوره‬ ‫جهت‬
  • 5. : ‫به‬ ‫تقدیم‬ ‫خدا‬ ‫شتافت‬ ‫یاریم‬ ‫به‬ ‫که‬ ‫بود‬ ‫او‬ ‫تنها‬ ‫هایم‬ ‫سختی‬ ‫در‬ ‫که‬ ‫چرا‬ ‫مادرم‬ ‫اویم‬ ‫مدیون‬ ‫که‬ ‫را‬ ‫ححبت‬‫م‬ ‫و‬ ‫انسانیت‬ ‫داد‬ ‫یاد‬ ‫و‬ . ‫کرد‬ ‫تقدیم‬ ‫زندگی‬ ‫به‬ ‫مرا‬ ‫که‬ ‫چرا‬ ‫پدرم‬ ‫اویم‬ ‫مدیون‬ ‫و‬ ‫بود‬ ‫من‬ ‫حامی‬ ‫همیشه‬ ‫روحش‬ ‫که‬ ‫عشقم‬ ‫هست‬ ‫و‬ ‫بود‬ ‫مشوقم‬ ‫که‬ ‫سورس‬ ‫اپن‬ ‫جامعه‬ ‫بشریت‬ ‫را‬ ‫هایش‬ ‫دانسته‬ ‫میکند‬ ‫منتشر‬ ‫و‬ ‫میخواند‬ ‫که‬ ‫او‬ ‫و‬ (: ‫هیچ‬ ‫دیگر‬ ‫و‬ ‫جهانی‬ ‫صلح‬ ‫امید‬ ‫به‬ ‫و‬
  • 6. ‫های‬ ‫سرور‬ ‫روی‬ ‫افزاری‬ ‫نرم‬ ‫ترافیک‬ ‫یا‬ ‫و‬ ‫شبکه‬ ‫بار‬ ‫توضیع‬ Cluster ‫تقسم‬ ‫پایداری‬ ‫و‬ ‫کیفیت‬ ‫افزایش‬ ‫و‬ ‫درخواست‬ ‫به‬ ‫پاسخ‬ ‫سازی‬ ‫بهینه‬ ‫جهت‬ ‫یا‬ ‫بار‬ Load Balancing ‫بین‬ ‫بار‬ ‫تقسیم‬ ‫سیستم‬ ‫یا‬ ‫سرور‬ .‫میشود‬ ‫گفته‬ Client ‫و‬ Server Farm ‫نرم‬ ‫و‬ ‫شبکه‬ ‫های‬ ‫ترافیک‬ ‫و‬ ‫میگیرید‬ ‫قرار‬ ‫بروز‬ ‫از‬ ‫ها‬ ‫سرور‬ ‫بین‬ ‫عمل‬ ‫این‬ ‫انجام‬ ‫با‬ ‫که‬ ‫میکند‬ ‫توضیع‬ ‫ها‬ ‫سرور‬ ‫بین‬ ‫گوناگون‬ ‫های‬ ‫متد‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬ ‫افزار‬ Single Point Failure .‫میشود‬ ‫جلوگیری‬ Load Balancing ‫برای‬ ‫معماری‬ ‫ترین‬ ‫کارامد‬ ‫و‬ ‫بهترین‬ ‫از‬ ‫یکی‬ Application server .‫میباشد‬
  • 7. ‫در‬ ‫افزار‬ ‫نرم‬ ‫لودبالنسینگ‬ ، ‫دو‬ ‫و‬ ‫سه‬ ‫لیه‬ ‫در‬ ‫اینترنت‬ ‫خطوط‬ ‫لودبالنسینگ‬ ، ‫مثال‬ ‫برای‬ . ‫میکنند‬ ‫کار‬ ‫مختلفی‬ ‫های‬ ‫لیه‬ ‫در‬ ‫ها‬ ‫بالنسر‬ ‫لود‬ ‫کنید‬ ‫فرض‬ ‫مثل‬ . ‫بشه‬ ‫شامل‬ ‫میتونه‬ ‫حتی‬ ‫هم‬ ‫رو‬ ‫اینترنت‬ ‫های‬ ‫لینک‬ ‫و‬ ‫نیست‬ ‫ها‬ ‫سرور‬ ‫به‬ ‫مختص‬ ‫تنها‬ ‫لودبالنسینگ‬ . ‫چهار‬ ‫و‬ ‫هفت‬ ‫لیه‬ . ‫اسیاتک‬ ‫دیگه‬ ‫خط‬ ‫و‬ ‫انلین‬ ‫پارس‬ ‫خط‬ ‫یه‬ ‫مثل‬ ، ‫کنید‬ ‫تهیه‬ ‫اینترنت‬ ‫مختلف‬ ‫خطوط‬ ‫میتونید‬ ، ‫هستید‬ ‫شرکت‬ ‫یک‬ ‫یا‬ ‫نت‬ ‫کافی‬ ‫یک‬ ‫صاحب‬ ‫دیگه‬ ‫و‬ ‫کرد‬ ‫خواهد‬ ‫شدن‬ ‫توزیع‬ ‫به‬ ‫شروع‬ ‫اسیاتک‬ ، ‫شد‬ ‫مشکل‬ ‫دچار‬ ‫انلین‬ ‫پارس‬ ‫که‬ ‫هرموقع‬ ‫حال‬ SPF . ‫داشت‬ ‫نخواهید‬ ‫منابع‬ ‫مصرف‬ ‫و‬ ‫سرور‬ ‫درگیری‬ ‫که‬ ‫زمانی‬ ‫متد‬ ‫این‬ ‫اندازی‬ ‫راه‬ ‫با‬ Application ‫به‬ ‫را‬ ‫جدید‬ ‫های‬ ‫سرور‬ ‫راحتی‬ ‫به‬ ‫میتوان‬ ‫میرود‬ ‫بال‬ Server Pool ‫جدید‬ ‫سرور‬ ‫شدن‬ ‫اضافه‬ ‫محض‬ ‫به‬ .‫کرد‬ ‫اضافه‬ Request .‫شد‬ ‫خواهد‬ ‫توضیع‬ ‫نیز‬ ‫جدید‬ ‫سرور‬ ‫روی‬ ‫ترافیک‬ ‫و‬ ‫ها‬ ‫وظایف‬ ‫بال‬ ‫توضیحات‬ ‫به‬ ‫توجه‬ ‫با‬ Load Balancer ‫بود‬ ‫خواهد‬ ‫زیر‬ ‫شرح‬ ‫به‬ : • ‫های‬ ‫درخواست‬ ‫توضیع‬ Client ‫ها‬ ‫سرور‬ ‫بین‬ ‫موثر‬ ‫بصورت‬ ‫شبکه‬ ‫ترافیک‬ ‫یا‬ ‫و‬ • ‫درخواست‬ ‫فرستادن‬ ‫با‬ ‫اعتماد‬ ‫و‬ ‫کیفیت‬ ،‫سرویس‬ ‫پایداری‬ ‫از‬ ‫اطمینان‬ Client ‫دسترس‬ ‫در‬ ‫و‬ ‫فعال‬ ‫های‬ ‫سرور‬ ‫سمت‬ ‫به‬ • ‫نیاز‬ ‫صورت‬ ‫در‬ ‫سرور‬ ‫اضافه‬ ‫یا‬ ‫و‬ ‫حذف‬ ‫در‬ ‫پذیری‬ ‫انعطاف‬ ‫ارائه‬
  • 8. ‫مفهوم‬ Clustering ‫و‬ Distribute ‫یک‬ ‫تنها‬ ‫کاربر‬ ‫کلسترینگ‬ ‫در‬ . ‫هست‬ ‫بندی‬ ‫خوشه‬ ‫معنی‬ ‫به‬ ‫کلسترینگ‬ IP ‫سرور‬ ‫چندین‬ ‫قضیه‬ ‫این‬ ‫پشت‬ ‫که‬ ‫حالی‬ ‫در‬ ‫میکنه‬ ‫مشاهده‬ ‫رو‬ ‫رو‬ ‫شما‬ ‫درخواست‬ ‫خودشون‬ ‫بین‬ ‫ها‬ ‫اون‬ ‫و‬ ‫باشه‬ ‫داشته‬ ‫وجود‬ ‫ممکنه‬ LB ‫میدن‬ ‫تحویل‬ ‫شما‬ ‫به‬ ‫پی‬ ‫ای‬ ‫ادرس‬ ‫یک‬ ‫قالب‬ ‫در‬ ‫رو‬ ‫نتیجه‬ ‫و‬ ‫میکنند‬ ‫واژه‬ . Distribute ‫درخواست‬ ‫کردن‬ ‫توزیع‬ : ‫مثال‬ . ‫میکنیم‬ ‫توزیع‬ ‫رو‬ ‫چیزی‬ ‫یک‬ ‫ها‬ ‫اون‬ ‫روی‬ ‫بعد‬ ‫و‬ ‫داریم‬ ‫مشخص‬ ‫چیز‬ ‫تا‬ ‫چند‬ ‫اینکه‬ ‫یعنی‬ ‫روی‬ ‫یوزر‬ ‫های‬ LB . ‫مفهوم‬ SPF ‫و‬ Redundancy ‫اصلح‬ SPF ‫یا‬ Single Point Of Failure ) ‫افزونگی‬ ‫شما‬ ‫که‬ ‫میشه‬ ‫استفاده‬ ‫زمانی‬ Redundancy ‫شبکه‬ ، ‫چیز‬ ‫اون‬ ‫شدن‬ ‫مختل‬ ‫با‬ ‫و‬ ‫ندارید‬ ( ‫میشه‬ ‫این‬ ‫نباشه‬ ‫براش‬ ‫جایگزینی‬ ‫عامل‬ ‫و‬ ‫افته‬ ‫بی‬ ‫کار‬ ‫از‬ ‫روتر‬ ‫و‬ ‫دارید‬ ‫روتر‬ ‫یک‬ ‫اگر‬ ‫شبکه‬ ‫یک‬ ‫توی‬ : ‫مثال‬ . ‫میشه‬ ‫مشکل‬ ‫دچار‬ ‫شما‬ SPF . ‫انواع‬ Load Balancing ‫ها‬ • 1 . ‫لیه‬ ‫در‬ ، ‫اول‬ ‫نوع‬ 4 ‫براساس‬ ‫و‬ ‫میکنه‬ ‫کار‬ IP . ‫هست‬ ‫پورت‬ ‫و‬ • 2 . ‫لیه‬ ‫در‬ ، ‫دوم‬ ‫نوع‬ 7 . ‫هست‬ ‫افزاری‬ ‫نرم‬ ‫بالنسر‬ ‫لود‬ ‫و‬ ‫میکنه‬ ‫کار‬ • 3 . ، ‫سوم‬ ‫نوع‬ GSLB ‫مخفف‬ ‫که‬ Global server load balancing ‫بالنسینگ‬ ‫لود‬ ‫عملیات‬ ‫و‬ ‫نمیگیره‬ ‫نظر‬ ‫در‬ ‫رو‬ ‫فاصله‬ ‫هست‬ ‫عملیات‬ ‫حال‬ ‫این‬ ‫با‬ ‫و‬ ‫باشه‬ ‫تهران‬ ‫در‬ ‫دیگری‬ ‫و‬ ‫مشهد‬ ‫در‬ ‫میتونه‬ ‫ها‬ ‫سرور‬ ‫از‬ ‫یکی‬ ‫مثال‬ ‫برای‬ . ‫نیست‬ ‫جغرافیایی‬ ‫نقطه‬ ‫یک‬ ‫به‬ ‫محدود‬ ‫لیه‬ ‫در‬ ‫همچنین‬ ‫و‬ ‫بده‬ ‫انجام‬ ‫رو‬ ‫لودبالنسینگ‬ 4 ‫و‬ 7 . ‫میکنه‬ ‫کار‬ ‫های‬ ‫الگورتیم‬ ‫انواع‬ Load Balancing • 1 . ‫متد‬ Least Connection . ‫میده‬ ‫انجام‬ ‫رو‬ ‫لودبالنسینگ‬ ‫فعال‬ ‫های‬ ‫کانکشن‬ ‫کمترین‬ ‫براساس‬ • 2 . ‫کاری‬ ‫مکانیزم‬ Round Robin .. ‫و‬ ‫دوم‬ ‫سرور‬ ‫دوم‬ ‫درخواست‬ ، ‫اول‬ ‫سرور‬ ‫اول‬ ‫درخواست‬ : ‫مثل‬ . ‫هست‬ ‫صف‬ ‫یک‬ ‫مثل‬ • 3 . ‫متد‬ Least Response Time . ‫پاسخگویی‬ ‫زمان‬ ‫بودن‬ ‫کم‬ ‫و‬ ‫سرور‬ ‫منابع‬ ‫میزان‬ ‫براساس‬ • 4 . ‫روش‬ Least Bandwith ‫سرور‬ ‫باند‬ ‫پهنای‬ ‫بیشترین‬ ‫براساس‬ LB . ‫میده‬ ‫انجام‬ ‫رو‬ • 5 . ‫روش‬ Least Packets . ‫میده‬ ‫انجام‬ ‫پکت‬ ‫میزان‬ ‫کمترین‬ ‫براساس‬ ‫رو‬ ‫بررسی‬ • 6 . ‫متد‬ Custom . ‫کرد‬ ‫استفاده‬ ‫هم‬ ‫با‬ ‫رو‬ ‫بال‬ ‫های‬ ‫روش‬ ‫از‬ ‫چندتا‬ ‫میشه‬ ‫و‬ ‫هست‬ ‫سفارشی‬ ‫صورت‬ ‫به‬ ‫همان‬ ‫یا‬ ‫بار‬ ‫تقسیم‬ Load Balancing ‫میشود‬ ‫انجام‬ ‫چگونه‬ : ‫یک‬ ‫که‬ ‫زمانی‬ Application Server ‫میشود‬ ‫دسترس‬ ‫قابل‬ ‫غیر‬ Load balancer ‫به‬ ‫مربوط‬ ‫های‬ ‫درخواست‬ ‫تمامی‬ Application ‫یکی‬ ‫به‬ ‫را‬
  • 9. ‫سیستم‬ ‫یک‬ ‫از‬ ‫افزاری‬ ‫نرم‬ ‫های‬ ‫درخواست‬ ‫پیشرفته‬ ‫تحویل‬ ‫جهت‬ .‫میدهد‬ ‫ارجاع‬ ‫فعال‬ ‫های‬ ‫سرور‬ ‫از‬ ‫دیگر‬ Application Delivery Controller ‫اختصار‬ ‫به‬ ‫یا‬ ADC ‫و‬ ‫امنیت‬ ‫تا‬ ‫میشود‬ ‫استفاده‬ Performance ‫به‬ ‫درخواست‬ ‫ارجاع‬ ‫زمان‬ ‫در‬ Web .‫یابد‬ ‫افزایش‬ ADC ‫یک‬ ‫فقط‬ Load Balancer ،‫شبکه‬ ‫تحویل‬ ‫جهت‬ ‫پلتفرم‬ ‫یک‬ ‫بلکه‬ ‫نیست‬ Application .‫میباشد‬ ‫بال‬ ‫امنیت‬ ‫و‬ ‫سرعت‬ ‫با‬ ‫مبایل‬ ‫های‬ ‫سرویس‬ ، ‫های‬ ‫الگوریتم‬ ‫و‬ ‫متدها‬ Load Balancing • The Least Connection Method ‫که‬ ‫زمانی‬ : Virtual Server ‫متد‬ ‫از‬ ‫تا‬ ‫میشود‬ ‫کانفیگ‬ ‫طوری‬ Least Connection ‫استفاده‬ .‫میشود‬ ‫انتخاب‬ ‫درخواست‬ ‫به‬ ‫پاسخ‬ ‫جهت‬ ‫دارد‬ ‫را‬ ‫کانکشن‬ ‫تعداد‬ ‫کمترین‬ ‫که‬ ‫سرویسی‬ ‫کند‬ • The Round Robin Method ‫بین‬ ‫ها‬ ‫درخواست‬ ‫گردشی‬ ‫بصورت‬ ‫الگوریتم‬ ‫این‬ ‫در‬ : Server ‫یا‬ service ‫این‬ ‫به‬ .‫میشود‬ ‫تقسیم‬ ‫ها‬ ‫که‬ ‫صورت‬ Server ‫یا‬ ‫ها‬ Service ‫متد‬ ‫این‬ ‫و‬ ‫میشود‬ ‫ارسال‬ ‫لیست‬ ‫دهنده‬ ‫سرویس‬ ‫اول‬ ‫به‬ ‫درخواست‬ ‫و‬ ‫شده‬ ‫لیست‬ ‫یک‬ ‫بصورت‬ ‫ها‬ .‫میابد‬ ‫ادامه‬ ‫گردشی‬ ‫بصورت‬ • The Least Response Time Method ‫کمترین‬ ‫و‬ ‫کانکشن‬ ‫تعداد‬ ‫کمترین‬ ‫که‬ ‫ای‬ ‫دهنده‬ ‫سرویس‬ ‫به‬ ‫درخواست‬ ‫روش‬ ‫این‬ ‫در‬ : .‫میشود‬ ‫ارسال‬ ‫دارد‬ ‫را‬ ‫پاسخدهی‬ ‫زمانی‬ ‫میانگین‬ • The Least Bandwidth Method ‫دهندگان‬ ‫سرویس‬ ‫برای‬ ‫متد‬ ‫این‬ : File Server ‫میزان‬ ‫کمترین‬ ‫که‬ ‫سروری‬ ‫و‬ ‫بوده‬ ‫مناسب‬ .‫میشود‬ ‫انتخاب‬ ‫درخواست‬ ‫پردازش‬ ‫جهت‬ ‫دارد‬ ‫را‬ ‫شبکه‬ ‫ترافیک‬ ‫مصرف‬ • The Least Packets Method ‫میزان‬ ‫کمترین‬ ‫ای‬ ‫دهنده‬ ‫سرویس‬ ‫متد‬ ‫این‬ ‫در‬ : packet ‫انتخاب‬ ‫میکند‬ ‫دریافت‬ ‫مشخص‬ ‫بازه‬ ‫در‬ ‫را‬ .‫میشود‬ • The Custom Load Method ‫جهت‬ ‫متد‬ ‫این‬ ‫که‬ ‫زمانی‬ : Load BAlancing ‫برای‬ ‫را‬ ‫درخواستی‬ ‫هیچ‬ ‫که‬ ‫سرویسی‬ ‫شود‬ ‫انتخاب‬ ‫پردازش‬ ‫حال‬ ‫در‬ ‫ها‬ ‫سرور‬ ‫همه‬ ‫اگر‬ ،‫میشود‬ ‫انتخاب‬ ‫ندارد‬ ‫پردازش‬ Transaction ‫داراست‬ ‫را‬ ‫لود‬ ‫میزان‬ ‫کمترین‬ ‫که‬ ‫سروری‬ ‫بودند‬ .‫میشود‬ ‫انتخاب‬ ‫جدید‬ ‫درخواست‬ ‫پردازش‬ ‫جهت‬ ‫از‬ ‫استفاده‬ ‫دلیل‬ Load Balancing ‫؟‬ ‫چیست‬ ! ‫های‬ ‫سیستم‬ ‫در‬ .‫شد‬ ‫خواهد‬ ‫دهی‬ ‫سرویس‬ ‫در‬ ‫امنیت‬ ‫افزایش‬ ‫و‬ ‫کیفیت‬ ،‫پایداری‬ ‫باعث‬ ‫ساختار‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫صورت‬ ‫هر‬ ‫در‬ Critical
  • 10. Mission ‫که‬ ‫هایی‬ ‫سیستم‬ ‫و‬ High Availability .‫میباشد‬ ‫ضروری‬ ‫بار‬ ‫تقسیم‬ ‫از‬ ‫استفاده‬ ‫است‬ ‫مهم‬ ‫ان‬ ‫در‬ Octavia ‫همان‬ ‫یا‬ ‫بار‬ ‫کننده‬‫توزیع‬ ‫ارائه‬ ‫جهت‬ ‫پروژه‬ ‫این‬ LoadBalancer ‫انجام‬ ‫و‬ Scaling ‫ابر‬ ‫محیط‬ ‫در‬ Openstack .‫است‬ ‫یافته‬ ‫توسعه‬ ‫و‬ ‫شده‬ ‫معرفی‬ ‫از‬ ‫پروژه‬ ‫این‬ LBaaS ‫توسط‬ ‫که‬ Neutrun ‫سازی‬‫پیاده‬ ‫مرجع‬ ‫گفت‬ ‫توان‬‫می‬ ‫و‬ ‫بوده‬ ‫مجزا‬ ،‫شود‬‫می‬ ‫ارائه‬ LBaaS v2 ‫توزیع‬ ‫کار‬ ‫تواند‬‫می‬ ‫و‬ ‫است‬ ‫بین‬ ‫را‬ ‫بار‬ instance ‫سرورهای‬ ،‫ها‬ Bare Metal ‫یک‬ ‫مانند‬ ‫که‬ ‫فیزیکی‬ ‫)سرورهای‬ Nova Instance ‫به‬ Openstack ‫یا‬ ‫است‬ ‫شده‬ ‫معرفی‬ ironic ‫انجام‬ ‫و‬ ‫تقاضا‬ ‫اساس‬ ‫بر‬ ‫بار‬ ‫توزیع‬ ،‫کرد‬ ‫مطرح‬ ‫سرویس‬ ‫این‬ ‫برای‬ ‫توان‬‫می‬ ‫که‬ ‫ای‬‫برجسته‬ ‫ویژگی‬ ‫از‬ .‫دهد‬ ‫انجام‬ ‫کانتینرها‬ ‫و‬ ( Scaling ‫مانند‬ ‫اجزا‬ ‫دیگر‬ ‫با‬ ،‫خود‬ ‫وظیفه‬ ‫انجام‬ ‫جهت‬ ‫پروژه‬ ‫این‬ .‫است‬ ‫زمان‬‫هم‬ ‫صورت‬‫به‬ ‫و‬ ‫افقی‬ ‫صورت‬‫به‬ Nova، Neutron، Keystone، Glance .… ‫و‬ .‫است‬ ‫تعامل‬ ‫در‬ ‫معماری‬ ‫بررسی‬ ‫به‬ ‫ادامه‬ ‫در‬ octavia : ‫پرداخت‬ ‫خواهیم‬ Octavia ‫از‬ ‫ای‬ ‫مجموعه‬ ‫از‬ instance ) ‫آمفورا‬ ‫نام‬ ‫به‬ ‫محاسباتی‬ ‫گره‬ ‫یک‬ ‫در‬ ‫ها‬ amphorae ‫یک‬ ‫طریق‬ ‫از‬ ‫آمفورها‬ ‫با‬ ‫و‬ ‫کند‬ ‫می‬ ‫استفاده‬ ( ) ‫بار‬ ‫کننده‬ ‫متعادل‬ ‫مدیریت‬ ‫شبکه‬ lb-mgmt-net .‫کند‬ ‫می‬ ‫برقرار‬ ‫ارتباط‬ ( Octavia :‫است‬ ‫زیر‬ ‫های‬ ‫سرویس‬ ‫شامل‬ API Controller(octavia_api container) .‫کند‬‫می‬ ‫برقرار‬ ‫ارتباط‬ ‫کنترلر‬ ‫با‬ ‫آمفورا‬ ‫های‬‫نمونه‬ ‫حذف‬ ‫یا‬ ‫نظارت‬ ،‫استقرار‬ ‫و‬ ‫پیکربندی‬ ‫های‬‫روزرسانی‬‫به‬ ‫برای‬ Controller Worker(octavia_worker container)
  • 11. ‫شبکه‬ ‫طریق‬ ‫از‬ ‫را‬ ‫پیکربندی‬ ‫های‬‫روزرسانی‬‫به‬ ‫و‬ ‫پیکربندی‬ LB .‫کند‬‫می‬ ‫ارسال‬ ‫آمفورا‬ ‫به‬ Health Manager ‫خرد‬ ‫شکست‬ ‫رویدادهای‬ ،‫آمفورها‬ ‫غیرمنتظره‬ ‫خرابی‬ ‫صورت‬ ‫در‬ ‫و‬ ‫دارد‬ ‫نظر‬ ‫زیر‬ ‫را‬ ‫آمفورها‬ ‫تک‬ ‫تک‬ ‫سلمت‬ ‫ه‬ .‫کند‬ ‫می‬ ‫کنترل‬ ‫را‬ Housekeeping Manager .‫کند‬ ‫می‬ ‫مدیریت‬ ‫را‬ ‫آمفورا‬ ‫گواهی‬ ‫چرخش‬ ‫و‬ ‫کند‬ ‫می‬ ‫مدیریت‬ ‫را‬ ‫یدکی‬ ‫مخزن‬ ،‫کند‬ ‫می‬ ‫تمیز‬ ‫را‬ (‫شده‬ ‫)حذف‬ ‫قدیمی‬ ‫داده‬ ‫پایگاه‬ ‫سوابق‬ Loadbalancer : api object ‫آدرس‬ .‫دهد‬ ‫می‬ ‫نشان‬ ‫را‬ ‫بار‬ ‫کننده‬ ‫متعادل‬ ‫موجودیت‬ ‫که‬ ‫بالیی‬ VIP .‫شود‬ ‫می‬ ‫داده‬ ‫اختصاص‬ ‫کننده‬ ‫متعادل‬ ‫بار‬ ‫ایجاد‬ ‫هنگام‬ ‫ایجاد‬ ‫هنگام‬ loadbalancer ‫نمونه‬ ‫یک‬ ، Amphora .‫شود‬ ‫می‬ ‫اندازی‬ ‫راه‬ ‫محاسباتی‬ ‫گره‬ ‫روی‬ Amphora : ‫پارامترهای‬ ‫با‬ ‫و‬ ‫شوند‬‫می‬ ‫اجرا‬ ‫محاسباتی‬ ‫های‬‫گره‬ ‫روی‬ ‫که‬ ‫هستند‬ ‫هایی‬‫نمونه‬ ‫معمول‬ ‫آمفوراها‬ .‫دهد‬ ‫می‬ ‫انجام‬ ‫را‬ ‫بار‬ ‫تعادل‬ ‫که‬ ‫ای‬ ‫نمونه‬ ‫های‬‫سیاست‬ ،‫سلمت‬ ‫مانیتور‬ ،‫استخر‬ ،‫شنونده‬ ‫به‬ ‫توجه‬ ‫با‬ ‫بار‬ ‫کننده‬‫متعادل‬ L7 ).‫شوند‬‫می‬ ‫پیکربندی‬ ‫اعضا‬ ‫پیکربندی‬ ‫و‬ listener, pool, health monitor, L7 policies, and members configuration . (
  • 12. Listener : ‫یک‬ ‫و‬ .‫بار‬ ‫کننده‬ ‫متعادل‬ ‫سرویس‬ ‫یک‬ listner ‫چندین‬ ‫به‬ ‫است‬ ‫ممکن‬ pool ‫لیه‬ ‫قوانین‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬ ‫کند‬ ‫مراجعه‬ 7 ‫جابجا‬ ‫استخرها‬ ‫بین‬ .‫شود‬ Pool : ‫یک‬ .‫کنند‬ ‫می‬ ‫رسیدگی‬ (‫)آمفورا‬ ‫کننده‬ ‫متعادل‬ ‫بار‬ ‫از‬ ‫مشتری‬ ‫های‬ ‫درخواست‬ ‫به‬ ‫که‬ ‫اعضا‬ ‫از‬ ‫گروهی‬ pool ‫یک‬ ‫با‬ ‫تنها‬ listner .‫است‬ ‫مرتبط‬ Member : compute instance ‫یک‬ ‫در‬ (‫)آمفورا‬ ‫کننده‬ ‫متعادل‬ ‫بار‬ ‫پشت‬ ‫ترافیک‬ ‫به‬ ‫که‬ ‫هایی‬ pool .‫دهند‬ ‫می‬ ‫خدمات‬ ‫ترافیک‬ ‫جریان‬ ‫زیر‬ ‫نمودار‬ HTTPS :‫دهد‬ ‫می‬ ‫نشان‬ ‫استخر‬ ‫عضو‬ ‫یک‬ ‫به‬ ‫را‬ ‫سرویس‬ octavia : ‫دارد‬ ‫نیاز‬ ‫هایی‬ ‫کامپونت‬ ‫چه‬ ‫به‬ • Compute (nova) • Networking (enable allowed_address_pairs)
  • 13. • Image (glance) • Identity (keystone) • RabbitMQ • MySQL ‫کجا‬ ‫را‬ ‫کننده‬ ‫متعادل‬ ‫بار‬ ‫واقعی‬ ‫عملکرد‬ ‫که‬ ‫است‬ ‫این‬ ‫بگیرید‬ ‫باید‬ ‫که‬ ‫کلیدی‬ ‫تصمیمات‬ ‫از‬ ‫یکی‬ ،‫مجازی‬ ‫بار‬ ‫کننده‬ ‫متعادل‬ ‫یک‬ ‫طراحی‬ ‫هنگام‬ ‫مانند‬ ‫بار‬ ‫کننده‬ ‫متعادل‬ ‫افزار‬ ‫نرم‬ ‫که‬ ‫است‬ ‫این‬ ‫واضح‬ ‫های‬ ‫گزینه‬ ‫از‬ ‫یکی‬ .‫دهید‬ ‫قرار‬ HAProxy ‫یا‬ NGINX ‫های‬ ‫گره‬ ‫از‬ ‫یکی‬ ‫روی‬ ‫بر‬ ‫را‬ ‫آشکار‬ ‫عیب‬ ‫این‬ ‫دارای‬ ‫رویکرد‬ ‫این‬ ،‫حال‬ ‫این‬ ‫با‬ .‫کنید‬ ‫هدایت‬ ‫ها‬ ‫گره‬ ‫آن‬ ‫طریق‬ ‫از‬ ‫را‬ ‫ترافیک‬ ‫تمام‬ ‫و‬ ‫کنید‬ ‫ایجاد‬ ‫شبکه‬ ‫گره‬ ‫یا‬ ‫کننده‬ ‫کنترل‬ ‫اندازی‬‫راه‬ ‫یک‬ ‫در‬ ‫را‬ ‫خود‬ ‫کننده‬‫کنترل‬ ‫های‬‫گره‬ ،‫البته‬ ،‫اینکه‬ ‫)مگر‬ ‫کند‬‫می‬ ‫معرفی‬ ‫را‬ ‫شکست‬ ‫نقطه‬ ‫یک‬ ‫که‬ ‫است‬ HA ،‫بدتر‬ ‫حتی‬ ،‫و‬ (‫کنید‬ ‫اجرا‬ ‫بار‬ ‫های‬ ‫کننده‬ ‫متعادل‬ ‫تعداد‬ ‫وقتی‬ ‫که‬ ‫است‬ ‫معنی‬ ‫این‬ ‫به‬ ‫که‬ ،‫ها‬ ‫گره‬ ‫از‬ ‫کمی‬ ‫تعداد‬ .‫کند‬‫می‬ ‫وارد‬ ‫شبکه‬ ‫های‬‫رابط‬ ‫روی‬ ‫بر‬ ‫را‬ ‫زیادی‬ ‫بار‬ .‫شود‬ ‫نمی‬ ‫پذیر‬ ‫مقیاس‬ ‫خوبی‬ ‫به‬ ‫حل‬ ‫راه‬ ‫این‬ ،‫یابد‬ ‫می‬ ‫افزایش‬ ‫پایانی‬ ‫نقاط‬ ‫یا‬ ‫مجازی‬ Octavia ‫های‬‫نمونه‬ ‫که‬ ،‫مجازی‬ ‫های‬‫ماشین‬ ‫توسط‬ ‫واقعی‬ ‫بار‬ ‫های‬‫کننده‬‫متعادل‬ .‫کند‬ ‫می‬ ‫انتخاب‬ ‫را‬ ‫متفاوتی‬ ‫رویکرد‬ OpenStack ‫معمولی‬ ‫یک‬ ‫از‬ ‫اما‬ ،‫شوند‬‫می‬ ‫شناسایی‬ ،‫شوند‬‫می‬ ‫اجرا‬ ‫محاسباتی‬ ‫های‬‫گره‬ ‫روی‬ ‫که‬ ‫هستند‬ image ‫افزار‬‫نرم‬ ‫بار‬ ‫کننده‬‫متعادل‬ ‫یک‬ ‫حاوی‬ ‫اختصاصی‬ HAProxy ‫نمونه‬ ‫پیکربندی‬ ‫کنترل‬ ‫برای‬ ‫که‬ ‫کنند‬‫می‬ ‫استفاده‬ ‫عاملی‬ ‫و‬ HAProxy ‫آمفورا‬ ‫که‬ ‫ها‬‫نمونه‬ ‫این‬ ،‫بنابراین‬ .‫شود‬‫می‬ ‫استفاده‬ – ‫بند‬‫زمان‬ ‫توسط‬ ‫شوند‬‫می‬ ‫نامیده‬ – Nova ‫های‬‫نمونه‬ ‫سایر‬ ‫مانند‬ Nova ‫توانند‬‫می‬ ‫و‬ ‫شوند‬‫می‬ ‫مقیاس‬ ‫خوبی‬ ‫به‬ ‫بنابراین‬ ‫و‬ ‫شوند‬‫می‬ ‫ریزی‬‫برنامه‬ ،‫آمفورها‬ ‫کنترل‬ ‫برای‬ .‫کنند‬ ‫استفاده‬ ‫موجود‬ ‫محاسباتی‬ ‫های‬‫گره‬ ‫تمام‬ ‫از‬ octavia ‫از‬ ‫متشکل‬ ‫که‬ ‫کند‬ ‫می‬ ‫استفاده‬ ‫کنترلی‬ ‫مکانیزم‬ ‫یک‬ ‫از‬ w octavia worker ،‫کند‬ ‫می‬ ‫اجرا‬ ‫را‬ ‫ها‬ ‫کننده‬ ‫متعادل‬ ‫بار‬ ‫حذف‬ ‫و‬ ‫رسانی‬ ‫روز‬ ‫به‬ ،‫ایجاد‬ ‫منطق‬ ‫که‬ ‫است‬ health manager ‫را‬ ‫آمفورها‬ ‫که‬ .‫کند‬ ‫مدیریت‬ ‫را‬ ‫استخر‬ ‫تواند‬ ‫می‬ ‫و‬ ‫کند‬ ‫می‬ ‫نظارت‬ ‫سرور‬ API ‫های‬ ‫تماس‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫کنترل‬ ‫صفحه‬ ‫اجزای‬ ‫و‬ RPC ‫یعنی‬ ، RabbitMQ ‫آن‬ ‫قبل‬ ‫که‬ ‫همانطور‬ ،‫کنند‬ ‫می‬ ‫برقرار‬ ‫ارتباط‬ ‫یکدیگر‬ ‫با‬ ، ‫های‬ ‫سرویس‬ ‫سایر‬ ‫برای‬ ‫را‬ OpenStack ‫دو‬ ‫ارتباط‬ ‫این‬ .‫کنند‬ ‫برقرار‬ ‫ارتباط‬ ‫آمفورا‬ ‫با‬ ‫باید‬ ‫نیز‬ ‫کنترل‬ ‫صفحه‬ ‫اجزای‬ ،‫حال‬ ‫این‬ ‫با‬ .‫ایم‬ ‫دیده‬ .‫است‬ ‫جهته‬ ،‫شود‬ ‫می‬ ‫اجرا‬ ‫آمفورا‬ ‫هر‬ ‫روی‬ ‫که‬ ‫عاملی‬ REST API . ‫هست‬ ‫بیس‬ ،‫برعکس‬ health manager ‫آمفورها‬ ‫از‬ ‫باید‬ ‫کنترل‬ ‫هواپیمای‬ ‫بنابراین‬ ‫و‬ ‫دهد‬ ‫می‬ ‫گوش‬ ‫آمفورا‬ ‫توسط‬ ‫شده‬ ‫صادر‬ ‫سلمت‬ ‫وضعیت‬ ‫های‬ ‫پیام‬ ‫به‬ .‫باشد‬ ‫دسترسی‬ ‫قابل‬ ‫نیز‬ ‫دارد‬ ‫وجود‬ ‫بار‬ ‫تعادل‬ ‫مدیریت‬ ‫شبکه‬ ‫نام‬ ‫به‬ (‫نوترون‬ ‫)یعنی‬ ‫مجازی‬ ‫شبکه‬ ‫یک‬ ‫که‬ ‫کند‬‫می‬ ‫فرض‬ ‫اکتاویا‬ ،‫طرفه‬ ‫دو‬ ‫ارتباط‬ ‫این‬ ‫کردن‬ ‫فعال‬ ‫برای‬ ‫فرض‬ ‫اکتاویا‬ ،‫این‬ ‫بر‬ ‫علوه‬ .‫کند‬ ‫می‬ ‫متصل‬ ‫شبکه‬ ‫این‬ ‫به‬ ‫را‬ ‫آمفورها‬ ‫تمام‬ ‫اکتاویا‬ ‫سپس‬ .‫شود‬‫می‬ ‫مشخص‬ ‫نصب‬ ‫هنگام‬ ‫در‬ ‫مدیر‬ ‫توسط‬ ‫که‬ ‫به‬ ‫توانند‬‫می‬ ‫کنترل‬ ‫صفحه‬ ‫اجزای‬ ،‫شبکه‬ ‫این‬ ‫طریق‬ ‫از‬ ‫که‬ ‫کند‬‫می‬ API REST . ‫شود‬‫می‬ ‫اجرا‬ ‫آمفورا‬ ‫هر‬ ‫روی‬ ‫که‬ ‫عاملی‬ ‫توسط‬ ‫که‬
  • 14. ‫بار‬ ‫تعادل‬ ‫مدیریت‬ ‫شبکه‬ ‫اتصال‬ ‫و‬ ‫ایجاد‬ ‫ما‬ ‫آمفورهای‬ ‫که‬ ‫باشد‬ ‫مجازی‬ ‫شبکه‬ ‫یک‬ ‫باید‬ ‫این‬ ‫که‬ ‫بیاورید‬ ‫یاد‬ ‫به‬ .‫شد‬ ‫ذکر‬ ‫قبل‬ ‫که‬ ‫است‬ ‫بار‬ ،‫کننده‬ ‫متعادل‬ ‫شبکه‬ ‫اندازی‬ ‫راه‬ ‫چالش‬ ‫اولین‬ ‫به‬ ‫آمفورا‬ ‫از‬ ‫ترافیک‬ ‫تا‬ ‫دهد‬ ‫می‬ ‫اجازه‬ ‫و‬ ‫دهد‬ ‫می‬ ‫کنترل‬ ‫صفحه‬ ‫از‬ ‫را‬ ‫آمفورها‬ ‫به‬ ‫دسترسی‬ ‫اجازه‬ ‫که‬ ‫شوند‬ ‫متصل‬ ‫آن‬ ‫به‬ health manager .‫دارد‬ ‫وجود‬ ‫گزینه‬ ‫چندین‬ ‫شبکه‬ ‫این‬ ‫ساخت‬ ‫برای‬ .‫برسد‬ ‫تگ‬ ‫یک‬ ‫یا‬ ‫فیزیکی‬ ‫رابط‬ ‫یک‬ ،‫بنابراین‬ .‫کنیم‬ ‫ایجاد‬ ‫منظور‬ ‫این‬ ‫برای‬ ‫اختصاصی‬ ‫دهنده‬ ‫ارائه‬ ‫شبکه‬ ‫یک‬ ‫توانیم‬‫می‬ ‫ما‬ ،‫ابتدا‬ VLAN ‫گره‬ ‫هر‬ ‫در‬ ‫کننده‬ ‫متعادل‬ ‫مدیریت‬ ‫شبکه‬ ‫عنوان‬ ‫به‬ ‫که‬ ‫کنیم‬ ‫می‬ ‫اندازی‬ ‫راه‬ ‫نوترون‬ ‫در‬ ‫را‬ ‫مربوطه‬ ‫دهنده‬ ‫ارائه‬ ‫شبکه‬ ‫یک‬ ‫و‬ ‫کنیم‬ ‫می‬ ‫رزرو‬ ‫شبکه‬ ‫آن‬ ‫برای‬ .‫دهد‬ ‫اجازه‬ ‫شما‬ ‫فیزیکی‬ ‫شبکه‬ ‫زیرساخت‬ ‫که‬ ‫کند‬ ‫می‬ ‫کار‬ ‫صورتی‬ ‫در‬ ‫تنها‬ ‫این‬ ‫که‬ ‫است‬ ‫بدیهی‬ .‫کنیم‬ ‫می‬ ‫استفاده‬ ‫بار‬ ‫پل‬ ‫یک‬ ‫توانیم‬‫می‬ ،‫مثال‬ ‫عنوان‬ ‫به‬ ‫است‬ " ‫"مجازی‬ ‫فیزیکی‬ ‫شبکه‬ ‫یک‬ ‫از‬ ‫استفاده‬ ‫دیگر‬ ‫گزینه‬ ،‫نیست‬ ‫اینطور‬ ‫اگر‬ OVS ‫نوترون‬ ‫از‬ ‫خارج‬ ‫که‬ ‫یک‬ ‫عنوان‬‫به‬ ‫را‬ ‫شبکه‬ ‫این‬ ‫و‬ ‫کنیم‬ ‫متصل‬ ‫هم‬ ‫به‬ ‫همپوشانی‬ ‫شبکه‬ ‫یک‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬ ‫ها‬‫پل‬ ‫این‬ ،‫کنیم‬ ‫اندازی‬‫راه‬ ‫گره‬ ‫هر‬ ‫روی‬ ‫شود‬‫می‬ ‫مدیریت‬ ‫پل‬ ‫دلیل‬ ‫به‬ ‫اما‬ ،‫کند‬ ‫کار‬ ‫ها‬ ‫محیط‬ ‫اکثر‬ ‫در‬ ‫باید‬ ‫این‬ .‫دهیم‬‫می‬ ‫قرار‬ ‫دهنده‬‫ارائه‬ ‫شبکه‬ ‫یک‬ ‫آن‬ ‫روی‬ ‫بر‬ ‫که‬ ‫کنیم‬ ‫ارائه‬ ‫نوترون‬ ‫به‬ ‫فیزیکی‬ ‫شبکه‬ .‫کند‬ ‫می‬ ‫ایجاد‬ ‫اضافی‬ ‫سربار‬ ‫یک‬ ،‫گره‬ ‫هر‬ ‫روی‬ ‫نیاز‬ ‫مورد‬ ‫اضافی‬ ‫های‬ ‫شبکه‬ ‫یک‬ ‫از‬ ‫سادگی‬ ‫به‬ ‫توانیم‬‫می‬ ‫ما‬ ‫نهایت‬ ‫در‬ VXLAN ‫دستگاه‬ ‫یک‬ ‫افزودن‬ ‫با‬ ‫و‬ ‫کنیم‬ ‫استفاده‬ ‫بار‬ ‫کننده‬ ‫متعادل‬ ‫مدیریت‬ ‫شبکه‬ ‫عنوان‬ ‫به‬ .‫شویم‬ ‫متصل‬ ‫آن‬ ‫به‬ ‫شبکه‬ ‫گره‬ ‫از‬ ،‫نوترون‬ ‫ادغام‬ ‫پل‬ ‫به‬ ‫اضافی‬ ‫شبکه‬
  • 15. ‫شبکه‬ ‫یک‬ ‫اگر‬ ‫که‬ ‫بیاورید‬ ‫یاد‬ ‫به‬ Neutron VXLAN ‫برچسب‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫خود‬ ‫شبکه‬ ‫این‬ ،‫کنیم‬ ‫اندازی‬ ‫راه‬ VLAN ‫پل‬ ‫روی‬ ‫محلی‬ ‫عامل‬ ‫که‬ ‫شبکه‬ ‫گره‬ ‫برای‬ ‫خاص‬ ‫طور‬ ‫به‬ ‫این‬ .‫دهد‬ ‫می‬ ‫نشان‬ ‫است‬ ‫متصل‬ ‫شبکه‬ ‫این‬ ‫به‬ ‫پورت‬ ‫یک‬ ‫که‬ ‫ای‬ ‫گره‬ ‫هر‬ ‫ادغام‬ DHCP ‫شبکه‬ ‫برای‬ VXLAN ‫عامل‬ ‫یک‬ ‫نوترون‬ ،‫کنیم‬ ‫می‬ ‫ایجاد‬ ‫را‬ ‫شبکه‬ ‫که‬ ‫هنگامی‬ ،‫بنابراین‬ .‫است‬ ‫صادق‬ ،‫شود‬‫می‬ ‫اجرا‬ ‫آن‬ ‫روی‬ ‫ما‬ DHCP ‫شبکه‬ ‫گره‬ ‫روی‬ ‫را‬ ‫تگ‬ ‫یک‬ ‫و‬ . ‫میکند‬ ‫ایجاد‬ VLAN ‫سازی‬ ‫یکپارچه‬ ‫پل‬ ‫در‬ ‫شبکه‬ ‫این‬ ‫به‬ ‫متعلق‬ ‫ترافیک‬ ‫برای‬ ‫که‬ ‫را‬ ‫محلی‬ br-int .‫دهد‬ ‫می‬ ‫اختصاص‬ ‫دستگاه‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫)که‬ ‫ادغام‬ ‫پل‬ ‫به‬ ‫متصل‬ ‫اضافی‬ ‫داخلی‬ ‫پورت‬ ‫یک‬ ‫سادگی‬ ‫به‬ ‫توانیم‬ ‫می‬ ‫اکنون‬ ،‫شبکه‬ ‫گره‬ ‫از‬ ‫شبکه‬ ‫این‬ ‫به‬ ‫اتصال‬ ‫برای‬ ‫تگ‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬ ‫شده‬ ‫پیکربندی‬ ‫دسترسی‬ ‫پورت‬ ‫و‬ (‫بود‬ ‫خواهد‬ ‫مشاهده‬ ‫قابل‬ ‫مجازی‬ ‫شبکه‬ VLAN ‫آدرس‬ ‫یک‬ ‫سپس‬ .‫بیاوریم‬ IP ‫به‬ ‫آدرس‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫و‬ ‫دهیم‬ ‫می‬ ‫اختصاص‬ ‫دستگاه‬ ‫این‬ IP ‫شبکه‬ ‫در‬ ‫دیگری‬ ‫پورت‬ ‫هر‬ ‫به‬ ‫شبکه‬ ‫گره‬ ‫از‬ ‫توانیم‬ ‫می‬ ‫اکنون‬ ،‫دروازه‬ ‫عنوان‬ ‫به‬ Neutron VXLAN ‫کنترل‬ ‫صفحه‬ ‫اجزای‬ ‫که‬ ‫همانطور‬ .‫شویم‬ ‫متصل‬ Octavia ‫سرور‬ ‫با‬ API Octavia ‫طریق‬ ‫از‬ RPC ،‫کنند‬ ‫می‬ ‫برقرار‬ ‫ارتباط‬ .‫کنند‬ ‫استفاده‬ ‫آمفورا‬ ‫با‬ ‫ارتباط‬ ‫برای‬ ‫رابط‬ ‫این‬ ‫از‬ ‫بتوانند‬ ‫تا‬ ‫دهیم‬ ‫قرار‬ ‫شبکه‬ ‫گره‬ ‫در‬ ‫را‬ ‫آنها‬ ‫توانیم‬ ‫می‬ ‫این‬ ‫از‬ ‫میتوانید‬ : ‫نکته‬ ansible . ‫کنید‬ ‫استفاده‬ ‫شبکه‬ ‫ساخت‬ ‫برای‬ ‫اتوماتیک‬ ‫بصورت‬ ‫هم‬ ‫فایل‬ ‫نوترون‬ ‫شبکه‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫مجازی‬ ‫شبکه‬ ‫یک‬ VXLAN ‫کنید‬ ‫اضافه‬ ‫زیرشبکه‬ ‫یک‬ ‫و‬ ‫کنید‬ ‫ایجاد‬ ‫معمولی‬
  • 16. ‫پورت‬ ‫به‬ ‫ترافیک‬ ‫تا‬ ‫کنید‬ ‫ایجاد‬ ‫امنیتی‬ ‫های‬‫گروه‬ TCP ‫عامل‬ ‫که‬ amphora ‫آن‬ ‫روی‬ API REST ‫فرض‬‫پیش‬ ‫طور‬‫)به‬ ‫دهد‬‫می‬ ‫نشان‬ ‫را‬ ‫خود‬ ‫پورت‬ 9443 ‫به‬ ‫دسترسی‬ ‫اجازه‬ ‫و‬ ( health manager ) ‫ب‬ UDP ‫پورت‬ ، 5555 ‫ترافیک‬ ‫به‬ ‫که‬ ‫است‬ ‫خوب‬ ‫همچنین‬ .‫کنید‬ ‫ایجاد‬ ‫را‬ ( SSH ‫و‬ ICMP .‫کنند‬ ‫تحلیل‬ ‫و‬ ‫تجزیه‬ ‫را‬ ‫مسائل‬ ‫آمفورا‬ ‫به‬ ‫دسترسی‬ ‫و‬ ‫کردن‬ ‫پینگ‬ ‫با‬ ‫دهید‬ ‫اجازه‬ ‫شبکه‬ ‫در‬ ‫پورت‬ ‫یک‬ ‫اکنون‬ load balancer ‫آدرس‬ ‫یک‬ ‫این‬ .‫کنیم‬ ‫می‬ ‫ایجاد‬ IP ‫استفاده‬ ‫خود‬ ‫پورت‬ ‫برای‬ ‫توانیم‬ ‫می‬ ‫که‬ ‫کند‬ ‫می‬ ‫ذخیره‬ ‫را‬ ‫آدرس‬ ‫تداخل‬ ‫از‬ ‫تا‬ ‫کنیم‬ IP ‫کنیم‬ ‫جلوگیری‬ ‫نوترون‬ ‫با‬ ‫عامل‬ ‫نام‬ ‫فضای‬ ‫تا‬ ‫مانیم‬ ‫می‬ ‫منتظر‬ ‫سپس‬ DHCP ‫تگ‬ ‫و‬ ‫کرده‬ ‫دریافت‬ ‫را‬ ‫مربوطه‬ ‫نوترون‬ ‫پورت‬ ‫شناسه‬ ،‫شود‬ ‫ایجاد‬ VLAN ‫این‬ ‫برای‬ ‫را‬ ‫از‬ ‫پورت‬ OVS DB ‫این‬ ‫از‬ ‫)میتوانید‬ ‫خوانیم‬ ‫می‬ ‫اسکریپت‬ (‫کنید‬ ‫استفاده‬ ‫کار‬ ‫این‬ ‫برای‬ ‫هم‬ ‫شناسه‬ ‫این‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫اکنون‬ VLAN ‫دسترسی‬ ‫پورت‬ ‫یک‬ OVS ‫آدرس‬ ‫یک‬ ،‫کنید‬ ‫ایجاد‬ IP ‫اختصاص‬ ‫مربوطه‬ ‫مجازی‬ ‫شبکه‬ ‫دستگاه‬ ‫به‬ .‫بیاورید‬ ‫بال‬ ‫را‬ ‫دستگاه‬ ‫و‬ ‫دهید‬ ‫عامل‬ ‫که‬ ‫هنگامی‬ OVS . ‫باشد‬ ‫داشته‬ ‫وجود‬ ‫کمی‬ ‫مشکلی‬ ‫شاید‬ ‫پیکربندی‬ ‫این‬ ‫با‬ ،‫شود‬ ‫می‬ ‫مجدد‬ ‫اندازی‬ ‫راه‬ ‫شناسه‬ ،‫مورد‬ ‫این‬ ‫در‬ ‫زیرا‬ VLAN ‫را‬ ‫پیکربندی‬ ‫تا‬ ‫کنیم‬ ‫ایجاد‬ ‫اسکریپت‬ ‫یک‬ ‫باید‬ ‫همچنین‬ ‫ما‬ ‫بنابراین‬ .‫کند‬ ‫تغییر‬ ‫تواند‬ ‫می‬ ‫محلی‬ ‫عامل‬ ‫که‬ ‫زمان‬ ‫هر‬ ‫و‬ ‫کنیم‬ ‫روزرسانی‬‫به‬ OVS ‫فایل‬ ‫یک‬ ‫طریق‬ ‫از‬ ‫را‬ ‫آن‬ ،‫شد‬ ‫اندازی‬‫راه‬ ‫دوباره‬ unit systemd .‫کنیم‬ ‫اجرا‬ ‫مورد‬ ‫در‬ image : ‫ها‬ ‫در‬ ‫باید‬ ،‫شد‬ ‫ساخته‬ ‫تصویر‬ ‫که‬ ‫هنگامی‬ Glance ‫پیکربندی‬ ‫به‬ ‫که‬ ‫شود‬ ‫تگ‬ ‫برچسبی‬ ‫با‬ ‫و‬ ‫شود‬ ‫آپلود‬ Octavia ‫تگ‬ ‫این‬ .‫شد‬ ‫خواهد‬ ‫اضافه‬ ‫نیز‬ ‫توسط‬ ‫بعدا‬ Octavia ‫استفاده‬ ‫برای‬ ‫را‬ ‫طعمی‬ ‫باید‬ ‫ما‬ ،‫این‬ ‫بر‬ ‫علوه‬ .‫شود‬ ‫ایجاد‬ ‫صحیح‬ ‫تصویر‬ ‫یابی‬ ‫مکان‬ ‫برای‬ ‫آمفورا‬ ‫یک‬ ‫که‬ ‫شود‬ ‫می‬ ‫استفاده‬ ‫حداقل‬ ‫به‬ ‫ما‬ ‫که‬ ‫باشید‬ ‫داشته‬ ‫توجه‬ .‫کنیم‬ ‫تنظیم‬ ‫آمفورا‬ ‫برای‬ 1 ‫و‬ ‫رم‬ ‫گیگابایت‬ 2 ‫آمفورا‬ ‫تصویر‬ ‫بتوانیم‬ ‫تا‬ ‫داریم‬ ‫نیاز‬ ‫دیسک‬ ‫فضای‬ ‫گیگابایت‬ . ‫باشید‬ ‫داشته‬ ‫را‬ ‫منابع‬ ‫این‬ ‫شوید‬ ‫مطمئن‬ ‫بنابراین‬ ،‫کنیم‬ ‫اجرا‬ ‫را‬ ‫پیکربندی‬ ‫و‬ ‫کلیدها‬ ،‫ها‬ ‫گواهی‬ ‫کنترل‬ ‫صفحه‬ ‫اجزای‬ ‫که‬ ‫دیدیم‬ ‫بال‬ ‫در‬ Octavia ‫یک‬ ‫از‬ REST API ‫برای‬ ‫شود‬‫می‬ ‫اجرا‬ ‫آمفورا‬ ‫هر‬ ‫روی‬ ‫که‬ ‫عاملی‬ ‫توسط‬ ‫که‬ ‫کنند‬‫می‬ ‫استفاده‬ ‫های‬‫نمونه‬ ‫پیکربندی‬ ‫در‬ ‫تغییراتی‬ ‫ایجاد‬ HAProxy ،‫منظور‬ ‫این‬ ‫برای‬ .‫شود‬ ‫ایمن‬ ‫باید‬ ‫اتصال‬ ‫این‬ ‫که‬ ‫است‬ ‫بدیهی‬ .‫کند‬‫می‬ ‫استفاده‬ Octavia ‫از‬ ‫های‬ ‫گواهینامه‬ TLS .‫کند‬ ‫می‬ ‫استفاده‬
  • 17. ‫گواهی‬ .‫شود‬ ‫می‬ ‫استفاده‬ ‫عامل‬ ‫به‬ ‫اتصال‬ ‫هنگام‬ ‫در‬ ‫هویت‬ ‫احراز‬ ‫برای‬ ‫کنترل‬ ‫صفحه‬ ‫توسط‬ ‫گواهی‬ ‫این‬ .‫دارد‬ ‫وجود‬ ‫مشتری‬ ‫گواهی‬ ،‫اول‬ ‫گواهی‬ ‫که‬ ‫آنجایی‬ ‫از‬ .‫شود‬ ‫ایجاد‬ ‫نصب‬ ‫حین‬ ‫در‬ ‫باید‬ ‫مربوطه‬ ‫کلید‬ ‫و‬ ‫مشتری‬ CA ‫هر‬ ‫در‬ ‫باید‬ ‫شود‬ ‫می‬ ‫استفاده‬ ‫مشتری‬ ‫گواهی‬ ‫امضای‬ ‫برای‬ ‫که‬ ‫برای‬ ‫باید‬ ‫گواهی‬ ‫این‬ ،(‫کند‬ ‫استفاده‬ ‫دریافتی‬ ‫های‬ ‫درخواست‬ ‫تأیید‬ ‫برای‬ ‫آن‬ ‫از‬ ‫بتواند‬ ‫نماینده‬ ‫که‬ ‫طوری‬ ‫)به‬ ‫باشد‬ ‫داشته‬ ‫وجود‬ ‫آمفورا‬ Octavia ‫و‬ ،‫باشد‬ ‫شده‬ ‫شناخته‬ ‫نیز‬ Octavia ‫کرد‬ ‫ایجاد‬ ‫آمفورا‬ .‫کند‬ ‫می‬ ‫توزیع‬ ‫جدید‬ ‫مورد‬ ‫هر‬ ‫در‬ ‫را‬ ‫آن‬ ‫یک‬ ‫توسط‬ ‫اجرا‬ ‫زمان‬ ‫در‬ ‫پویا‬ ‫صورت‬ ‫به‬ ‫و‬ ‫هستند‬ ‫فرد‬ ‫به‬ ‫منحصر‬ ‫عامل‬ ‫هر‬ ‫برای‬ ‫ها‬ ‫گواهینامه‬ ‫این‬ .‫دارد‬ ‫نیاز‬ ‫سرور‬ ‫گواهی‬ ‫به‬ ‫نماینده‬ ‫هر‬ ،‫ثانیا‬ ‫کنترل‬ ‫صفحه‬ ‫در‬ ‫که‬ ‫گواهی‬ ‫مولد‬ Octavia ‫گواهی‬ ‫یک‬ ‫باید‬ ‫فقط‬ ‫ما‬ ،‫نصب‬ ‫طول‬ ‫در‬ .‫شوند‬ ‫می‬ ‫ایجاد‬ ‫است‬ ‫شده‬ ‫تعبیه‬ CA ‫کلید‬ ‫یک‬ ‫و‬ ‫که‬ ‫کنیم‬ ‫ارائه‬ ‫مربوطه‬ ‫خصوصی‬ Octavia ‫کلید‬ ‫و‬ ‫ها‬ ‫گواهینامه‬ ‫خلصه‬ ‫طور‬ ‫به‬ ‫زیر‬ ‫نمودار‬ .‫کند‬‫می‬ ‫استفاده‬ ‫سرور‬ ‫های‬‫گواهی‬ ‫صدور‬ ‫برای‬ ‫آن‬ ‫از‬ .‫دهد‬ ‫می‬ ‫نشان‬ ‫را‬ ‫مربوطه‬
  • 18. : ‫نصب‬ ‫روش‬ ‫ساخت‬ user ‫سرویس‬ ‫برای‬ octavia : openstack user create --domain default --project service --password servicepassword octavia +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | default_project_id | | domain_id | default | | enabled | True | | id | | name | octavia | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+ ‫کاربر‬ ‫برای‬ ‫ادمین‬ ‫رول‬ ‫عنوان‬ ‫به‬ ‫کاربر‬ ‫کردن‬ ‫اضافه‬ octavia openstack role add --project service --user octavia admin ‫کاربر‬ ‫برای‬ ‫سرویس‬ ‫ساخت‬ octavia : openstack service create --name octavia --description "OpenStack LBaaS" load-balancer +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack LBaaS | | enabled | True | | id | | name | octavia | | type | load-balancer | +-------------+----------------------------------+
  • 19. ‫ساخت‬ endpoint : export octavia_api=<ip> openstack endpoint create --region RegionOne load-balancer public http://$octavia_api:9876 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | | | service_name | octavia | | service_type | load-balancer | | url | http://<ip>:9876 | +--------------+----------------------------------+ openstack endpoint create --region RegionOne load-balancer internal http://$octavia_api:9876 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | | | service_name | octavia | | service_type | load-balancer | | url | http://<ip>:9876 | +--------------+----------------------------------+
  • 20. openstack endpoint create --region RegionOne load-balancer admin http://$octavia_api:9876 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | | | service_name | octavia | | service_type | load-balancer | | url | http://<ip>:9876 | +--------------+----------------------------------+ ‫برای‬ ‫دیتابیس‬ ‫ایجاد‬ octavia : ‫یوزر‬ ‫ساخت‬ ‫و‬ MariaDB [(none)]> create database octavia; MariaDB [(none)]> grant all privileges on octavia.* to octavia@'localhost' identified by 'password'; MariaDB [(none)]> grant all privileges on octavia.* to octavia@'%' identified by 'password'; MariaDB [(none)]> flush privileges; ‫در‬ network node ‫سرویس‬ octavia : ‫میکنیم‬ ‫نصب‬ ‫را‬
  • 21. dnf -y install openstack-octavia-api openstack-octavia-health-manager openstack-octavia-housekeeping ‫توسط‬ ‫که‬ ‫گواهی‬ ‫ایجاد‬ LoadBalancer Instance ‫خدمات‬ ‫و‬ Octavia .‫شود‬ ‫می‬ ‫استفاده‬ mkdir -p /etc/octavia/certs/private mkdir ~/work cd ~/work git clone https://opendev.org/openstack/octavia.git cd octavia/bin ./create_dual_intermediate_CA.sh cp -p ./dual_ca/etc/octavia/certs/server_ca.cert.pem /etc/octavia/certs cp -p ./dual_ca/etc/octavia/certs/server_ca-chain.cert.pem /etc/octavia/certs cp -p ./dual_ca/etc/octavia/certs/server_ca.key.pem /etc/octavia/certs/private cp -p ./dual_ca/etc/octavia/certs/client_ca.cert.pem /etc/octavia/certs cp -p ./dual_ca/etc/octavia/certs/client.cert-and-key.pem /etc/octavia/certs/private chown -R octavia /etc/octavia/certs
  • 22. ‫کانفیق‬ octavia : mv /etc/octavia/octavia.conf /etc/octavia/octavia.conf.org vi /etc/octavia/octavia.conf # create new [DEFAULT] # RabbitMQ connection info transport_url = rabbit://openstack:password@<ip> [api_settings] # IP address this host listens bind_host = <ip> bind_port = 9876 auth_strategy = keystone api_base_uri = http://<ip>:9876 # MariaDB connection info [database] connection = mysql+pymysql://octavia:password@<ip>/octavia [health_manager] bind_ip = 0.0.0.0 bind_port = 5555 # Keystone auth info [keystone_authtoken] www_authenticate_uri = http://<ip>:5000 auth_url = http://<ip>:5000 memcached_servers = <ip>:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = octavia password = servicepassword # specify certificates created on [2] [certificates] ca_private_key = /etc/octavia/certs/private/server_ca.key.pem ca_certificate = /etc/octavia/certs/server_ca.cert.pem server_certs_key_passphrase = insecure-key-do-not-use-this-key ca_private_key_passphrase = not-secure-passphrase # specify certificates created on [2] [haproxy_amphora] server_ca = /etc/octavia/certs/server_ca-chain.cert.pem client_cert = /etc/octavia/certs/private/client.cert-and-key.pem
  • 23. # specify certificates created on [2] [controller_worker] client_ca = /etc/octavia/certs/client_ca.cert.pem [oslo_messaging] topic = octavia_prov # Keystone auth info [service_auth] auth_url = http://<ip>:5000 memcached_servers = <ip>:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = octavia password = servicepassword chmod 640 /etc/octavia/octavia.conf chgrp octavia /etc/octavia/octavia.conf su -s /bin/bash octavia -c "octavia-db-manage --config-file /etc/octavia/octavia.conf upgrade head" systemctl enable --now octavia-api octavia-health-manager octavia-housekeeping octavia-worker : ‫فایروال‬ ‫کانفیق‬ firewall-cmd --add-port=9876/tcp firewall-cmd --runtime-to-permanent ‫ایمیج‬ ‫یک‬ ‫ساخت‬ LoadBalancer ‫به‬ ‫کردن‬ ‫اضافه‬ ‫و‬ Glance :
  • 24. dnf -y install openstack-octavia-diskimage-create debootstrap python3-octaviaclient # create an instance image octavia-diskimage-create.sh -d focal # add to Glance openstack image create "Amphora" --tag "Amphora" --file amphora-x64-haproxy.qcow2 --disk-format qcow2 --container-format bare --private --project service # add [flavor] for Amphora instance openstack flavor create --id 100 --vcpus 1 --ram 1024 --disk 5 m1.octavia --private --project service # add a security group for Amphora instance openstack security group create lb-mgmt-sec-group --project service # allow required ports for security group openstack security group rule create --protocol icmp --ingress lb-mgmt-sec-group openstack security group rule create --protocol tcp --dst-port 80:80 lb-mgmt-sec-group openstack security group rule create --protocol tcp --dst-port 443:443 lb-mgmt-sec-group openstack security group rule create --protocol tcp --dst-port 9443:9443 lb-mgmt-sec-group
  • 25. ‫سرویس‬ Octavia : ‫کنید‬ ‫پیکربندی‬ ‫امنیتی‬ ‫گروه‬ ‫شناسه‬ ‫برای‬ ‫را‬ openstack image list : ‫نمونه‬ ‫برای‬ +--------------------------------------+-----------------+--------+ | ID | Name | Status | +--------------------------------------+-----------------+--------+ | dc71ffa4-4a41-4614-bdca-27cd5bc8218b | Amphora | active | | cfce605e-151b-43dd-b743-2c7988d69e96 | CentOS-Stream-8 | active | +--------------------------------------+-----------------+--------+ openstack flavor list --all : ‫نمونه‬ ‫برای‬ +-----+------------+------+------+-----------+-------+-----------+ | ID | Name | RAM | Disk | Ephemeral | VCPUs | Is Public | +-----+------------+------+------+-----------+-------+-----------+ | 0 | m1.small | 2048 | 10 | 0 | 1 | True | | 100 | m1.octavia | 1024 | 5 | 0 | 1 | False | +-----+------------+------+------+-----------+-------+-----------+ openstack network list : ‫نمونه‬ ‫برای‬ +--------------------------------------+---------+--------------------------------------+ | ID | Name | Subnets | +--------------------------------------+---------+--------------------------------------+ | 3adf0a70-6446-4095-916d-17d9f753bbe6 | private | 9724f8a3-4c59-4d7d-9838-82bc682a551c | | ac8911e7-afd7-4913-997e-2f0412f1271b | public | 61bf3654-bef1-4ddd-8d23-f2fd41166f4e | +--------------------------------------+---------+--------------------------------------+
  • 26. openstack security group list : ‫نمونه‬ ‫برای‬ +--------------------------------------+-------------------+------------------------ +----------------------------------+------+ | ID | Name | Description | Project | Tags | +--------------------------------------+-------------------+------------------------ +----------------------------------+------+ | 66feb966-fd16-4c49-99d3-d845fd247ea8 | lb-mgmt-sec-group | lb-mgmt-sec-group | 7e53ef14eb894f379ea1929f5defc949 | [] | | 888fd13d-5621-4ca9-96cf-3865021329dd | secgroup01 | secgroup01 | 2decda8bcd724687a1cf05064ab21fdf | [] | | e7b47f71-4cd6-4b91-b1eb-b228856fb842 | default | Default security group | 2decda8bcd724687a1cf05064ab21fdf | [] | +--------------------------------------+-------------------+------------------------ +----------------------------------+------+ vi /etc/octavia/octavia.conf # add into [controller_worker] section [controller_worker] client_ca = /etc/octavia/certs/client_ca.cert.pem amp_image_tag = Amphora # specify [flavor] ID for Amphora instance amp_flavor_id = 100 # specify security group ID Amphora instance amp_secgroup_list = 66feb966-fd16-4c49-99d3-d845fd247ea8 # specify network ID to boot Amphora instance (example below specifies public network [public]) amp_boot_network_list = ac8911e7-afd7-4913-997e-2f0412f1271b network_driver = allowed_address_pairs_driver compute_driver = compute_nova_driver amphora_driver = amphora_haproxy_rest_driver [root@network ~]# systemctl restart octavia-api octavia-health-manager octavia-housekeeping octavia-worker
  • 27. ‫نمونه‬ ‫یک‬ ‫ادامه‬ ‫در‬ Loadbalancer : ‫میکنیم‬ ‫ایجاد‬ openstack subnet list +--------------------------------------+---------------- +--------------------------------------+------------------+ | ID | Name | Network | Subnet | +--------------------------------------+---------------- +--------------------------------------+------------------+ | 61bf3654-bef1-4ddd-8d23-f2fd41166f4e | public-subnet | ac8911e7-afd7-4913-997e- 2f0412f1271b | 10.0.0.0/24 | | 9724f8a3-4c59-4d7d-9838-82bc682a551c | private-subnet | 3adf0a70-6446-4095-916d- 17d9f753bbe6 | 192.168.100.0/24 | +--------------------------------------+---------------- +--------------------------------------+------------------+ openstack loadbalancer create --name lb01 --vip-subnet-id private-subnet +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | admin_state_up | True | | availability_zone | None | | created_at | | | description | | | flavor_id | None | | id | 5a52749c-95e5-49c5-a034-431a5721b4af | | listeners | | | name | lb01 | | operating_status | OFFLINE | | pools | | | project_id | b12f95625664420ca31949963b75b74f | | provider | amphora | | provisioning_status | PENDING_CREATE | | updated_at | None | | vip_address | 192.168.100.220 | | vip_network_id | 3adf0a70-6446-4095-916d-17d9f753bbe6 | | vip_port_id | 7710dbbd-00fc-40eb-8c7e-eaa447abf52c | | vip_qos_policy_id | None | | vip_subnet_id | 9724f8a3-4c59-4d7d-9838-82bc682a551c | | tags | | +---------------------+--------------------------------------+
  • 28. ‫مدتی‬ ‫از‬ ‫پس‬ instance ‫آن‬ ‫وضعیت‬ ‫و‬ . ‫شده‬ ‫ساخته‬ active : ‫شود‬‫می‬ openstack loadbalancer list +--------------------------------------+------+---------------------------------- +-----------------+---------------------+------------------+----------+ | id | name | project_id | vip_address | provisioning_status | operating_status | provider | +--------------------------------------+------+---------------------------------- +-----------------+---------------------+------------------+----------+ | 5a52749c-95e5-49c5-a034-431a5721b4af | lb01 | b12f95625664420ca31949963b75b74f | 192.168.100.220 | ACTIVE | OFFLINE | amphora | +--------------------------------------+------+---------------------------------- +-----------------+---------------------+------------------+----------+ listener ‫و‬ Pool ‫و‬ ‫کنید‬ ‫اضافه‬ ‫نمونه‬ ‫به‬ ‫را‬ loadbalancing ‫از‬ ‫استفاده‬ ‫برای‬ ‫را‬ 2 ‫سرور‬ ‫وب‬ ‫نمونه‬ backend .‫کنید‬ ‫پیکربندی‬ # create a listener that listens TCP 80 openstack loadbalancer listener create --name listener01 --protocol TCP --protocol-port 80 lb01 +-----------------------------+--------------------------------------+ | Field | Value | +-----------------------------+--------------------------------------+ | admin_state_up | True | | connection_limit | -1 | | created_at | | | default_pool_id | None | | default_tls_container_ref | None | | description | | | id | 8df57f4f-bcd0-46df-aafd-fdd77e81fa02 | | insert_headers | None | | l7policies | | | loadbalancers | 5a52749c-95e5-49c5-a034-431a5721b4af | | name | listener01 | | operating_status | OFFLINE | | project_id | b12f95625664420ca31949963b75b74f | | protocol | TCP | | protocol_port | 80 | | provisioning_status | PENDING_CREATE | | sni_container_refs | [] |
  • 29. | timeout_client_data | 50000 | | timeout_member_connect | 5000 | | timeout_member_data | 50000 | | timeout_tcp_inspect | 0 | | updated_at | None | | client_ca_tls_container_ref | None | | client_authentication | NONE | | client_crl_container_ref | None | | allowed_cidrs | None | | tls_ciphers | None | | tls_versions | None | | alpn_protocols | None | | tags | | +-----------------------------+--------------------------------------+ # add a pool to the listener openstack loadbalancer pool create --name pool01 --lb-algorithm ROUND_ROBIN --listener listener01 --protocol TCP +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | admin_state_up | True | | created_at | 2021-11-25T00:29:24 | | description | | | healthmonitor_id | | | id | 537b409b-1ccf-475d-b009-106b802d5891 | | lb_algorithm | ROUND_ROBIN | | listeners | 8df57f4f-bcd0-46df-aafd-fdd77e81fa02 | | loadbalancers | 5a52749c-95e5-49c5-a034-431a5721b4af | | members | | | name | pool01 | | operating_status | OFFLINE | | project_id | b12f95625664420ca31949963b75b74f | | protocol | TCP | | provisioning_status | PENDING_CREATE | | session_persistence | None | | updated_at | None | | tls_container_ref | None | | ca_tls_container_ref | None | | crl_container_ref | None | | tls_enabled | False | | tls_ciphers | None | | tls_versions | None | | tags | | | alpn_protocols | None | +----------------------+--------------------------------------+ # web server instances
  • 30. openstack server list +--------------------------------------+-------+--------+------------------------ +-----------------+----------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+-------+--------+------------------------ +-----------------+----------+ | 267da02c-056a-4678-9d49-c19c802a2cde | Web02 | ACTIVE | private=192.168.100.78 | CentOS- Stream-8 | m1.small | | ff35a3bb-d2cd-4c01-9960-a34c6cb5a5a2 | Web01 | ACTIVE | private=192.168.100.44 | CentOS- Stream-8 | m1.small | +--------------------------------------+-------+--------+------------------------ +-----------------+----------+ # add web server instances to the pool member openstack loadbalancer member create --subnet-id private-subnet --address 192.168.100.78 --protocol- port 80 pool01 +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | address | 192.168.100.78 | | admin_state_up | True | | created_at | 2021-11-25T00:34:38 | | id | 48df21bb-b8d6-4af2-a6c8-64400cddc518 | | name | | | operating_status | NO_MONITOR | | project_id | b12f95625664420ca31949963b75b74f | | protocol_port | 80 | | provisioning_status | PENDING_CREATE | | subnet_id | 9724f8a3-4c59-4d7d-9838-82bc682a551c | | updated_at | None | | weight | 1 | | monitor_port | None | | monitor_address | None | | backup | False | | tags | | +---------------------+--------------------------------------+ openstack loadbalancer member create --subnet-id private-subnet --address 192.168.100.44 --protocol- port 80 pool01 +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | address | 192.168.100.44 | | admin_state_up | True |
  • 31. | created_at | 2021-11-25T00:34:51 | | id | b2d1f0e0-af04-48c6-a6a7-11323081d683 | | name | | | operating_status | NO_MONITOR | | project_id | b12f95625664420ca31949963b75b74f | | protocol_port | 80 | | provisioning_status | PENDING_CREATE | | subnet_id | 9724f8a3-4c59-4d7d-9838-82bc682a551c | | updated_at | None | | weight | 1 | | monitor_port | None | | monitor_address | None | | backup | False | | tags | | +---------------------+--------------------------------------+ openstack loadbalancer member list pool01 +--------------------------------------+------+---------------------------------- +---------------------+----------------+---------------+------------------+--------+ | id | name | project_id | provisioning_status | address | protocol_port | operating_status | weight | +--------------------------------------+------+---------------------------------- +---------------------+----------------+---------------+------------------+--------+ | 48df21bb-b8d6-4af2-a6c8-64400cddc518 | | b12f95625664420ca31949963b75b74f | ACTIVE | 192.168.100.78 | 80 | NO_MONITOR | 1 | | b2d1f0e0-af04-48c6-a6a7-11323081d683 | | b12f95625664420ca31949963b75b74f | ACTIVE | 192.168.100.44 | 80 | NO_MONITOR | 1 | +--------------------------------------+------+---------------------------------- +---------------------+----------------+---------------+------------------+--------+ # create a floating IP on public network openstack floating ip create public +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | created_at | 2021-11-25T00:42:32Z | | description | | | dns_domain | | | dns_name | | | fixed_ip_address | None | | floating_ip_address | 10.0.0.253 | | floating_network_id | ac8911e7-afd7-4913-997e-2f0412f1271b | | id | 30ef7fe3-b45b-4182-a8ad-7331e005d7df | | name | 10.0.0.253 | | port_details | None | | port_id | None | | project_id | b12f95625664420ca31949963b75b74f | | qos_policy_id | None |
  • 32. | revision_number | 0 | | router_id | None | | status | DOWN | | subnet_id | None | | tags | [] | | updated_at | | +---------------------+--------------------------------------+ # assosiate floating IP with VIP of loadbalancer instace VIPPORT=$(openstack loadbalancer show lb01 | grep vip_port_id | awk {'print $4'}) openstack floating ip set --port $VIPPORT 10.0.0.253 # verify settings to access to the floating IP curl 10.0.0.253 Web Server on Instance01 curl 10.0.0.253 Web Server on Instance02 curl 10.0.0.253 Web Server on Instance01 curl 10.0.0.253 Web Server on Instance02