۱. مقدمه
به بخش مدیریت ترافیک پیشرفته (Envoy) در Codelab به HTTP های خارجی خوش آمدید!
آخرین نسخه متعادلکننده بار خارجی HTTP(S) با مدیریت پیشرفته ترافیک، شامل تمام ویژگیهای متعادلکننده بار خارجی HTTP(S) کلاسیک جهانی موجود ما است، اما با فهرستی رو به رشد از قابلیتهای مدیریت پیشرفته ترافیک. برخی از این قابلیتها برای متعادلکنندههای بار ما جدید هستند و برخی ویژگیهای پیشرفتهای را برای قابلیتهای موجود ارائه میدهند. فهرستی از این قابلیتها عبارتند از:
- تقسیم ترافیک وزندار
- درخواست آینهسازی
- تشخیص دادههای پرت
- درخواست تلاش مجدد
- تزریق خطا
- گزینههای اضافی وابستگی به جلسه در بکاند
- گزینههای اضافی برای تبدیل هدر
- اشتراکگذاری منابع بین مبدا (CORS)
- الگوریتمهای جدید متعادلسازی بار
آنچه یاد خواهید گرفت
- نحوه راهاندازی یک گروه نمونه مدیریتشده و قوانین VPC و فایروال مرتبط
- نحوه استفاده از ویژگیهای پیشرفته مدیریت ترافیک متعادلکننده بار جدید
- چگونه میتوان تأیید کرد که ویژگیهای مدیریت ترافیک پیشرفته طبق برنامه کار میکنند.
آنچه نیاز دارید
- آشنایی اولیه با شبکه و HTTP
- دانش پایه خط فرمان یونیکس/لینوکس
توپولوژی و مورد استفاده Codelab

شکل 1 - توپولوژی مسیریابی متعادل کننده بار HTTP
در طول این آزمایش کد، شما سه گروه نمونه مدیریتشده، یکی در شرق، غرب و مرکز، راهاندازی خواهید کرد. شما یک متعادلکننده بار خارجی https سراسری ایجاد خواهید کرد. متعادلکننده بار از چندین ویژگی از فهرست قابلیتهای پیشرفتهای که متعادلکننده بار مبتنی بر نماینده پشتیبانی میکند، استفاده خواهد کرد. پس از استقرار، شما یک بار شبیهسازیشده ایجاد خواهید کرد و تأیید میکنید که پیکربندیهایی که تنظیم کردهاید به درستی کار میکنند.
۲. تنظیمات و الزامات
تنظیم محیط خودتنظیم
- وارد کنسول گوگل کلود شوید و یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید. اگر از قبل حساب جیمیل یا گوگل ورک اسپیس ندارید، باید یکی ایجاد کنید .



- نام پروژه، نام نمایشی برای شرکتکنندگان این پروژه است. این یک رشته کاراکتری است که توسط APIهای گوگل استفاده نمیشود. شما همیشه میتوانید آن را بهروزرسانی کنید.
- شناسه پروژه در تمام پروژههای گوگل کلود منحصر به فرد است و تغییرناپذیر است (پس از تنظیم، قابل تغییر نیست). کنسول کلود به طور خودکار یک رشته منحصر به فرد تولید میکند؛ معمولاً برای شما مهم نیست که چه باشد. در اکثر آزمایشگاههای کد، باید شناسه پروژه خود را (که معمولاً با عنوان
PROJECT_IDشناخته میشود) ارجاع دهید. اگر شناسه تولید شده را دوست ندارید، میتوانید یک شناسه تصادفی دیگر ایجاد کنید. به عنوان یک جایگزین، میتوانید شناسه خودتان را امتحان کنید و ببینید که آیا در دسترس است یا خیر. پس از این مرحله قابل تغییر نیست و در طول پروژه باقی میماند. - برای اطلاع شما، یک مقدار سوم، شماره پروژه ، وجود دارد که برخی از APIها از آن استفاده میکنند. برای کسب اطلاعات بیشتر در مورد هر سه این مقادیر، به مستندات مراجعه کنید.
- در مرحله بعد، برای استفاده از منابع/API های ابری، باید پرداخت صورتحساب را در کنسول ابری فعال کنید . اجرای این آزمایشگاه کد هزینه زیادی نخواهد داشت، اگر اصلاً هزینهای داشته باشد. برای خاموش کردن منابع به منظور جلوگیری از پرداخت صورتحساب پس از این آموزش، میتوانید منابعی را که ایجاد کردهاید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان ۳۰۰ دلاری هستند.
شروع پوسته ابری
اگرچه میتوان از راه دور و از طریق لپتاپ، گوگل کلود را مدیریت کرد، اما در این آزمایشگاه کد، از گوگل کلود شل ، یک محیط خط فرمان که در فضای ابری اجرا میشود، استفاده خواهید کرد.
از کنسول گوگل کلود ، روی آیکون Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

آمادهسازی و اتصال به محیط فقط چند لحظه طول میکشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

این ماشین مجازی با تمام ابزارهای توسعهای که نیاز دارید، مجهز شده است. این ماشین مجازی یک دایرکتوری خانگی پایدار ۵ گیگابایتی ارائه میدهد و روی فضای ابری گوگل اجرا میشود که عملکرد شبکه و احراز هویت را تا حد زیادی بهبود میبخشد. تمام کارهای شما در این آزمایشگاه کد را میتوان در یک مرورگر انجام داد. نیازی به نصب چیزی ندارید.
قبل از اینکه شروع کنی
داخل Cloud Shell، مطمئن شوید که شناسه پروژه شما تنظیم شده است
پروژه لیست پیکربندی gcloud
پروژه مجموعه پیکربندی gcloud [نام پروژه شما]
شناسه پروژه=[نام-پروژه شما]
اکو $PROJECT_ID
فعال کردن APIها
فعال کردن تمام سرویسهای لازم
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com
۳. شبکه VPC را ایجاد کنید
ایجاد شبکه VPC
از پوسته ابری
gcloud compute networks create httplbs --subnet-mode=auto
خروجی
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/httplbs]. NAME: httplbs SUBNET_MODE: AUTO BGP_ROUTING_MODE: REGIONAL IPV4_RANGE: GATEWAY_IPV4:
ایجاد قوانین فایروال VPC
پس از ایجاد VPC، اکنون یک قانون فایروال ایجاد خواهید کرد. این قانون فایروال برای اجازه دادن به همه IP ها برای دسترسی به IP خارجی وب سایت برنامه آزمایشی در پورت 80 برای ترافیک http استفاده خواهد شد.
از پوسته ابری
gcloud compute firewall-rules create httplb-allow-http-rule \ --allow tcp:80 \ --network httplbs \ --source-ranges 0.0.0.0/0 \ --priority 700
خروجی
Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/httplb-allow-http-rule]. Creating firewall...done. NAME: httplb-allow-http-rule NETWORK: httplbs DIRECTION: INGRESS PRIORITY: 700 ALLOW: tcp:80 DENY: DISABLED: False
۴. گروههای نمونه مدیریتشده را تنظیم کنید
شما باید گروههای نمونه مدیریتشده (Managed Instance Groups) را تنظیم کنید که شامل الگوهایی برای منابع backend مورد استفاده توسط HTTP Load Balancer باشد. ابتدا قالبهای نمونه (Instance Templates) را ایجاد میکنیم که پیکربندی ماشینهای مجازی (VM) ایجاد شده برای هر منطقه را تعریف میکنند. در مرحله بعد، برای یک backend در هر منطقه، یک گروه نمونه مدیریتشده (Managed Instance Group) ایجاد میکنیم که به یک قالب نمونه (Instance Template) ارجاع میدهد.
گروههای نمونه مدیریتشده میتوانند از نظر دامنه، منطقهای یا منطقهای باشند. برای این تمرین آزمایشگاهی، سه گروه نمونه مدیریتشده منطقهای ایجاد خواهیم کرد، یکی در us-east1، یکی در us-west1 و یکی در us-central1.
در این بخش، میتوانید یک اسکریپت راهاندازی از پیش ایجاد شده را مشاهده کنید که هنگام ایجاد نمونه به آن ارجاع داده خواهد شد. این اسکریپت راهاندازی، قابلیتهای وب سرور را نصب و فعال میکند که ما برای شبیهسازی یک برنامه وب از آنها استفاده خواهیم کرد. میتوانید این اسکریپت را بررسی کنید.
ایجاد الگوهای نمونه شرقی، غربی و مرکزی
اولین قدم، ایجاد الگوی نمونه us-east-1 است.
از پوسته ابری
gcloud compute instance-templates create us-east1-template \
--region=us-east1 \
--network=httplbs \
--tags=http-server, \
--image-family=debian-12 \
--image-project=debian-cloud \
--metadata=startup-script='#! /bin/bash
apt-get update
apt-get install apache2 -y
a2ensite default-ssl
a2enmod ssl
vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://169.254.169.254/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" | \
tee /var/www/html/index.html
systemctl restart apache2'
خروجی
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-east1-template]. NAME: us-east1-template MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: CREATION_TIMESTAMP: 2021-11-11T11:02:37.511-08:00
مرحله بعدی ایجاد الگوی نمونه us-west-1 است.
از پوسته ابری
gcloud compute instance-templates create us-west1-template \
--region=us-west1 \
--network=httplbs \
--tags=http-server, \
--image-family=debian-12 \
--image-project=debian-cloud \
--metadata=startup-script='#! /bin/bash
apt-get update
apt-get install apache2 -y
a2ensite default-ssl
a2enmod ssl
vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://169.254.169.254/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" | \
tee /var/www/html/index.html
systemctl restart apache2'
خروجی
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-west1-template]. NAME: us-west1-template MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: CREATION_TIMESTAMP: 2021-11-11T11:03:08.577-08:00
مرحله بعدی ایجاد الگوی نمونه us-central-1 است.
از پوسته ابری
gcloud compute instance-templates create us-central1-template \
--region=us-central1 \
--network=httplbs \
--tags=http-server, \
--image-family=debian-12 \
--image-project=debian-cloud \
--metadata=startup-script='#! /bin/bash
apt-get update
apt-get install apache2 -y
a2ensite default-ssl
a2enmod ssl
vm_hostname="$(curl -H "Metadata-Flavor:Google" \
http://169.254.169.254/computeMetadata/v1/instance/name)"
echo "Page served from: $vm_hostname" | \
tee /var/www/html/index.html
systemctl restart apache2'
خروجی
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-central1-template]. NAME: us-central1-template MACHINE_TYPE: n1-standard-1 PREEMPTIBLE: CREATION_TIMESTAMP: 2021-11-11T11:03:44.179-08:00
اکنون میتوانید با دستور gcloud زیر، ایجاد موفقیتآمیز الگوهای نمونه ما را تأیید کنید:
از پوسته ابری
gcloud compute instance-templates list
خروجی
NAME MACHINE_TYPE PREEMPTIBLE CREATION_TIMESTAMP us-central1-template n1-standard-1 2021-11-09T09:25:37.263-08:00 us-east1-template n1-standard-1 2021-11-09T09:24:35.275-08:00 us-west1-template n1-standard-1 2021-11-09T09:25:08.016-08:00
گروههای نمونه مدیریتشده شرقی، غربی و مرکزی را ایجاد کنید
اکنون باید یک گروه نمونه مدیریتشده از الگوهای نمونهای که قبلاً ایجاد کردهایم، ایجاد کنیم.
از پوسته ابری
gcloud compute instance-groups managed create us-east1-mig \ --base-instance-name=us-east1-mig \ --size=1 \ --template=us-east1-template \ --zone=us-east1-b
خروجی
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-east1-b/instanceGroupManagers/us-east1-mig]. NAME: us-east1-mig LOCATION: us-east1-b SCOPE: zone BASE_INSTANCE_NAME: us-east1-mig SIZE: 0 TARGET_SIZE: 1 INSTANCE_TEMPLATE: us-east1-template AUTOSCALED: no
از پوسته ابری
gcloud compute instance-groups managed create us-west1-mig \ --base-instance-name=us-west1-mig \ --size=1 \ --template=us-west1-template \ --zone=us-west1-a
خروجی
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroupManagers/us-west1-mig]. NAME: us-west1-mig LOCATION: us-west1-a SCOPE: zone BASE_INSTANCE_NAME: us-west1-mig SIZE: 0 TARGET_SIZE: 1 INSTANCE_TEMPLATE: us-west1-template AUTOSCALED: no
از پوسته ابری
gcloud compute instance-groups managed create us-central1-mig \ --base-instance-name=us-central1-mig \ --size=1 \ --template=us-central1-template \ --zone=us-central1-a
خروجی
Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-central1-a/instanceGroupManagers/us-central1-mig]. NAME: us-central1-mig LOCATION: us-central1-a SCOPE: zone BASE_INSTANCE_NAME: us-central1-mig SIZE: 0 TARGET_SIZE: 1 INSTANCE_TEMPLATE: us-central1-template AUTOSCALED: no
میتوانیم با دستور gcloud زیر، ایجاد موفقیتآمیز گروههای نمونه خود را تأیید کنیم:
از پوسته ابری
gcloud compute instance-groups list
خروجی
NAME LOCATION SCOPE NETWORK MANAGED INSTANCES us-central1-mig us-central1 zone httplbs Yes 1 us-west1-mig us-west1 zone httplbs Yes 1 us-east1-mig us-east1 zone httplbs Yes 1
بررسی عملکرد وب سرور
هر نمونه طوری پیکربندی شده است که یک وب سرور آپاچی را با یک اسکریپت ساده PHP اجرا کند که موارد زیر را رندر میکند:

برای اطمینان از عملکرد صحیح سرورهای وب خود، به Compute Engine -> VM instances بروید. مطمئن شوید که نمونههای جدید شما (مثلاً us-east1-mig-xxx) مطابق با تعاریف گروه نمونه آنها ایجاد شدهاند.
اکنون، یک درخواست وب در مرورگر خود به آن ارسال کنید تا مطمئن شوید که وب سرور در حال اجرا است (شروع این کار ممکن است یک دقیقه طول بکشد). در صفحه نمونههای ماشین مجازی در زیر Compute Engine، نمونهای را که توسط گروه نمونه شما ایجاد شده است انتخاب کنید و روی IP خارجی (عمومی) آن کلیک کنید.
یا در مرورگر خود، به آدرس http://<IP_Address> بروید.
۵. تنظیم متعادلکننده بار
ایجاد بررسی سلامت
ابتدا باید یک بررسی سلامت اولیه ایجاد کنیم تا مطمئن شویم سرویسهای ما با موفقیت در حال اجرا هستند. ما یک بررسی سلامت اولیه ایجاد خواهیم کرد، سفارشیسازیهای پیشرفتهتری نیز در دسترس هستند.
از پوسته ابری
gcloud compute health-checks create http http-basic-check \
--port 80
رزرو آدرس IP خارجی
برای این مرحله، شما باید یک آدرس IP استاتیک جهانی رزرو کنید که بعداً به متعادلکننده بار متصل خواهد شد.
از پوسته ابری
gcloud compute addresses create lb-ipv4-2 \
--ip-version=IPV4 \
--global
حتماً آدرس IP رزرو شده را یادداشت کنید.
gcloud compute addresses describe lb-ipv4-2 \
--format="get(address)" \
--global
ایجاد سرویسهای بکاند
حالا باید برای هر یک از گروههای نمونه مدیریتشدهای که قبلاً ایجاد کردیم، یک سرویس backend ایجاد کنیم. یکی برای East، West و Central.
ایجاد یک سرویس backend برای گروه نمونه مدیریتشده East.
از پوسته ابری
gcloud compute backend-services create east-backend-service \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=HTTP \
--port-name=http \
--health-checks=http-basic-check \
--global
ایجاد یک سرویس backend برای گروه نمونه مدیریتشده در غرب.
از پوسته ابری
gcloud compute backend-services create west-backend-service \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=HTTP \
--port-name=http \
--health-checks=http-basic-check \
--global
ایجاد یک سرویس backend برای گروه نمونه مدیریتشده Central.
از پوسته ابری
gcloud compute backend-services create central-backend-service \
--load-balancing-scheme=EXTERNAL_MANAGED \
--protocol=HTTP \
--port-name=http \
--health-checks=http-basic-check \
--global
اضافه کردن MIG ها به سرویس های Backend
اکنون که سرویسهای بکاند مربوطه را برای هر خوشه برنامه ایجاد کردهایم، باید گروههای نمونه مدیریتشدهای را که قبلاً ایجاد کردهایم به هر سرویس بکاند اضافه کنیم.
اضافه کردن East MIG به سرویس backend.
از پوسته ابری
gcloud compute backend-services add-backend east-backend-service \
--balancing-mode='UTILIZATION' \
--instance-group=us-east1-mig \
--instance-group-zone=us-east1-b \
--global
اضافه کردن West MIG به سرویس backend.
از پوسته ابری
gcloud compute backend-services add-backend west-backend-service \
--balancing-mode='UTILIZATION' \
--instance-group=us-west1-mig \
--instance-group-zone=us-west1-a \
--global
اضافه کردن Central MIG به سرویس backend.
از پوسته ابری
gcloud compute backend-services add-backend central-backend-service \
--balancing-mode='UTILIZATION' \
--instance-group=us-central1-mig \
--instance-group-zone=us-central1-a \
--global
ایجاد نقشه URL
نقشه URL جایی است که ویژگیهای پیشرفته مدیریت ترافیک برای این آزمایش در آن قرار خواهند گرفت. ما باید یک فایل .yaml ایجاد کنیم که شامل پیکربندی باشد. در داخل فایل .yaml ما یک تطبیق پیشوند روی /roundrobbin ایجاد کردهایم، بنابراین فقط ترافیک منطبق با /roundrobbin تحت تأثیر این پیکربندیها قرار خواهد گرفت. ما مشخص کردهایم که ۵۰٪ از ترافیک باید به east-backend-service و ۵۰٪ از ترافیک باید به west-backend-service برود. ما علاوه بر این، یک مقدار هدر پاسخ:{test} اضافه کردهایم که در همه پاسخها وجود خواهد داشت. در نهایت، اضافه کردهایم که همه ترافیک باید به central-backend-service منعکس شود. ترافیک کپی شده و فقط برای اهداف آزمایشی به اینجا ارسال میشود.
مثال را به عنوان یک فایل .yaml در دستگاه خود ذخیره کنید.
defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
kind: compute #urlMap
name: web-map-http
hostRules:
- hosts:
- '*'
pathMatcher: matcher1
pathMatchers:
- defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
name: matcher1
routeRules:
- matchRules:
- prefixMatch: /roundrobbin
priority: 2
headerAction:
responseHeadersToAdd:
- headerName: test
headerValue: value
replace: True
routeAction:
weightedBackendServices:
- backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
weight: 50
- backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/west-backend-service
weight: 50
retryPolicy:
retryConditions: ['502', '504']
numRetries: 3
perTryTimeout:
seconds: 1
nanos: 50
requestMirrorPolicy:
backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/central-backend-service
نقشه URL را با وارد کردن سند از دستگاه خود ایجاد کنید. توجه داشته باشید که مسیر منبع بسته به جایی که فایل .yaml را ذخیره میکنید، متفاوت خواهد بود.
از پوسته ابری
gcloud compute url-maps import web-map-http \ --source /Users/[USERNAME]/Documents/Codelab/lbconfig.yaml \ --global
ایجاد رابط کاربری HTTP
مرحله آخر در ایجاد متعادلکننده بار، ایجاد frontend است. این کار آدرس IP که قبلاً رزرو کردهاید را به نقشه URL متعادلکننده بار که ایجاد کردهاید، نگاشت میکند.
از پوسته ابری
gcloud compute target-http-proxies create http-lb-proxy-adv \
--url-map=web-map-http
در مرحله بعد باید یک قانون ارسال سراسری ایجاد کنید که آدرس IP رزرو شده قبلی را به پروکسی HTTP نگاشت کند.
از پوسته ابری
gcloud compute forwarding-rules create http-content-rule \
--load-balancing-scheme EXTERNAL_MANAGED \
--address=lb-ipv4-2 \
--global \
--target-http-proxy=http-lb-proxy-adv \
--ports=80
۶. تأیید کنید که ویژگیهای پیشرفته ترافیک کار میکنند
برای تأیید اینکه ویژگی تقسیم ترافیک پیادهسازی شده کار میکند، باید مقداری بار ایجاد کنید. برای انجام این کار، یک ماشین مجازی جدید برای شبیهسازی بار ایجاد خواهیم کرد.
ایجاد قانون فایروال Allow SSH
برای اینکه بتوانیم از طریق SSH به ماشین مجازی که قرار است از آن ترافیک ایجاد کنیم، متصل شویم، ابتدا باید یک قانون فایروال ایجاد کنیم که امکان عبور ترافیک SSH را به ماشین مجازی فراهم کند.
از پوسته ابری
gcloud compute firewall-rules create fw-allow-ssh \
--network=httplbs \
--action=allow \
--direction=ingress \
--target-tags=allow-ssh \
--rules=tcp:22
خروجی
NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED fw-allow-ssh httplbs INGRESS 1000 tcp:22 False
ایجاد Siege-vm
حالا شما siege-vm را ایجاد خواهید کرد که برای تولید بار از آن استفاده خواهید کرد.
از پوسته ابری
gcloud compute instances create siege-vm \
--network=httplbs \
--zone=us-east4-c \
--machine-type=e2-medium \
--tags=allow-ssh,http-server \
--metadata=startup-script='sudo apt-get -y install siege'
خروجی
NAME ZONE MACHINE_TYPE INTERNAL_IP EXTERNAL_IP STATUS siege-vm us-east4-c e2-medium 10.150.0.3 34.85.218.119 RUNNING
سپس میتوانید با استفاده از SSH به ماشین مجازی که ایجاد کردهاید، متصل شوید. پس از ایجاد، روی SSH کلیک کنید تا ترمینال اجرا شود و اتصال برقرار شود.
پس از اتصال، دستور زیر را برای تولید بار اجرا کنید. از آدرس IP که قبلاً برای متعادلکننده بار خارجی http رزرو کردهاید، استفاده کنید.
از پوسته ابری
siege -c 250 http://[$lb-ipv4-2]/roundrobbin
خروجی
New configuration template added to /home/cloudcurriculumdeveloper/.siege Run siege -C to view the current settings in that file [alert] Zip encoding disabled; siege requires zlib support to enable it: No such file or directory ** SIEGE 4.0.2 ** Preparing 250 concurrent users for battle. The server is now under siege...
بررسی توزیع بار
اکنون که Siege در حال اجرا است، زمان آن رسیده است که بررسی کنید ترافیک به طور مساوی بین گروههای نمونه مدیریتشده شرقی و غربی توزیع میشود، علاوه بر این میتوانید بررسی کنید که آیا انعکاس ترافیک کار میکند و ترافیک به گروه نمونه مدیریتشده مرکزی ارسال میشود یا خیر.
در کنسول ابری، در منوی ناوبری، روی Network Services > Load balancing کلیک کنید. گزینه web-map-http را برای متعادلسازی بار انتخاب کنید. به تب Monitoring بروید تا نمودار زیر را مشاهده کنید.

شما قادر خواهید بود تقسیم ترافیک را به صورت بلادرنگ برای این MIG مشاهده کنید. ترافیک به طور مساوی تقسیم شده است زیرا شما تقسیم رابین را به صورت 50/50 چرخشی پیکربندی کردهاید.
برای بررسی اینکه سیاست انعکاس ترافیکی که ایجاد کردهاید کار میکند، باید میزان استفاده از گروه نمونه مدیریتشده central-backend-service را بررسی کنید. برای انجام این کار، به بخش compute، سپس compute engine، سپس instance groups بروید و us-central1-mig را انتخاب کنید. سپس، به تب monitoring بروید.

نمودارهایی را مشاهده خواهید کرد که نشان میدهند ترافیک به این گروه نمونه مدیریتشده منعکس شده است.
محاصره را متوقف کنید
حالا که نشان دادید تقسیم ترافیک پیشرفته کار میکند، وقت آن رسیده که محاصره را متوقف کنید. برای انجام این کار، به ترمینال SSH در siege-vm برگردید و CTRL+C را فشار دهید تا محاصره متوقف شود.
اعتبارسنجی هدر پاسخ ارسالی
قبل از پاکسازی، میتوانید به سرعت تأیید کنید که هدر پاسخ مناسب توسط متعادلکننده بار http ارسال میشود. شما آن را طوری پیکربندی کردهاید که تست هدر را با مقدار محتوا ارسال کند. اجرای دستور curl از cloud shell پاسخ مورد انتظار را میدهد.
از پوسته ابری
curl -svo /dev/null http://lb-ipv4-2/roundrobbin
خروجی
* Trying lb-ipv4-2..
* TCP_NODELAY set
* Connected to lb-ipv4-2 ( lb-ipv4-2) port 80 (#0)
> GET /roundrobbin HTTP/1.1
> Host: lb-ipv4-2
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 404 Not Found
< date: Wed, 10 Nov 2021 17:05:27 GMT
< server: envoy
< Content-Length: 273
< content-type: text/html; charset=iso-8859-1
< via: 1.1 google
< test: value
<
{ [273 bytes data]
* Connection #0 to host 34.149.2.26 left intact
* Closing connection 0
۷. تمیز کردن آزمایشگاه
حالا که کارمان با محیط آزمایشگاهی تمام شد، وقت آن رسیده که آن را از بین ببریم. لطفاً دستورات زیر را برای حذف محیط آزمایشی اجرا کنید.
از پوسته ابری
gcloud compute instances delete siege-vm --zone=us-east4-c gcloud compute forwarding-rules delete http-content-rule --global gcloud compute target-http-proxies delete http-lb-proxy-adv gcloud compute url-maps delete web-map-http gcloud compute backend-services delete east-backend-service --global gcloud compute backend-services delete west-backend-service --global gcloud compute backend-services delete central-backend-service --global gcloud compute addresses delete lb-ipv4-2 --global gcloud compute health-checks delete http-basic-check gcloud compute instance-groups managed delete us-east1-mig --zone us-east1-b gcloud compute instance-groups managed delete us-west1-mig --zone us-west1-a gcloud compute instance-groups managed delete us-central1-mig --zone us-central1-a gcloud compute instance-templates delete "us-east1-template" gcloud compute instance-templates delete "us-west1-template" gcloud compute instance-templates delete "us-central1-template" gcloud compute firewall-rules delete httplb-allow-http-rule gcloud compute firewall-rules delete fw-allow-ssh gcloud compute networks delete httplbs
۸. تبریک میگویم!
شما دوره آموزشی External HTTPs LB را با Advanced Traffic Management (Envoy) Codelab به پایان رساندهاید!
آنچه ما پوشش دادهایم
- نحوه راهاندازی یک گروه نمونه مدیریتشده و قوانین VPC و فایروال مرتبط
- نحوه استفاده از ویژگیهای پیشرفته مدیریت ترافیک متعادلکننده بار جدید
- چگونه میتوان تأیید کرد که ویژگیهای مدیریت ترافیک پیشرفته طبق برنامه کار میکنند.
مراحل بعدی
- برخی از ویژگیهای پیشرفته مسیریابی دیگر مانند بازنویسی URL، اضافه کردن هدرهای CORS و موارد دیگر را امتحان کنید ( لینک )