1. مقدمه
این راهنما دستورالعمل هایی را برای انتقال یک متعادل کننده بار شبکه موجود از یک باطن استخر هدف به یک سرویس پشتیبان منطقه ای ارائه می دهد.
چیزی که یاد خواهید گرفت
- مزایای خدمات پشتیبان منطقه ای را درک کنید
- یک متعادل کننده بار شبکه با استخرهای هدف ایجاد کنید
- اعتبار سنجی استخر هدف را انجام دهید
- با استفاده از گروه های نمونه مدیریت نشده، یک سرویس باطن منطقه ای ایجاد کنید
- انتقال سرویس Pool به Backend را انجام دهید
- اعتبار سنجی خدمات باطن را انجام دهید
آنچه شما نیاز دارید
- تجربه با بار متعادل کننده ها
2. خدمات باطن منطقه ای برای شبکه Load Balancing نمای کلی
با Network Load Balancing ، مشتریان Google Cloud ابزار قدرتمندی برای توزیع ترافیک خارجی بین ماشینهای مجازی در منطقه Google Cloud دارند. به منظور آسانتر کردن مدیریت ترافیک ورودی و کنترل نحوه رفتار متعادلکننده بار، ما اخیراً پشتیبانی از خدمات پشتیبان را به Network Load Balancing اضافه کردهایم. این مقیاس، سرعت، عملکرد و انعطافپذیری بهبود یافتهای را برای مشتریان ما در استقرار آنها فراهم میکند - همه به روشی آسان برای مدیریت.
ما در حال حاضر از خدمات پشتیبان با توازن بار شبکه پشتیبانی می کنیم - یک پیشرفت قابل توجه نسبت به رویکرد قبلی، استخرهای هدف . یک سرویس باطن تعریف میکند که متعادلکنندههای بار ما چگونه ترافیک ورودی را به باطنهای متصل توزیع میکنند و کنترل دقیقی را برای نحوه رفتار متعادلکننده بار ارائه میدهند.
3. مزایای خدمات پشتیبان منطقه ای
انتخاب یک سرویس پشتیبان منطقه ای به عنوان متعادل کننده بار، مزایای زیادی را برای محیط شما به ارمغان می آورد.
خارج از دروازه، خدمات پشتیبان منطقه ای ارائه می دهند:
- بررسی سلامت با وفاداری بالا با بررسی سلامت یکپارچه - با خدمات باطن منطقهای، اکنون میتوانید از ویژگیهای بررسی سلامت متعادلسازی بار استفاده کنید و خود را از محدودیتهای بررسیهای بهداشتی قدیمی HTTP رها کنید. به دلایل انطباق، بررسیهای سلامت TCP با پشتیبانی از رشتههای درخواست سفارشی و پاسخ یا HTTPS یک درخواست متداول برای مشتریان شبکه Load Balancing بود.
- انعطافپذیری بهتر با گروههای شکست - با گروههای شکست، میتوانید یک گروه نمونه را بهعنوان اولیه و دیگری را بهعنوان ثانویه تعیین کنید و زمانی که سلامت نمونههای گروه فعال از آستانه خاصی پایینتر رفت، ترافیک را با شکست مواجه کنید. برای کنترل بیشتر بر روی مکانیسم شکست، میتوانید از عاملی مانند نگهدارنده یا ضربان ساز استفاده کنید و یک بررسی سلامت سالم یا ناموفق را بر اساس تغییرات وضعیت نمونه پشتیبان در معرض نمایش قرار دهید.
- مقیاس پذیری و در دسترس بودن بالا با گروه های نمونه مدیریت شده - خدمات باطن منطقه ای از گروه های نمونه مدیریت شده به عنوان باطن پشتیبانی می کنند. اکنون میتوانید یک الگو برای نمونههای ماشین مجازی پشتیبان خود تعیین کنید و از مقیاس خودکار بر اساس استفاده از CPU یا سایر معیارهای نظارتی استفاده کنید.
علاوه بر موارد فوق، شما می توانید از مزایای Connection Draining برای پروتکل اتصال گرا (TCP) و زمان برنامه نویسی سریعتر برای استقرارهای بزرگ استفاده کنید.
توپولوژی شبکه Codelab
این راهنما دستورالعمل هایی را برای انتقال یک متعادل کننده بار شبکه موجود از یک باطن استخر هدف به یک سرویس پشتیبان منطقه ای ارائه می دهد.
انتقال به یک سرویس پشتیبان منطقهای به شما امکان میدهد از ویژگیهایی مانند بررسیهای سلامت غیر قدیمی (برای TCP، SSL، HTTP، HTTPS، و HTTP/2)، گروههای نمونه مدیریتشده، تخلیه اتصال ، و خطمشی failover بهره ببرید.
این راهنما شما را در انتقال نمونه تعادل بار شبکه مبتنی بر استخر هدف زیر راهنمایی می کند تا به جای آن از یک سرویس باطن منطقه ای استفاده کنید.
قبل: تعادل بار شبکه با یک استخر هدف
استقرار متعادل کننده بار شبکه مبتنی بر خدمات باطن شما به این شکل خواهد بود.
بعد: تعادل بار شبکه با یک سرویس باطن منطقه ای
این مثال فرض می کند که شما یک متعادل کننده بار شبکه مبتنی بر استخر هدف سنتی با دو نمونه در منطقه us-central-1a و 2 نمونه در منطقه us-central-1c دارید.
مراحل سطح بالا مورد نیاز برای چنین انتقالی عبارتند از:
- نمونه های استخر هدف خود را در گروه های نمونه گروه بندی کنید. سرویس های Backend فقط با گروه های نمونه مدیریت شده یا مدیریت نشده کار می کنند. توجه داشته باشید که در حالی که هیچ محدودیتی برای تعداد نمونههایی که میتوانند در یک مجموعه هدف قرار گیرند وجود ندارد، گروههای نمونه دارای حداکثر اندازه هستند. اگر استخر هدف شما بیش از این حداکثر تعداد نمونه دارد، باید باطن آن را در چند گروه نمونه تقسیم کنید. اگر استقرار فعلی شما شامل یک مجموعه هدف پشتیبان است، یک گروه نمونه جداگانه برای آن نمونه ها ایجاد کنید. این گروه نمونه به عنوان یک گروه شکستی پیکربندی خواهد شد.
- یک سرویس باطن منطقه ای ایجاد کنید. اگر استقرار شما شامل یک مخزن هدف پشتیبان است، باید هنگام ایجاد سرویس Backend نسبت Failover را مشخص کنید. این باید با نسبت شکستی که قبلاً برای استقرار استخر هدف پیکربندی شده است مطابقت داشته باشد.
- گروه های نمونه (ایجاد شده قبلی) را به سرویس پشتیبان اضافه کنید. اگر استقرار شما شامل یک استخر هدف پشتیبان است، هنگام افزودن آن به سرویس باطن، گروه نمونه خطای مربوطه را با یک پرچم –failover علامت بزنید.
- یک قانون حمل و نقل را پیکربندی کنید که به سرویس باطن جدید اشاره می کند. شما در اینجا 2 گزینه دارید:
- (توصیه می شود) قانون حمل و نقل موجود را برای اشاره به سرویس backend به روز کنید. یا
- یک فوروارد جدید ایجاد کنید که به سرویس Backend اشاره می کند. این امر مستلزم ایجاد یک آدرس IP جدید برای قسمت جلویی load balancer است. سپس تنظیمات DNS خود را تغییر دهید تا به طور یکپارچه از آدرس IP قدیمی متعادل کننده بار مبتنی بر استخر به آدرس IP جدید منتقل شوید.
تنظیم محیط خود به خود
- به کنسول Cloud وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژه های Google Cloud (نام بالا قبلاً گرفته شده است و برای شما کار نخواهد کرد، متأسفیم!). بعداً در این آزمایشگاه کد به عنوان PROJECT_ID
نامیده خواهد شد.
- در مرحله بعد، برای استفاده از منابع Google Cloud، باید صورتحساب را در Cloud Console فعال کنید .
اجرا کردن از طریق این کد لبه نباید هزینه زیادی داشته باشد، اگر اصلاً باشد. حتماً دستورالعملهای موجود در بخش «تمیز کردن» را دنبال کنید که به شما توصیه میکند چگونه منابع را خاموش کنید تا بیش از این آموزش متحمل صورتحساب نشوید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را راه اندازی کنید
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.
از کنسول GCP روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:
تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:
این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این آزمایشگاه به سادگی با یک مرورگر قابل انجام است.
وارد cloudshell شوید و projectid خود را تنظیم کنید
gcloud config list project gcloud config set project [YOUR-PROJECT-ID] Perform setting your projectID: projectid=YOUR-PROJECT-ID echo $projectid
4. شبکه VPC ایجاد کنید
شبکه VPC
از Cloud Shell
gcloud compute networks create network-lb --subnet-mode custom
زیر شبکه ایجاد کنید
از Cloud Shell
gcloud compute networks subnets create network-lb-subnet \ --network network-lb --range 10.0.0.0/24 --region us-central1
قوانین فایروال را ایجاد کنید
از Cloud Shell
gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag
نمونه های مدیریت نشده ایجاد کنید
ایجاد 2 نمونه در هر منطقه، us-central1-a و us-central1-c
از Cloud Shell نمونه 1 را ایجاد کنید
gcloud compute instances create www1 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-a \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www1</h1></body></html>' | tee /var/www/html/index.html"
از Cloud Shell نمونه 2 را ایجاد کنید
gcloud compute instances create www2 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-a \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www2</h1></body></html>' | tee /var/www/html/index.html"
از Cloud Shell نمونه 3 را ایجاد کنید
gcloud compute instances create www3 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-c \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www3</h1></body></html>' | tee /var/www/html/index.html"
از Cloud Shell نمونه 4 را ایجاد کنید
gcloud compute instances create www4 \ --subnet network-lb-subnet \ --image-family debian-9 \ --image-project debian-cloud \ --zone us-central1-c \ --tags network-lb-tag \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo service apache2 restart echo '<!doctype html><html><body><h1>www4</h1></body></html>' | tee /var/www/html/index.html"
یک قانون فایروال ایجاد کنید تا ترافیک خارجی به این نمونه های VM مجاز شود
از Cloud Shell
gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag
یک آدرس IP خارجی ثابت برای متعادل کننده بار خود ایجاد کنید
از Cloud Shell
gcloud compute addresses create network-lb-ip-1 \ --region us-central1
یک منبع بررسی سلامت HTTP قدیمی اضافه کنید
از Cloud Shell
gcloud compute http-health-checks create basic-check
5. قانون حمل و نقل و استخر هدف ایجاد کنید
یک استخر هدف ایجاد کنید
gcloud compute target-pools create www-pool \ --region us-central1 --http-health-check basic-check
نمونه های خود را به استخر هدف، us-central1-a اضافه کنید
gcloud compute target-pools add-instances www-pool \ --instances www1,www2 \ --instances-zone us-central1-a
نمونه های خود را به استخر هدف، us-central1-c اضافه کنید
gcloud compute target-pools add-instances www-pool \ --instances www3,www4 \ --instances-zone us-central1-c
یک قانون حمل و نقل اضافه کنید
gcloud compute forwarding-rules create www-rule \ --region us-central1 \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool
اعتبار سنجی عملکرد استخر هدف
آدرس IP frontend را با انتخاب Load Balancers → Frontends (www-rule) شناسایی کنید.
از دستور curl از ترمینال ایستگاه کاری خود برای دسترسی به آدرس IP خارجی و مشاهده تعادل بار در چهار نمونه هدف استفاده کنید. پس از تأیید اعتبار، ترمینال را ببندید.
while true; do curl -m1 IP_ADDRESS; done
6. متعادل کننده بار شبکه را از استخر هدف به سرویس باطن انتقال دهید
بررسی های سلامت یکپارچه را برای سرویس باطن خود ایجاد کنید
gcloud compute health-checks create tcp my-tcp-health-check --port 80 --region us-central1
گروههای نمونه را از نمونههای موجود از استخر هدف ایجاد کنید
gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1a --zone=us-central1-a gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1a --zone=us-central1-a --instances=www1,www2
گروههای نمونه را از نمونههای موجود از استخر هدف ایجاد کنید
gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1c --zone=us-central1-c gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1c --zone=us-central1-c --instances=www3,www4
یک سرویس پشتیبان ایجاد کنید و آن را با بررسی های سلامت جدید مرتبط کنید
gcloud compute backend-services create my-backend-service --region us-central1 --health-checks my-tcp-health-check --health-checks-region us-central1 --load-balancing-scheme external
سرویس باطن خود را پیکربندی کنید و گروههای نمونه را اضافه کنید
gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1a --instance-group-zone us-central1-a --region us-central1 gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1c --instance-group-zone us-central1-c --region us-central1
قانون حمل و نقل موجود را برای پشتیبانی از خدمات پشتیبان به روز کنید
با انجام موارد زیر به نام قانون ارسال "www-rule" و آدرس IP مرتبط توجه کنید:
Load Balancer → Frontends را انتخاب کنید
همچنین، به چهار استخر هدف اشاره کرد
Load Balancer را انتخاب کنید → "www-pool" را انتخاب کنید
با به روز رسانی قانون حمل و نقل موجود، ترافیک را به خدمات پشتیبان هدایت کنید
gcloud compute forwarding-rules set-target www-rule --region=us-central1 --backend-service my-backend-service --region us-central1
بررسی کنید که متعادلکننده بار «www-pool» دیگر با «www-rule» ظاهری پیکربندی نشده است (تصویر صفحه زیر را ببینید)
Load Balancer → www-pool را انتخاب کنید
اعتبارسنجی قانون حمل و نقل frontend اکنون با متعادل کننده بار "my-backend-service" مرتبط است
Load Balancer → Frontends را انتخاب کنید
توجه داشته باشید که آدرس IP نام قانون "www-rule" حفظ شده است و متعادل کننده بار "my-backend-service" اکنون در حال استفاده است.
از دستور curl از ترمینال ایستگاه کاری خود برای دسترسی به آدرس IP خارجی و مشاهده تعادل بار در سرویس باطن جدید مرتبط استفاده کنید. پس از تأیید اعتبار، ترمینال را ببندید.
while true; do curl -m1 IP_ADDRESS; done
7. مراحل پاکسازی
gcloud compute forwarding-rules delete www-rule --region=us-central1 --quiet gcloud compute backend-services delete my-backend-service --region us-central1 --quiet gcloud compute target-pools delete www-pool --region us-central1 --quiet gcloud compute addresses delete network-lb-ip-1 --region us-central1 --quiet gcloud compute firewall-rules delete www-firewall-network-lb --quiet gcloud compute instances delete www4 --zone us-central1-c --quiet gcloud compute instances delete www3 --zone us-central1-c --quiet gcloud compute instances delete www2 --zone us-central1-a --quiet gcloud compute instances delete www1 --zone us-central1-a --quiet gcloud compute networks subnets delete network-lb-subnet --region us-central1 --quiet gcloud compute networks delete network-lb --quiet gcloud compute instance-groups unmanaged delete www-instance-group-central1a --zone us-central1-a --quiet gcloud compute instance-groups unmanaged delete www-instance-group-central1c --zone us-central1-c --quiet
8. تبریک می گویم!
برای تکمیل کد لبه تبریک می گویم.
آنچه را پوشش داده ایم
- مزایای خدمات پشتیبان منطقه ای را درک کنید
- یک متعادل کننده بار شبکه با استخرهای هدف ایجاد کنید
- اعتبار سنجی استخر هدف را انجام دهید
- با استفاده از گروه های نمونه مدیریت نشده، یک سرویس باطن منطقه ای ایجاد کنید
- انتقال سرویس Pool به Backend را انجام دهید
- اعتبار سنجی خدمات باطن را انجام دهید