במדריך הזה מוסבר איך להעביר מאזן עומסי רשת חיצוני אזורי קיים מקצה עורפי של מאגר יעד לקצה עורפי של שירות אזורי.
מעבר לשירות לקצה העורפי אזורי מאפשר לכם ליהנות מתכונות כמו בדיקות תקינות שאינן מדור קודם (ל-TCP, SSL, HTTP, HTTPS ו-HTTP/2), קבוצות מופעי מכונה מנוהלים, זמן להשלמת תהליך (connection draining) ומדיניות יתירות כשל.
במדריך הזה מוסבר איך להעביר את מאזן העומסים האזורי החיצוני של רשתות להעברת סיגנל ללא שינוי שמבוסס על מאגר יעד לדוגמה, לשימוש בשירות אזורי לקצה העורפי.
פריסת מאזן עומסי רשת חיצוני אזורי להעברת סיגנל ללא שינוי שמבוסס על שירות קצה עורפי תיראה כך.
בדוגמה הזו אנחנו מניחים שיש לכם מאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי שמבוסס על מאגר יעד מסורתי עם שתי מכונות וירטואליות באזור us-central-1a ושתי מכונות וירטואליות באזור us-central-1c.
השלבים העיקריים שנדרשים למעבר כזה:
מקבצים את המכונות במאגר היעדים לקבוצות של מכונות.
שירותי קצה עורפי פועלים רק עם קבוצות מנוהלות או לא מנוהלות של מופעים. אין הגבלה על מספר המופעים שאפשר להוסיף למאגר יעד יחיד, אבל יש גודל מקסימלי לקבוצות של מופעים. אם במאגר היעדים יש יותר ממספר המכונות המקסימלי הזה, צריך לפצל את הקצה העורפי שלו לכמה קבוצות של מכונות.
אם הפריסה הקיימת שלכם כוללת מאגר יעד לגיבוי, צריך ליצור קבוצת מופעים נפרדת למופעים האלה. קבוצת המכונות הזו מוגדרת כקבוצת מעבר לגיבוי.
יוצרים שירות לקצה עורפי אזורי.
אם הפריסה שלכם כוללת מאגר יעד לגיבוי, צריך לציין יחס מעבר לגיבוי בעת יצירת שירות ה-Backend. הערך הזה צריך להיות זהה ליחס המעבר לגיבוי שהוגדר קודם לפריסת מאגר היעד.
מוסיפים קבוצות של מכונות וירטואליות (שנוצרו קודם) לשירות לקצה העורפי.
אם הפריסה כוללת מאגר יעד לגיבוי, צריך לסמן את קבוצת המכונות המתאימה למעבר לגיבוי בשעת כשל בדגל
--failoverכשמוסיפים אותה לשירות הקצה העורפי.מגדירים כלל העברה שמפנה לשירות לקצה העורפי החדש.
אפשר לבחור באחת מהאפשרויות הבאות:
מעדכנים את כלל ההעברה הקיים כך שיצביע על שירות ה-Backend (מומלץ).
יוצרים כלל העברה חדש שמפנה לשירות הקצה העורפי. לשם כך, צריך ליצור כתובת IP חדשה לחלק הקדמי של מאזן העומסים. לאחר מכן משנים את הגדרות ה-DNS כדי לעבור בצורה חלקה מכתובת ה-IP של מאזן העומסים הישן שמבוסס על מאגר היעדים לכתובת ה-IP החדשה.
לפני שמתחילים
מתקינים את Google Cloud CLI. סקירה כללית מלאה של הכלי זמינה במדריך לכלי gcloud. אפשר למצוא פקודות שקשורות לאיזון עומסים בקבוצת הפקודות gcloud compute.
אם לא הפעלתם את Google Cloud CLI בעבר, קודם מריצים את gcloud init כדי לבצע אימות.
במדריך הזה אנחנו מניחים שאתם מכירים את bash.
זיהוי קצה העורף וכלל ההעברה שרוצים להעביר
כדי להציג את כל מאגרי היעדים, מריצים את הפקודה הבאה ב-Cloud Shell:
gcloud compute target-pools list
שימו לב לשם של מאגר היעדים שממנו תתבצע ההעברה. השם הזה יופיע בהמשך בתור TARGET_POOL_NAME.
כדי לראות רשימה של כל מכונות ה-VM במאגר היעד TARGET_POOL_NAME, מריצים את הפקודה ב-Cloud Shell:
gcloud compute target-pools describe TARGET_POOL_NAME \ --region=us-central1
רושמים את השמות של מכונות ה-VM. בהמשך המאמר נתייחס לשמות האלה כאל BACKEND_INSTANCE1, BACKEND_INSTANCE2, BACKEND_INSTANCE3 ו-BACKEND_INSTANCE4.
כדי להציג רשימה של כללי ההעברה במאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי, מריצים את הפקודה ב-Cloud Shell:
gcloud compute forwarding-rules list --filter="target: ( TARGET_POOL_NAME )"
רושמים את השם של כלל ההעברה. השם הזה יופיע בהמשך בתור FORWARDING_RULE.
יצירת קבוצות של מופעי מכונה לא מנוהלים באזורים
יוצרים קבוצה של מופעי מכונה לא מנוהלים בכל אחד מהתחומים שבהם יש לכם שרתי קצה עורפיים. בהתאם להגדרה שלכם, אתם יכולים לחלק את המופעים לכמה קבוצות של מופעים שאתם צריכים. בדוגמה שלנו, אנחנו משתמשים רק בשתי קבוצות של מכונות, אחת לכל אזור, ומציבים את כל מכונות ה-VM של הקצה העורפי באזור נתון בקבוצת המכונות המשויכת.
בדוגמה הזו, אנחנו יוצרים שתי קבוצות של מכונות: אחת באזור uc-central1-a ואחת באזור us-central1-c.
הגדרת קבוצות של מופעים
המסוף
- נכנסים לדף Instance groups במסוף Cloud de Confiance .
- לוחצים על יצירת קבוצת מופעים.
- בחלונית הימנית, בוחרים באפשרות קבוצת מופעים חדשה לא מנוהלת.
- בשדה Name (שם), מזינים
ig-us-1. - בשדה אזור, בוחרים באפשרות
us-central1. - בשדה Zone, בוחרים באפשרות
us-central1-a. - בוחרים באפשרות Network או באפשרות Subnetwork בהתאם למיקום של המופעים. בדוגמה הזו, המופעים הקיימים במאגר היעדים נמצאים ברשת
defaultוברשת המשנה. - כדי להוסיף מכונות לקבוצת המכונות, בקטע VM instances (מכונות וירטואליות), בוחרים את שתי המכונות BACKEND_INSTANCE1 ו-BACKEND_INSTANCE2.
- לוחצים על יצירה.
חוזרים על השלבים האלה כדי ליצור קבוצת מופעים שנייה עם המפרט הבא:
- Name (שם):
ig-us-2 - אזור:
us-central1 - Zone (תחום):
us-central1-c
מוסיפים את שני המקרים BACKEND_INSTANCE3 ו-BACKEND_INSTANCE4 באזור
us-central1-cלקבוצת המקרים הזו.- Name (שם):
אם לפריסת מאזן העומסים הקיימת יש גם מאגר יעד לגיבוי, צריך לחזור על השלבים האלה כדי ליצור קבוצת מכונות נפרדת למעבר לגיבוי (failover) עבור המכונות האלה.
gcloud
יוצרים קבוצה של מופעי מכונה לא מנוהלים באזור
us-central1-aבאמצעות הפקודהgcloud compute instance-groups unmanaged create.gcloud compute instance-groups unmanaged create ig-us-1 \ --zone us-central1-aיוצרים קבוצה שנייה של מופעי מכונה לא מנוהלים באזור
us-central1-c.gcloud compute instance-groups unmanaged create ig-us-2 \ --zone us-central1-cמוסיפים מופעים ל
ig-us-1קבוצת המכונות.gcloud compute instance-groups unmanaged add-instances ig-us-1 \ --instances BACKEND_INSTANCE_1,BACKEND_INSTANCE_2 \ --zone us-central1-aמוסיפים מופעים ל
ig-us-2instance group.gcloud compute instance-groups unmanaged add-instances ig-us-2 \ --instances BACKEND_INSTANCE_3,BACKEND_INSTANCE_4 \ --zone us-central1-cאם לפריסת מאזן העומסים הקיימת יש גם מאגר יעד לגיבוי, צריך לחזור על השלבים האלה כדי ליצור קבוצת מכונות נפרדת למעבר לגיבוי (failover) עבור המכונות האלה.
יצירת בדיקת תקינות
יוצרים בדיקת תקינות כדי לקבוע את התקינות של המכונות בקבוצות המכונות. למאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי שקיים אצלכם, שמבוסס על מאגר יעדים, כנראה משויך בדיקת תקינות HTTP מדגם ישן.
אפשר ליצור בדיקת תקינות חדשה שתתאים לפרוטוקול של התנועה שמאזן העומסים יפיץ. מאזני עומסים אזוריים חיצוניים להעברת סיגנל ללא שינוי שמבוססים על שירותים לקצה העורפי יכולים להשתמש בבדיקות תקינות של TCP, SSL, HTTP(S) ו-HTTP/2.
המסוף
- נכנסים לדף Health checks במסוף Cloud de Confiance .
- לוחצים על יצירת בדיקת תקינות.
- בשדה שם מזינים
network-lb-health-check. - מגדירים את היקף לערך אזורי.
- בשדה אזור, בוחרים באפשרות
us-central1. - בשדה Protocol, בוחרים באפשרות HTTP.
- בשדה Port (יציאה), מזינים
80. - לוחצים על יצירה.
gcloud
בדוגמה הזו, אנחנו יוצרים בדיקת תקינות HTTP שלא מבוססת על גרסה קודמת, כדי להשתמש בה עם שירות ה-backend.
gcloud compute health-checks create http network-lb-health-check \ --region us-central1 \ --port 80
הגדרת שירות הקצה העורפי
כדי ליצור את שירות ה-Backend, משתמשים באחד מהקטעים הבאים. אם למאזן העומסים הקיים שלכם מסוג 'מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי' יש מאגר יעד לגיבוי, אתם צריכים להגדיר יחס יתירות כשל בזמן יצירת השירות לקצה העורפי.
כשמוסיפים קצה עורפי לשירות הקצה העורפי, צריך גם לציין את קבוצת המכונות לגיבוי באמצעות הדגל --failover.
פריסות ללא מאגר יעד לגיבוי
gcloud
יוצרים שירות לקצה עורפי אזורי באזור
us-central1.gcloud compute backend-services create network-lb-backend-service \ --region us-central1 \ --health-checks network-lb-health-check \ --health-checks-region us-central1 \ --protocol TCP
מוסיפים את שתי קבוצות המכונות (
ig-us-1ו-ig-us-2) כקצה עורפי לשירות הקצה העורפי.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
פריסות עם מאגר יעד לגיבוי
gcloud
יוצרים שירות לקצה עורפי אזורי באזור
us-central1. מגדירים את יחס המעבר האוטומטי של שירות הקצה העורפי כך שיתאים ליחס המעבר האוטומטי שהוגדר קודם למאגר היעדים.gcloud compute backend-services create network-lb-backend-service \ --region us-central1 \ --health-check network-lb-health-check \ --failover-ratio 0.5
מוסיפים את שתי קבוצות המכונות (
ig-us-1ו-ig-us-2) כקצה עורפי לשירות הקצה העורפי.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-1 \ --instance-group-zone us-central1-a \ --region us-central1
gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group ig-us-2 \ --instance-group-zone us-central1-c \ --region us-central1
אם יצרתם קבוצת מכונות ליתירות כשל, מוסיפים אותה לשירות לקצה העורפי. כשמוסיפים את ה-backend לשירות ה-backend, מסמנים אותו בדגל
--failover.gcloud compute backend-services add-backend network-lb-backend-service \ --instance-group FAILOVER_INSTANCE_GROUP \ --instance-group-zone ZONE \ --region us-central1 \ --failover
הגדרת כלל ההעברה
יש שתי אפשרויות להגדרת כלל ההעברה כדי להפנות את התנועה לשירות העורפי החדש. אפשר לעדכן את כלל ההעברה הקיים או ליצור כלל העברה חדש עם כתובת IP חדשה.
עדכון של כלל ההעברה הקיים (מומלץ)
משתמשים בדגל set-target כדי לעדכן את כלל ההעברה הקיים כך שיצביע על שירות לקצה העורפי החדש.
gcloud compute forwarding-rules set-target FORWARDING_RULE \
--backend-service network-lb-backend-service \
--region us-central1
מחליפים את FORWARDING_RULE בשם של כלל ההעברה הקיים.
יצירת כלל העברה חדש
אם אתם לא רוצים לעדכן את כלל ההעברה הקיים, אתם יכולים ליצור כלל העברה חדש עם כתובת IP חדשה. מכיוון שכתובת IP נתונה יכולה להיות משויכת רק לכלל העברה אחד בכל פעם, צריך לשנות ידנית את הגדרת ה-DNS כדי להעביר את התעבורה הנכנסת מכתובת ה-IP הישנה לכתובת ה-IP החדשה.
כדי ליצור כלל העברה חדש עם כתובת IP חדשה, משתמשים בפקודה הבאה. אפשר להשתמש בדגל --address כדי לציין כתובת IP שכבר הוזמנה באזור us-central1.
gcloud compute forwarding-rules create network-lb-forwarding-rule \
--load-balancing-scheme external \
--region us-central1 \
--ports 80 \
--backend-service network-lb-backend-service
בדיקת מאזן העומסים
בודקים את מאזן העומסים כדי לוודא שכלל ההעברה מכוון את התעבורה הנכנסת כמו שצריך.
חיפוש כתובת ה-IP החיצונית של מאזן העומסים
gcloud
מזינים את הפקודה הבאה כדי לראות את כתובת ה-IP החיצונית של כלל ההעברה network-lb-forwarding-rule שמשמש את מאזן העומסים.
gcloud compute forwarding-rules describe network-lb-forwarding-rule
--region us-central1
משתמשים בפקודה nc כדי לגשת לכתובת ה-IP החיצונית
בדוגמה הזו, אנחנו משתמשים בשיטת הגיבוב שמוגדרת כברירת מחדל לשיוך סשנים, ולכן בקשות מהפקודה nc מופצות באופן אקראי למכונות הווירטואליות של ה-Backend על סמך יציאת המקור שהוקצתה על ידי מערכת ההפעלה.
כדי לבדוק את הקישוריות, קודם מתקינים את Netcat ב-Linux על ידי הרצת הפקודה הבאה:
$ sudo apt install netcatחוזרים על הפקודה הבאה כמה פעמים עד שרואים שכל מכונות ה-VM של ה-Backend מגיבות:
$ nc IP_ADDRESS 80
הסרת משאבים שמשויכים למאזן העומסים הישן
אחרי שמוודאים שמאזן העומסים החדש של הרשת החיצונית האזורית מסוג העברת תעבורה פועל כמו שצריך, אפשר למחוק את משאבי מאגר היעדים הישנים.
- נכנסים לדף Load balancing במסוף Cloud de Confiance .
- בוחרים את מאזן העומסים הישן ששויך למאגר היעד ולוחצים על מחיקה.
- בוחרים את בדיקות התקינות שיצרתם ולוחצים על מחיקת מאזן העומסים והמשאבים שנבחרו.
המאמרים הבאים
- מידע על אופן הפעולה של מאזני עומסים אזוריים חיצוניים של רשת להעברת סיגנל ללא שינוי עם שירותים לקצה העורפי זמין במאמר מאזן עומסים אזורי חיצוני של רשת להעברת סיגנל ללא שינוי שמבוסס על שירותים לקצה העורפי – סקירה כללית.
- כדי להגדיר מאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי עם שירות קצה עורפי, אפשר לעיין במאמר הגדרה של מאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי עם שירות קצה עורפי.
- כדי להגדיר מאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי עם מאגר יעד, אפשר לעיין במאמר הגדרה של מאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי עם מאגר יעד.