1. מבוא
במדריך הזה מפורטות הוראות להעברת מאזן עומסי רשת קיים מהקצה העורפי של מאגר היעד לשירות לקצה עורפי אזורי.
מה תלמדו
- להבין את היתרונות של שירותים לקצה עורפי אזורי
- יצירת מאזן עומסי רשת עם מאגרי יעד
- מבצעים אימות של מאגר היעד
- יצירת שירות לקצה עורפי אזורי באמצעות קבוצות מכונות לא מנוהלות
- ביצוע העברת מאגר יעד להעברת שירות לקצה העורפי
- ביצוע אימות שירותים לקצה העורפי
מה צריך להכין
- ניסיון עם מאזני עומסים
2. סקירה כללית של השירותים לקצה העורפי האזורי לאיזון עומסים ברשת
בעזרת Network Load Balancing, לקוחות Google Cloud יכולים להשתמש בכלי עוצמתי להפצת תעבורת נתונים חיצונית בין מכונות וירטואליות באזור של Google Cloud. כדי להקל על הלקוחות שלנו לנהל תעבורת נתונים נכנסת ולשלוט באופן הפעולה של מאזן העומסים, לאחרונה הוספנו ל-Network Load Balancing תמיכה בשירותים לקצה העורפי. כך מתאפשרת שיפור בקנה המידה, המהירות, הביצועים והחוסן של הלקוחות שלנו בפריסה שלהם – והכול קל לניהול.
אנחנו תומכים עכשיו בשירותים לקצה העורפי באמצעות איזון עומסים ברשת – שיפור משמעותי לעומת הגישה הקודמת, מאגרי יעד. שירות לקצה העורפי מגדיר איך מאזני העומסים שלנו מפיצים תעבורת נתונים נכנסת לקצוות עורפיים מחוברים, ומספק בקרה פרטנית על אופן הפעולה של מאזן העומסים.
3. יתרונות של שירותים לקצה עורפי אזורי
בחירת שירות לקצה העורפי האזורי כמאזן העומסים מספקת כמה יתרונות לסביבה שלכם.
מחוץ לבית, שירותים לקצה העורפי האזורי מספקים:
- בדיקת תקינות ברמת דיוק גבוהה באמצעות בדיקת תקינות מאוחדת – עכשיו בעזרת שירותים לקצה העורפי האזורי אפשר עכשיו לנצל את מלוא היתרונות של תכונות בדיקת התקינות של איזון העומסים, בלי להתפשר על האילוצים של בדיקות תקינות של HTTP מדור קודם. מטעמי תאימות, בדיקות תקינות של TCP עם תמיכה במחרוזות מותאמות אישית של בקשות ותגובה או HTTPS היו בקשה נפוצה של לקוחות איזון עומסי רשת.
- עמידות טובה יותר לקבוצות יתירות כשל – אם משתמשים בקבוצות יתירות כשל, ניתן להקצות קבוצת מכונות כראשית וקבוצה נוספת כמשנית, ותעבורת הנתונים מסוג יתירות כשל כשתקינות המכונות בקבוצה הפעילה יורדת מתחת לסף מסוים. כדי לקבל שליטה רבה יותר על מנגנון הכשל, אפשר להשתמש בסוכן כמו keepalive או pacemaker, או חשיפה של בדיקת תקינות תקינה או נכשלת על סמך שינויים במצב של המכונה בקצה העורפי.
- יכולת התאמה וזמינות גבוהה באמצעות קבוצות מכונות מנוהלות – שירותים לקצה עורפי אזורי תומכים בקבוצות עור מנוהלות בתור קצוות עורפיים. עכשיו אפשר לציין תבנית למכונות הווירטואליות בקצה העורפי ולהשתמש בהתאמה לעומס (autoscaling) על סמך ניצול המעבד (CPU) או מדדי מעקב אחרים.
בנוסף למה שצוין למעלה, ניתן להשתמש בריקון החיבור לפרוטוקול מוכוון-חיבור (TCP) וזמן תכנות מהיר יותר לפריסות גדולות.
הטופולוגיה של רשת Codelab
במדריך הזה מפורטות הוראות להעברת מאזן עומסי רשת קיים מהקצה העורפי של מאגר היעד לשירות לקצה עורפי אזורי.
מעבר לשירות לקצה עורפי אזורי מאפשר לנצל את היתרונות של תכונות כמו בדיקות תקינות לא מדור קודם (ל-TCP , SSL , HTTP , HTTPS ו-HTTP/2), קבוצות של מכונות מנוהלות, ריקון החיבור ומדיניות בנושא כשלים בגיבוי.
במדריך הזה מוסבר איך להעביר את מאזן עומסי הרשת לדוגמה של מאגר היעד, לשימוש בשירות לקצה עורפי אזורי
לפני: איזון עומסי רשת עם מאגר יעד
כך תיראה פריסת מאזן עומסי רשת מבוססת-שירות של הקצה העורפי.
אחרי: איזון עומסי רשת עם שירות לקצה עורפי אזורי
בדוגמה הזו יצאנו מנקודת הנחה שיש לכם מאזן עומסי רשת מסורתי שמבוסס על מאגר יעד, עם שתי מכונות בתחום us-central-1a ו-2 מכונות בתחום us-central-1c.
השלבים הכלליים הנדרשים למעבר כזה הם:
- צריך לקבץ את המופעים של מאגרי היעד לקבוצות של מכונות. שירותים לקצה העורפי פועלים רק עם קבוצות של מכונות מנוהלות או לא מנוהלות. הערה: אין הגבלה על מספר המופעים שאפשר לכלול במאגר יעד אחד, אבל לקבוצות של מכונות יש גודל מקסימלי. אם מאגר היעד כולל יותר ממספר המופעים המקסימלי, צריך לפצל את הקצוות העורפיים שלו בין כמה קבוצות של מכונות. אם הפריסה הקיימת כוללת מאגר יעדים לגיבוי, צריך ליצור קבוצת מכונות נפרדת למכונות האלה. קבוצת המכונות הזו תוגדר כקבוצת יתירות כשל.
- יצירת שירות לקצה עורפי אזורי. אם הפריסה שלכם כוללת מאגר יעד לגיבוי, תצטרכו לציין יחס יתירות כשל במהלך יצירת השירות לקצה העורפי. הוא צריך להתאים ליחס יתירות הכשל שהוגדר בעבר לפריסת מאגר היעד.
- הוספת קבוצות מכונות (שנוצרו בעבר) לשירות לקצה העורפי. אם הפריסה כוללת מאגר יעד לגיבוי, צריך לסמן את קבוצת המכונות המתאימות במסגרת יתירות כשל באמצעות הדגל -failover כשמוסיפים אותו לשירות לקצה העורפי.
- הגדרת כלל העברה שמפנה לשירות החדש לקצה העורפי. יש לך שתי אפשרויות:
- (מומלץ) לעדכן את כלל ההעברה הקיים כדי שיצביע לשירות לקצה העורפי. או
- יצירת העברה חדשה שמפנה לשירות לקצה העורפי. לשם כך צריך ליצור כתובת IP חדשה לחזית של מאזן העומסים. לאחר מכן, משנים את הגדרות ה-DNS כדי לעבור בצורה חלקה מכתובת ה-IP של מאזן העומסים הישן המבוסס על מאגר היעד לכתובת ה-IP החדשה.
הגדרת סביבה בקצב עצמאי
- נכנסים למסוף Cloud ויוצרים פרויקט חדש או עושים שימוש חוזר בפרויקט קיים. אם אין לכם עדיין חשבון Gmail או חשבון Google Workspace, עליכם ליצור חשבון.
חשוב לזכור את מזהה הפרויקט, שם ייחודי בכל הפרויקטים ב-Google Cloud (השם שלמעלה כבר תפוס ולא מתאים לכם, סליחה). בהמשך ב-Codelab הזה, היא תיקרא PROJECT_ID
.
- בשלב הבא צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים של Google Cloud.
מעבר ב-Codelab הזה לא אמור לעלות הרבה, אם בכלל. חשוב לבצע את כל ההוראות בקטע 'ניקוי' שמסביר איך להשבית משאבים כדי שלא תצברו חיובים מעבר למדריך הזה. משתמשים חדשים ב-Google Cloud זכאים להצטרף לתוכנית תקופת ניסיון בחינם בשווי 1,200 ש"ח.
הפעלת Cloud Shell
אומנם אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-Codelab הזה משתמשים ב-Google Cloud Shell, סביבת שורת הפקודה שפועלת ב-Cloud.
ממסוף GCP, לוחצים על הסמל של Cloud Shell בסרגל הכלים שבפינה השמאלית העליונה:
נדרשים רק כמה דקות כדי להקצות את הסביבה ולהתחבר אליה. בסיום התהליך, אתם אמורים לראות משהו כזה:
למכונה הווירטואלית הזו נטען כל כלי הפיתוח הדרושים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר משמעותית את ביצועי הרשת והאימות. כל העבודה בשיעור ה-Lab הזה יכולה להתבצע באמצעות דפדפן בלבד.
מתחברים ל-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 מכונות לכל תחום (zone), us-central1-a ו- us-central1-c
יוצרים את מכונה 1 ב-Cloud Shell
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"
יוצרים מכונה 2 מ-Cloud Shell
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"
יוצרים מכונה 3 ב-Cloud Shell
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"
יוצרים מכונה 4 מ-Cloud Shell
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"
יוצרים כלל של חומת אש כדי לאפשר תעבורת נתונים חיצונית למכונות הווירטואליות האלה
מ-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 של הקצה הקדמי באמצעות בחירת מאזני עומסים ← 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 המשויכת, מבצעים את הפעולות הבאות:
בוחרים מאזן עומסים ← קצה קדמי
כמו כן, ציינו את ארבעת מאגרי היעד
בוחרים מאזן עומסים ← בוחרים 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 (ראו את צילום המסך למטה)
בוחרים מאזן עומסים ← www-pool
אימות כלל ההעברה בקצה הקדמי משויך עכשיו למאזן העומסים 'my-backend-service'
בוחרים מאזן עומסים ← קצה קדמי
חשוב לשים לב לשם הכלל www-rule כתובת ה-IP נשמרת ומאזן העומסים '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. מעולה!
ברכות על השלמת ה-Codelab.
אילו נושאים דיברנו?
- להבין את היתרונות של שירותים לקצה עורפי אזורי
- יצירת מאזן עומסי רשת עם מאגרי יעד
- מבצעים אימות של מאגר היעד
- יצירת שירות לקצה עורפי אזורי באמצעות קבוצות מכונות לא מנוהלות
- ביצוע העברת מאגר יעד להעברת שירות לקצה העורפי
- ביצוע אימות שירותים לקצה העורפי