במדריך הזה מוסבר איך להעביר מאזן עומסי רשת חיצוני קיים להעברת סיגנל ללא שינוי, מסוף עורפי של מאגר יעד לשירות לקצה העורפי אזורי.
מעבר לשירות לקצה העורפי אזורי מאפשר לכם ליהנות מתכונות כמו בדיקות תקינות לא מדור קודם (ל-TCP, SSL, HTTP, HTTPS ו-HTTP/2), קבוצות מופעי מכונה מנוהלים, זמן להשלמת תהליך (connection draining) ומדיניות יתירות כשל.
לחצו על תראו לי איך כדי לקרוא הסבר מפורט על המשימה ישירות במסוף Google Cloud :
במדריך הזה מוסבר איך להעביר מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי שמבוסס על מאגר כתובות יעד לדוגמה, כך שישתמש במקום זאת בשירות לקצה העורפי אזורי.
פריסת מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי שמבוסס על שירות לקצה העורפי תיראה כך.
בדוגמה הזו אנחנו מניחים שיש לכם מאזן עומסי רשת חיצוני מסורתי להעברת סיגנל ללא שינוי שמבוסס על מאגר יעדים, עם שתי מכונות וירטואליות באזור us-central-1a ושתי מכונות וירטואליות באזור us-central-1c.
אלה השלבים הכלליים שנדרשים למעבר כזה:
מקבצים את המכונות במאגר היעד לקבוצות של מכונות.
שירותי קצה עורפיים פועלים רק עם קבוצות מנוהלות או לא מנוהלות של מופעים. אין מגבלה על מספר המקרים שאפשר להוסיף למאגר יעד יחיד, אבל יש גודל מקסימלי לקבוצות של מקרים. אם במאגר היעדים יש יותר מהמספר המקסימלי הזה של מופעים, צריך לפצל את הקצה העורפי שלו בין כמה קבוצות של מופעים.
אם הפריסה הקיימת כוללת מאגר יעד לגיבוי, צריך ליצור קבוצת מופעים נפרדת למופעים האלה. קבוצת המכונות הזו מוגדרת כקבוצת יתירות כשל.
יוצרים שירות לקצה עורפי אזורי.
אם ה-Deployment (פריסה) שלכם כולל מאגר יעד לגיבוי, צריך לציין יחס יתירות כשל בעת יצירת שירות לקצה העורפי. הערך הזה צריך להיות זהה ליחס המעבר לגיבוי שהוגדר קודם לפריסת מאגר היעד.
מוסיפים לקבוצת המופעים (שנוצרה קודם) את שירות ה-Backend.
אם הפריסה כוללת מאגר יעד לגיבוי, צריך לסמן את קבוצת המכונות המתאימה ליתירות כשל בשדה
--failoverכשמוסיפים אותה לשירות לקצה העורפי.מגדירים כלל העברה שמפנה לשירות לקצה העורפי החדש.
אפשר לבחור באחת מהאפשרויות הבאות:
מעדכנים את כלל ההעברה הקיים כך שיצביע על שירות לקצה העורפי (מומלץ).
יוצרים כלל העברה חדש שמפנה לשירות הקצה העורפי. לשם כך, צריך ליצור כתובת 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 במסוף Google Cloud .
- לוחצים על יצירת קבוצת מופעים.
- בחלונית הימנית, בוחרים באפשרות קבוצת מופעים חדשה לא מנוהלת.
- בשדה Name (שם), מזינים
ig-us-1. - בשדה אזור, בוחרים באפשרות
us-central1. - בשדה Zone, בוחרים באפשרות
us-central1-a. - בוחרים באפשרות רשת או רשת משנה בהתאם למיקום של המופעים. בדוגמה הזו, המופעים הקיימים במאגר היעדים נמצאים ברשת
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 (שם):
אם לפריסת מאזן העומסים הקיימת יש גם מאגר יעד לגיבוי, צריך לחזור על השלבים האלה כדי ליצור קבוצת מופעים נפרדת ליתירות כשל עבור המופעים האלה.
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-2.gcloud compute instance-groups unmanaged add-instances ig-us-2 \ --instances BACKEND_INSTANCE_3,BACKEND_INSTANCE_4 \ --zone us-central1-cאם לפריסת מאזן העומסים הקיימת יש גם מאגר יעד לגיבוי, צריך לחזור על השלבים האלה כדי ליצור קבוצת מופעים נפרדת ליתירות כשל עבור המופעים האלה.
יצירת בדיקת תקינות
יוצרים בדיקת תקינות כדי לקבוע את התקינות של המכונות בקבוצות המכונות. למאזן עומסי הרשת החיצוני להעברת סיגנל ללא שינוי שקיים לכם, שמבוסס על מאגר יעדים, כנראה משויך בדיקת תקינות HTTP מדגם ישן.
אפשר ליצור בדיקת תקינות חדשה שתתאים לפרוטוקול של התנועה שמאזן העומסים יפיץ. מאזני עומסים חיצוניים מסוג Network Load Balancer להעברת סיגנל ללא שינוי שמבוססים על שירות קצה עורפי יכולים להשתמש בבדיקות תקינות של TCP, SSL, HTTP(S) ו-HTTP/2.
המסוף
- נכנסים לדף Health checks במסוף Google Cloud .
- לוחצים על יצירת בדיקת תקינות.
- בשדה שם מזינים
network-lb-health-check. - מגדירים את היקף לערך אזורי.
- בשדה אזור, בוחרים באפשרות
us-central1. - בשדה Protocol, בוחרים באפשרות HTTP.
- בשדה Port (יציאה), מזינים
80. - לוחצים על יצירה.
gcloud
בדוגמה הזו, אנחנו יוצרים בדיקת תקינות HTTP שאינה מדור קודם, לשימוש עם שירות לקצה העורפי.
gcloud compute health-checks create http network-lb-health-check \ --region us-central1 \ --port 80
הגדרת שירות הקצה העורפי
כדי ליצור את שירות לקצה העורפי, משתמשים באחד מהקטעים הבאים. אם למאזן העומסים הקיים שלכם להעברת סיגנל ללא שינוי יש מאגר יעד לגיבוי, אתם צריכים להגדיר יחס יתירות כשל בעת יצירת שירות לקצה העורפי.
כשמוסיפים בק-אנד לשירות לקצה העורפי, צריך גם לציין את קבוצת המכונות ליתירות כשל באמצעות הדגל --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 לשירות לקצה העורפי, מסמנים אותו בדגל
--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 במסוף Google Cloud .
- בוחרים את מאזן העומסים הישן ששויך למאגר היעד ולוחצים על מחיקה.
- בוחרים את בדיקות התקינות שיצרתם ולוחצים על מחיקת מאזן העומסים והמשאבים שנבחרו.
המאמרים הבאים
- מידע על אופן הפעולה של מאזני עומסי רשת חיצוניים להעברת סיגנל ללא שינוי עם שירותים לקצה העורפי זמין במאמר סקירה כללית על מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי שמבוסס על שירות לקצה העורפי.
- כדי להגדיר מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי עם שירות לקצה העורפי, קראו את המאמר הגדרה של מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי עם שירות לקצה העורפי.
- כדי להגדיר מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי עם מאגר יעדים, אפשר לעיין במאמר הגדרה של מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי עם מאגר יעדים.