1. مقدمه
به LB HTTP های خارجی با Codelab مدیریت ترافیک پیشرفته (Envoy) خوش آمدید!
آخرین نسخه HTTP(S) External Load Balancer با مدیریت ترافیک پیشرفته شامل تمام ویژگیهای Load Balancer خارجی HTTP(S) کلاسیک ما است، اما با فهرستی از قابلیتهای مدیریت ترافیک پیشرفته. برخی از این قابلیتها برای Load Balancers جدید هستند و برخی ویژگیهای پیشرفتهتر را برای قابلیتهای موجود فراهم میکنند. فهرست جزئی از این قابلیت ها عبارتند از:
- تقسیم ترافیک وزنی
- درخواست Mirroring
- تشخیص بیرونی
- درخواست مجدد
- تزریق خطا
- گزینه های بیشتر Backend Session Affinity
- گزینه های اضافی تبدیل سرصفحه
- اشتراک منابع متقابل (CORS)
- الگوریتم های متعادل کننده بار جدید
چیزی که یاد خواهید گرفت
- نحوه راه اندازی یک گروه نمونه مدیریت شده و قوانین VPC و فایروال مرتبط
- نحوه استفاده از ویژگی های پیشرفته مدیریت ترافیک بار متعادل کننده جدید
- چگونه می توان تأیید کرد که ویژگی های پیشرفته مدیریت ترافیک همانطور که در نظر گرفته شده است کار می کنند.
آنچه شما نیاز دارید
- شبکه های اولیه و دانش HTTP
- دانش اولیه خط فرمان یونیکس/لینوکس
توپولوژی Codelab و مورد استفاده
شکل 1 - توپولوژی مسیریابی بار متعادل کننده بار HTTP
در طول این آزمایشگاه کد، سه گروه نمونه مدیریت شده، یکی در شرق، غرب و مرکزی راه اندازی خواهید کرد. شما یک بار متعادل کننده جهانی https خارجی ایجاد خواهید کرد. متعادل کننده بار از چندین ویژگی از لیست قابلیت های پیشرفته ای که متعادل کننده بار مبتنی بر فرستاده پشتیبانی می کند استفاده می کند. پس از استقرار، مقداری بار شبیه سازی شده ایجاد می کنید و بررسی می کنید که تنظیماتی که تنظیم کرده اید به درستی کار می کنند.
2. راه اندازی و الزامات
تنظیم محیط خود به خود
- به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
- نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود و می توانید هر زمان که بخواهید آن را به روز کنید.
- شناسه پروژه باید در تمام پروژههای Google Cloud منحصربهفرد باشد و تغییرناپذیر باشد (پس از تنظیم نمیتوان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید به شناسه پروژه ارجاع دهید (و معمولاً به عنوان
PROJECT_ID
شناخته میشود)، بنابراین اگر آن را دوست ندارید، یک نمونه تصادفی دیگر ایجاد کنید، یا میتوانید شناسه پروژه را امتحان کنید و ببینید در دسترس است. سپس پس از ایجاد پروژه "یخ زده" می شود. - یک مقدار سوم وجود دارد، یک شماره پروژه که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
- در مرحله بعد، برای استفاده از منابع Cloud/APIها، باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه نباید هزینه زیادی داشته باشد، اگر اصلاً باشد. برای اینکه منابع را خاموش کنید تا بیش از این آموزش متحمل صورتحساب نشوید، دستورالعملهای «پاکسازی» را که در انتهای Codelab یافت میشود دنبال کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را راه اندازی کنید
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.
از کنسول GCP روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:
تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:
این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این آزمایشگاه به سادگی با یک مرورگر قابل انجام است.
قبل از شروع
در داخل Cloud Shell، مطمئن شوید که شناسه پروژه شما تنظیم شده است
پروژه لیست پیکربندی gcloud
پروژه مجموعه پیکربندی gcloud [YOUR-PROJECT-NAME]
PROJECT_ID=[نام پروژه شما]
پژواک $PROJECT_ID
API ها را فعال کنید
تمام خدمات لازم را فعال کنید
gcloud services enable compute.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com
3. شبکه VPC را ایجاد کنید
یک شبکه VPC ایجاد کنید
از Cloud Shell
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 خارجی وب سایت برنامه آزمایشی در پورت 80 برای ترافیک http مورد استفاده قرار خواهد گرفت.
از Cloud Shell
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
4. گروه های نمونه مدیریت شده را راه اندازی کنید
شما باید گروههای نمونه مدیریت شده را راهاندازی کنید که شامل الگوهایی برای منابع پشتیبان مورد استفاده توسط HTTP Load Balancer باشد. ابتدا نمونههایی را ایجاد میکنیم که پیکربندی ماشینهای مجازی را برای هر منطقه تعریف میکنند. در مرحله بعد، برای یک Backend در هر منطقه، یک Managed Instance Group ایجاد می کنیم که به یک Instance Template ارجاع می دهد.
گروههای نمونه مدیریتشده میتوانند منطقهای یا منطقهای باشند. برای این تمرین آزمایشگاهی ما سه گروه نمونه مدیریت شده منطقه ای ایجاد خواهیم کرد، یکی در us-east1، یکی در us-west1 و دیگری در us-central1.
در این بخش، میتوانید یک اسکریپت راهاندازی از پیش ساخته شده را ببینید که پس از ایجاد نمونه به آن ارجاع داده میشود. این اسکریپت راه اندازی قابلیت های وب سرور را نصب و فعال می کند که ما از آنها برای شبیه سازی یک برنامه وب استفاده خواهیم کرد. با خیال راحت این اسکریپت را بررسی کنید.
الگوهای نمونه شرقی، غربی و مرکزی را ایجاد کنید
اولین قدم ایجاد الگوی نمونه us-east-1 است.
از Cloud Shell
gcloud compute instance-templates create us-east1-template \ --region=us-east1 \ --network=httplbs \ --tags=http-server, \ --image-family=debian-9 \ --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 است.
از Cloud Shell
gcloud compute instance-templates create us-west1-template \ --region=us-west1 \ --network=httplbs \ --tags=http-server, \ --image-family=debian-9 \ --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 است.
از Cloud Shell
gcloud compute instance-templates create us-central1-template \ --region=us-central1 \ --network=httplbs \ --tags=http-server, \ --image-family=debian-9 \ --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 زیر ایجاد شده اند:
از Cloud Shell
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
گروههای نمونه مدیریت شده شرقی، غربی و مرکزی را ایجاد کنید
اکنون باید یک گروه نمونه مدیریت شده از الگوهای نمونه ای که قبلا ایجاد کردیم ایجاد کنیم.
از Cloud Shell
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
از Cloud Shell
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
از Cloud Shell
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 زیر می توانیم تأیید کنیم که گروه های نمونه ما با موفقیت ایجاد شده اند:
از Cloud Shell
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 -> Instances VM بروید. اطمینان حاصل کنید که نمونه های جدید شما (به عنوان مثال us-east1-mig-xxx) مطابق با تعاریف گروه نمونه آنها ایجاد شده است.
اکنون، یک درخواست وب در مرورگر خود از آن بنویسید تا مطمئن شوید که سرور وب در حال اجرا است (این ممکن است یک دقیقه طول بکشد تا شروع شود). در صفحه نمونه های VM در زیر Compute Engine، نمونه ای را انتخاب کنید که توسط گروه نمونه خود ایجاد شده است و روی IP خارجی (عمومی) آن کلیک کنید.
یا در مرورگر خود به http://<IP_Address> بروید
5. Load Balancer را راه اندازی کنید
ایجاد چک سلامت
ابتدا باید یک بررسی بهداشتی اساسی ایجاد کنیم تا مطمئن شویم که خدمات ما با موفقیت راه اندازی و اجرا می شود. ما یک بررسی اولیه سلامت ایجاد خواهیم کرد، سفارشی سازی های پیشرفته تری در دسترس است.
از Cloud Shell
gcloud compute health-checks create http http-basic-check \ --port 80
رزرو آدرس IP خارجی
برای این مرحله باید یک آدرس IP ثابت جهانی را رزرو کنید که بعداً به Load Balancer متصل می شود.
از Cloud Shell
gcloud compute addresses create lb-ipv4-2 \ --ip-version=IPV4 \ --global
مطمئن شوید که آدرس IP رزرو شده را یادداشت کنید.
gcloud compute addresses describe lb-ipv4-2 \ --format="get(address)" \ --global
خدمات Backend ایجاد کنید
اکنون باید برای هر یک از گروههای نمونه مدیریت شده که قبلا ایجاد کردهایم یک سرویس Backend ایجاد کنیم. یکی برای شرق، غرب و مرکز.
ایجاد یک سرویس پشتیبان برای گروه نمونه مدیریت شده شرق.
از Cloud Shell
gcloud compute backend-services create east-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
ایجاد یک سرویس پشتیبان برای گروه نمونه مدیریت شده غرب.
از Cloud Shell
gcloud compute backend-services create west-backend-service \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
ایجاد یک سرویس پشتیبان برای گروه نمونه مدیریت شده مرکزی.
از Cloud Shell
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 اضافه کنید.
از Cloud Shell
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 اضافه کنید.
از Cloud Shell
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 اضافه کنید.
از Cloud Shell
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 تحت تأثیر این پیکربندیها قرار میگیرد. ما مشخص کردهایم که 50 درصد ترافیک به سمت سرویس east-backend و 50 درصد از ترافیک باید به سمت سرویس غربی باشد. ما همچنین یک مقدار سرصفحه پاسخ اضافه کردهایم:{test} که در همه پاسخها وجود دارد. در نهایت، اضافه کردهایم که تمام ترافیک باید به سرویس مرکزی پشتیبان منعکس شود. ترافیک تکراری است و فقط برای اهداف آزمایشی به اینجا ارسال می شود.
مثال را به عنوان یک فایل .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 را ذخیره می کنید، مسیر منبع متفاوت خواهد بود.
از Cloud Shell
gcloud compute url-maps import web-map-http \ --source /Users/[USERNAME]/Documents/Codelab/lbconfig.yaml \ --global
HTTP Frontend ایجاد کنید
آخرین مرحله در ایجاد تعادل بار، ایجاد قسمت جلویی است. این نشانی IP را که قبلا رزرو کرده بودید به نقشه URL متعادل کننده بار که ایجاد کردید نگاشت می کند.
از Cloud Shell
gcloud compute target-http-proxies create http-lb-proxy-adv \ --url-map=web-map-http
در مرحله بعد باید یک قانون حمل و نقل جهانی ایجاد کنید که آدرس IP رزرو شده قبلی را به پروکسی HTTP ترسیم می کند.
از Cloud Shell
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
6. بررسی کنید که ویژگی های پیشرفته ترافیک کار می کنند
برای تأیید اینکه ویژگی تقسیم ترافیک پیاده سازی شده کار می کند، باید مقداری بار ایجاد کنید. برای این کار ما یک VM جدید برای شبیه سازی بار ایجاد می کنیم.
قانون Allow SSH Firewall را ایجاد کنید
برای SSH به VM که ما از شما ترافیک تولید می کنیم، ابتدا باید یک قانون فایروال ایجاد کنید که به ترافیک SSH به ماشین مجازی اجازه دهد.
از Cloud Shell
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 را ایجاد می کنید که از آن برای تولید بار استفاده می کنید
از Cloud Shell
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 را در VMی که ایجاد کرده اید SSH کنید. پس از ایجاد، روی SSH کلیک کنید تا ترمینال راه اندازی شود و متصل شوید.
پس از اتصال، دستور زیر را برای تولید بار اجرا کنید. از آدرس IP که قبلاً برای متعادل کننده بار خارجی http رزرو کرده بودید استفاده کنید.
از Cloud Shell
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 در حال اجرا است، زمان بررسی این است که ترافیک به طور مساوی بین گروههای نمونه مدیریت شده شرقی و غربی توزیع شده است، علاوه بر این، میتوانید بررسی کنید که آینهبندی ترافیک کار میکند و ترافیک به گروه نمونه مدیریت شده مرکزی ارسال میشود.
در Cloud Console، در منوی Navigation، روی Network Services > Load Balance کلیک کنید. load balancer web-map-http را انتخاب کنید. به تب مانیتورینگ بروید و نمودار زیر را مشاهده خواهید کرد.
شما می توانید تقسیم ترافیک را در زمان واقعی به این MIG مشاهده کنید. ترافیک به طور مساوی تقسیم می شود زیرا شما یک تقسیم گرد 50/50 را پیکربندی کرده اید.
برای بررسی اینکه آیا خط مشی انعکاسی ترافیکی که ایجاد کرده اید کار می کند، باید میزان استفاده از گروه نمونه مدیریت شده با سرویس مرکزی پشتیبان را بررسی کنید. برای انجام این کار، به محاسبات، موتور محاسباتی، گروههای نمونه بروید و us-central1-mig را انتخاب کنید. در مرحله بعد به برگه مانیتورینگ بروید.
نمودارهای پر شده را خواهید دید که نشان می دهد ترافیک به این گروه نمونه مدیریت شده منعکس شده است.
محاصره را متوقف کنید
اکنون که نشان دادید تقسیم ترافیک پیشرفته کار می کند، زمان توقف محاصره فرا رسیده است. برای انجام این کار به ترمینال 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
7. پاکسازی آزمایشگاهی
حالا که کارمان با محیط آزمایشگاه تمام شد، وقت آن است که آن را خراب کنیم. لطفا دستورات زیر را برای حذف محیط تست اجرا کنید.
از Cloud Shell
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
8. تبریک می گویم!
شما LB HTTP های خارجی را با Advanced Traffic Management (Envoy) Codelab تکمیل کرده اید!
آنچه را پوشش داده ایم
- نحوه راه اندازی یک گروه نمونه مدیریت شده و قوانین VPC و فایروال مرتبط
- نحوه استفاده از ویژگی های پیشرفته مدیریت ترافیک بار متعادل کننده جدید
- چگونه می توان تأیید کرد که ویژگی های پیشرفته مدیریت ترافیک همانطور که در نظر گرفته شده است کار می کنند.
مراحل بعدی
- برخی از دیگر ویژگی های مسیریابی پیشرفته مانند بازنویسی URL، افزودن سرصفحه CORS و بسیاری موارد دیگر را امتحان کنید ( پیوند )