התכונה Service Extensions מאפשרת למאזני עומסים נתמכים של אפליקציות לשלוח קריאות משירותי הבק-אנד של הקריאות מנתיב עיבוד הנתונים, שמנוהלים על ידי המשתמש. כך מאזני עומסים של אפליקציות יכולים להשתמש בלוגיקה מותאמת אישית בנתיב העיבוד. בדף הזה מוסבר איך להגדיר שירות קצה עורפי של קריאה ל-API שמנוהל על ידי המשתמש.
סקירה כללית על תוספים של מאזן עומסים של אפליקציות זמינה במאמר סקירה כללית על תוספים של Cloud Load Balancing.
לפני שמתחילים
מוודאים שיש לכם תפקיד עריכה או בעלות בפרויקט, או את תפקידי ה-IAM הבאים ב-Compute Engine:
- כדי ליצור מופעים:
compute.instanceAdmin.v1 - כדי ליצור רכיבים של Cloud Load Balancing:
compute.networkAdmin
- כדי ליצור מופעים:
מפעילים את ממשקי ה-API הבאים: Compute Engine API ו-Network Services API.
המסוף
נכנסים לדף Enable access to APIs במסוף Google Cloud .
פועלים לפי ההוראות.
gcloud
משתמשים בפקודה
gcloud services enable:gcloud services enable compute.googleapis.com networkservices.googleapis.com
יוצרים ומגדירים מאזן עומסים של אפליקציות שתומך בתוספים. בדוגמה הזו, מגדירים מאזן עומסים פנימי אזורי של אפליקציות עם קצה עורפי של קבוצת מכונות וירטואליות. משתמשים בערכים לדוגמה שצוינו.
לתוספים של מסלולים בלבד. מגדירים שירות לקצה העורפי נוסף ומעדכנים את מפת ה-URL כדי להוסיף התאמה למארח שמנתבת תעבורת נתונים לשירות לקצה העורפי הזה עבור כל תעבורת הנתונים עם מארח HTTP שתואם לתנאי שצוין.
המסוף
נכנסים לדף Create an instance במסוף Google Cloud .
מציינים את הערכים לדוגמה הבאים:
- Name (שם):
l7-ilb-backend2-vm - תגים:
allow-sshוload-balanced-backend - Zone (תחום):
us-west1-a - רשת:
lb-network - Subnetwork:
backend-subnet - תמונה:
debian-11 - Family:
debian-cloud אפשרויות מתקדמות > ניהול > אוטומציה:
'#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl echo "Page served from second backend service" | tee /var/www/html/index.html systemctl restart apache2'
- Name (שם):
יצירת קבוצות של מופעי מכונה לא מנוהלים
מציינים את הערכים לדוגמה הבאים:
- Name (שם):
l7-ilb-backend-service2-ig - Zone (תחום):
us-west1-a
- Name (שם):
מוסיפים את המכונה הווירטואלית החדשה לקבוצת המופעים.
בקטע VM instances (מכונות וירטואליות), מציינים
l7-ilb-backend2-vm.נכנסים לדף Load balancing במסוף Google Cloud .
מעדכנים את מאזן העומסים על ידי יצירת שירות לקצה העורפי והוספת קצה עורפי לשירות.
בשירות לקצה העורפי, מציינים את ערכי הדוגמה הבאים:
- Name (שם):
l7-ilb-backend-service2 - פרוטוקול:
HTTP - בדיקת תקינות > שם:
l7-ilb-basic-check - בדיקת תקינות > אזור:
us-west1
בצד השרת, מציינים את ערכי הדוגמה הבאים:
- קבוצת מכונות:
l7-ilb-backend-service2-ig - מצב איזון:
Utilization
- Name (שם):
מוסיפים התאמה למארח למפת ה-URL של שירות הקצה העורפי.
מציינים את הערכים לדוגמה הבאים:
- Name (שם):
l7-ilb-map - מארח:
service-extensions.com - נתיב:
callouts - פרוטוקול:
HTTP - קצה עורפי:
l7-ilb-backend-service2
- Name (שם):
gcloud
יוצרים מופע של VM. משתמשים בפקודה
gcloud compute instances createעם ערכי הדוגמה הבאים:gcloud compute instances create l7-ilb-backend2-vm \ --zone=us-west1-a \ --network=lb-network \ --subnet=backend-subnet \ --tags=allow-ssh,load-balanced-backend \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl echo "Page served from second backend service" | tee /var/www/html/index.html systemctl restart apache2'יוצרים קבוצה של מופעי מכונה לא מנוהלים. משתמשים בפקודה
gcloud compute instance-groups unmanaged createעם ערכי הדוגמה הבאים:gcloud compute instance-groups unmanaged create l7-ilb-backend-service2-ig \ --zone us-west1-a
מוסיפים את המכונה הווירטואלית החדשה לקבוצת המופעים. משתמשים בפקודה
gcloud compute instance-groups unmanaged add-instancesעם ערכי הדוגמה הבאים:gcloud compute instance-groups unmanaged add-instances l7-ilb-backend-service2-ig \ --zone=us-west1-a \ --instances=l7-ilb-backend2-vm
יוצרים שירות לקצה העורפי. משתמשים בפקודה
gcloud compute backend-services createעם ערכי הדוגמה הבאים:gcloud compute backend-services create l7-ilb-backend-service2 \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP \ --health-checks=l7-ilb-basic-check \ --health-checks-region=us-west1 \ --region=us-west1
מוסיפים קצה עורפי לשירות הקצה העורפי. משתמשים בפקודה
gcloud compute backend-services add-backendעם ערכי הדוגמה הבאים:gcloud compute backend-services add-backend l7-ilb-backend-service2 \ --balancing-mode=UTILIZATION \ --instance-group=l7-ilb-backend-service2-ig \ --instance-group-zone=us-west1-a \ --region=us-west1
מוסיפים התאמה למארח למפת URL של שירות לקצה העורפי. משתמשים בפקודה
gcloud compute url-maps add-path-matcherעם ערכי הדוגמה הבאים:gcloud compute url-maps add-path-matcher l7-ilb-map \ --path-matcher-name=callouts \ --default-service=l7-ilb-backend-service2 \ --new-hosts=service-extensions.com \ --region=us-west1
הגדרת שירות קצה עורפי של יתרונות מרכזיים
בדוגמה הזו, יש שרת תוספים בסיסי שמבוסס על Python ומיישם את ext_proc gRPC API של Envoy. קובץ Docker עם השרת הזה נמצא בכתובת us-docker.pkg.dev/service-extensions-samples/callouts/python-example-basic:main במאגר Service Extensions GitHub repository של Google Cloud. מאגר המידע הזה מכיל כמה דוגמאות נוספות של שרתי Python ו-Go של ext_proc לביצוע משימות כמו שינוי כותרות ושינוי גוף.
כדי ליצור ולהגדיר שירות לקצה העורפי של בקשה להצעת מחיר:
יוצרים מכונה וירטואלית (VM) עבור שירות הקצה העורפי של ההתקשרות, שמריץ את שרת התוסף לדוגמה של Python.
המסוף
יצירת מכונה באמצעות קובץ אימג' של קונטיינר.
נכנסים לדף Create an instance במסוף Google Cloud .
מציינים את הערכים לדוגמה הבאים:
- Name (שם):
callouts-vm - Zone (תחום):
us-west1-a - רשת:
lb-network - Subnetwork:
backend-subnet - תגים:
allow-sshוload-balanced-backend - קובץ אימג' של קונטיינר:
us-docker.pkg.dev/service-extensions-samples/callouts/python-example-basic:main
- Name (שם):
gcloud
יצירת מכונה באמצעות קובץ אימג' של קונטיינר. משתמשים בפקודה
gcloud compute instances create-with-containerעם ערכי הדוגמה הבאים:gcloud compute instances create-with-container callouts-vm \ --container-image=us-docker.pkg.dev/service-extensions-samples/callouts/python-example-basic:main \ --network=lb-network \ --subnet=backend-subnet \ --zone=us-west1-a \ --tags=allow-ssh,load-balanced-backend
מוסיפים את המכונה הווירטואלית לקבוצת מופעים לא מנוהלת.
המסוף
יצירת קבוצות של מופעי מכונה לא מנוהלים
נכנסים לדף Instance groups במסוף Google Cloud .
מציינים את הערכים לדוגמה הבאים:
- Name (שם):
callouts-ig - Zone (תחום):
us-west1-a
- Name (שם):
-
במיפוי ניוד, מציינים את שמות הניוד והערכים האלה:
http:80ו-grpc:443. מוסיפים את המכונה הווירטואלית החדשה לקבוצת המופעים.
בקטע VM instances (מכונות וירטואליות), מציינים
callouts-vm.
gcloud
יוצרים קבוצה של מופעי מכונה לא מנוהלים. משתמשים בפקודה
gcloud compute instance-groups unmanaged createעם ערכי הדוגמה הבאים:gcloud compute instance-groups unmanaged create callouts-ig \ --zone=us-west1-a
מגדירים יציאה לקבוצת המכונות. משתמשים בפקודה
gcloud compute instance-groups unmanaged set-named-portsעם ערכי הדוגמה הבאים:gcloud compute instance-groups unmanaged set-named-ports callouts-ig \ --named-ports=http:80,grpc:443 \ --zone=us-west1-a
מוסיפים את המכונה הווירטואלית החדשה לקבוצת המופעים הלא מנוהלת. משתמשים בפקודה
gcloud compute instance-groups unmanaged add-instancesעם הערכים לדוגמה הבאים:gcloud compute instance-groups unmanaged add-instances callouts-ig \ --zone=us-west1-a \ --instances=callouts-vm
יוצרים שירות קצה עורפי ליתרונות מרכזיים ומוסיפים קצה עורפי. בדומה לשרתי קצה עורפיים אחרים, יכול להיות ששרתי יתרונות מרכזיים יזדקקו לכללים לחומת אש כדי לאפשר תעבורת נתונים של שרת proxy.
המסוף
יוצרים שירות לקצה העורפי של callout שמשתמש בפרוטוקול HTTP/2 ויש לו בדיקת תקינות HTTP.
נכנסים לדף Backends של Cloud Load Balancing במסוף Google Cloud .
מוסיפים שירות לקצה עורפי אזורי עם ערכי הדוגמה הבאים:
- Name (שם):
l7-ilb-callout-service - אזור:
us-west1 - סוג מאזן העומסים:
Regional external Application Load Balancer (EXTERNAL_MANAGED) - פרוטוקול:
HTTP2 - שם היציאה:
grpc - בדיקת תקינות > שם:
callouts-hc - בדיקת תקינות > מספר יציאה:
80 - כללי מדיניות אבטחה של Cloud Armor לשרתי backend:
None
- Name (שם):
מוסיפים את קבוצת המכונות עם שרת התוסף כקצה עורפי לשירות הקצה העורפי. קבוצת המכונות מריצה את השירות
ext_proc.מציינים את הערכים לדוגמה הבאים:
- קבוצת מכונות:
callouts-ig - מצב איזון:
Utilization
- קבוצת מכונות:
gcloud
יוצרים בדיקת תקינות בסיסית של HTTP למכונה. משתמשים בפקודה
gcloud compute health-checks create httpעם ערכי הדוגמה הבאים:gcloud compute health-checks create http callouts-hc \ --region=us-west1 \ --port=80
יוצרים שירות לקצה העורפי של callout שמשתמש בפרוטוקול HTTP/2. משתמשים בפקודה
gcloud compute backend-services create.gcloud compute backend-services create l7-ilb-callout-service \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTP2 \ --port-name=grpc \ --health-checks=callouts-hc \ --health-checks-region=us-west1 \ --region=us-west1
מוסיפים את קבוצת המכונות עם שרת התוסף בתור קצה עורפי לשירות הקצה העורפי. קבוצת המכונות מריצה את השירות
ext_proc. משתמשים בפקודהgcloud compute backend-services add-backendעם הערכים לדוגמה הבאים:gcloud compute backend-services add-backend l7-ilb-callout-service \ --balancing-mode=UTILIZATION \ --instance-group=callouts-ig \ --instance-group-zone=us-west1-a \ --region=us-west1
אחרי שמגדירים שירות backend, אפשר להגדיר תוספים של route, authorization ו-traffic.