המתנה לסיום פעולות (Connection draining) היא תהליך שמבטיח שיינתן זמן לסיום של בקשות קיימות שנמצאות בתהליך, כשמוסרים מופע של מכונה וירטואלית (VM) מקבוצת מופעים או כשמוסרים נקודת קצה מקבוצות של נקודות קצה ברשת (NEGs) שההיקף שלהן הוא אזורי.
המידע בדף הזה רלוונטי רק לקבוצות של מופעים ולסוגים הבאים של NEGs שההיקף שלהם הוא אזורי:
הזמן להשלמת תהליך (connection draining) חל בכל אחד מהמקרים הבאים:
- מסירים מכונה וירטואלית או נקודת קצה מקבוצת קצה עורפי (קבוצת מופעים או NEG).
- כדי להסיר מופע מקבוצת מופעי מכונה מנוהלים, מבצעים קריאה של
resize(),deleteInstances(),recreateInstances()אוabandonInstances(). - מסירים NIC דינמי ממכונת VM שהיא חלק מקצה עורפי של קבוצת מכונות.
- Cloud de Confiance מוחקת מכונה וירטואלית כחלק משינוי גודל אוטומטי.
- מבצעים עדכון לקבוצת המופעים המנוהלת באמצעות כלי העדכון של קבוצת המופעים המנוהלת.
זמן להשלמת תהליך (connection draining) לא רלוונטי כשמסירים קבוצת קצה עורפי (קבוצת מופעים או NEG אזורי) משירות קצה עורפי של מאזן עומסים.
איך מתבצע ניתוק הדרגתי של חיבורים
כדי להפעיל את התכונה 'זמן להשלמת תהליך (connection draining)', מגדירים זמן קצוב לתהליך (connection draining timeout) בשירות לקצה העורפי. משך הזמן הקצוב לתפוגה צריך להיות בין 0 ל-3,600 שניות, כולל.
יכול להיות שיחלפו עד 60 שניות אחרי שמשך הזמן הקצוב לתפוגה שציינתם יסתיים עד שהמופע יופסק.
בהמשך מופיעה רשימה של מפרטים בנושא זמן להשלמת תהליך (connection draining):
התכונה 'הפסקת חיבורים' זמינה בשירותים לקצה העורפי ששייכים למאזני העומסים הבאים:
- מאזן עומסים חיצוני של אפליקציות (ALB)
- מאזן עומסים פנימי של אפליקציות (ALB)
- מאזן עומסי רשת חיצוני לשרת proxy
- מאזן עומסי רשת פנימי לשרת proxy
- מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי
- מאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי שמבוסס על שירות קצה עורפי
גם מאזני עומסי רשת פנימיים להעברת סיגנל ללא שינוי וגם מאזני עומסי רשת אזוריים חיצוניים להעברת סיגנל ללא שינוי תומכים בזמן להשלמת תהליך (connection draining) עבור TCP, UDP ופרוטוקולים אחרים שאינם TCP.
אפשר גם להשתמש בזמן להשלמת תהליך (connection draining) בשירותי קצה עורפי שמשולבים בפריסות של Cloud Service Mesh.
כשמגדירים פסק זמן להפסקת חיבורים, ומסירים מופע מקבוצת מופעים או מסירים נקודת קצה מ-NEG אזורי, מאזני העומסים ו-Cloud Service Mesh מתנהגים באופן הבא:Cloud de Confiance
לא נשלחים חיבורים חדשים למופע או לנקודת הקצה שהוסרו.
מאזני עומסים של אפליקציות: למשך הזמן שצוין לזמן קצוב לתפוגה, בקשות קיימות למכונה הווירטואלית או לנקודת הקצה שמסומנת להסרה מקבלות זמן להשלמה. מאזן העומסים לא שולח חיבורים חדשים למכונה הווירטואלית הזו או לנקודת הקצה הזו. אחרי שמגיעים לזמן הקצוב לתפוגה, מאזן העומסים מפסיק לשלוח את כל התנועה למכונה הווירטואלית או לנקודת הקצה שהוסרו.
מאזני עומסים של רשתות Proxy: למשך הזמן שצוין לזמן קצוב לתפוגה, חיבורי TCP קיימים למכונה הווירטואלית או לנקודת הקצה שמסומנת להסרה ממשיכים לפעול במהלך תקופת זמן להשלמת תהליך (connection draining) שהוגדרה. מאזן העומסים לא שולח חיבורים חדשים למכונה הווירטואלית או לנקודת הקצה הזו. אחרי שמגיעים לזמן הקצוב לתפוגה, חיבורי TCP קיימים למכונה הווירטואלית או לנקודת הקצה שהוסרו נשארים פעילים, והפרוקסי סוגר את כל חיבורי ה-TCP הקיימים תוך 10 דקות, שהוא הזמן הקצוב לתפוגה במצב בלי פעילות שמוגדר כברירת מחדל.
מאזני עומסי רשת עם העברת נתונים: למשך הזמן שצוין של זמן קצוב לתפוגה להשלמת תהליך (connection draining), מנות ששייכות לחיבורים קיימים מנותבות למכונה הווירטואלית או לנקודת הקצה שמסומנת להסרה. אחרי שזמן קצוב לתפוגה מסתיים, מאזן העומסים מסיר את הרשומה של מעקב החיבור. אחרי שהערך בטבלת מעקב החיבורים מוסר, מנות עוקבות של החיבור מנותבות למכונת VM או לנקודת קצה שונה בעורף הרשת, בהתאם לתהליך בחירת העורף ומעקב החיבורים. בחיבורי TCP, לשרת העורפי השונה אין רשומה של חיבור קיים, ולכן הוא עשוי לשלוח מנת TCP לאיפוס (
RST) כדי לסגור את החיבור ולאפשר ללקוח לפתוח חיבור חדש למאזן העומסים. שימו לב שמאזני עומסים של רשתות במצב העברה לא יכולים לשלוח חבילותRSTאוFINכדי לסגור חיבור.
אם מפעילים את התכונה 'זמן להשלמת תהליך (connection draining)' בכמה שירותים לקצה העורפי שמשתפים את אותן קבוצות של מופעים או NEGs, נעשה שימוש בערך הזמן הקצוב לתפוגה הגדול ביותר. לדוגמה, נניח שאותה קבוצת מופעים או אותו NEG אזורי הם קצה עורפי לשני שירותים של קצה עורפי, כאשר לאחד מהם יש זמן קצוב לתפוגה של ניתוק חיבור של 100 שניות, ולשני יש זמן קצוב לתפוגה של ניתוק חיבור של 200 שניות. Cloud de Confiance משתמש ב-200 שניות כזמן הקצוב לתפוגה של ניתוק החיבור לפני סיום החיבורים. אם העורף הוא קבוצת מכונות מנוהלת, פעולות שמוחקות את המכונה מתעכבות לפחות ב-200 שניות.
אם לא מגדירים זמן קצוב לתפוגה של ניתוק חיבורים, או אם הזמן הקצוב לתפוגה של ניתוק חיבורים מוגדר לאפס (0), Cloud de Confiance מערכת Cloud de Confiance מסיימת חיבורים קיימים במופע או בנקודת הקצה שהוסרו במהירות האפשרית.
אם אתם משתמשים במאגר חיבורים, יכול להיות שתראו שבקשות חדשות, שמשתמשות בחיבור שכבר נוצר, עדיין מתקבלות במכונות וירטואליות שמתבצע בהן ניקוי, וזה גורם לשגיאות בחיבורים כשהמכונות הווירטואליות האלה נמחקות בסופו של דבר.
הפעלת ניתוק הדרגתי של חיבורים
כדי להפעיל את התכונה 'הפסקת פעילות הדרגתית של חיבורים', צריך לבצע את השלבים הבאים.
המסוף
עדכון מאזן עומסים
- נכנסים לדף Load balancing במסוף Cloud de Confiance .
כניסה לדף Load balancing - בכרטיסייה Load Balancers (מאזני עומסים), לוחצים על סמל האפשרויות הנוספות more_vert ליד מאזן העומסים שרוצים לעדכן, ואז לוחצים על Edit (עריכה) .
- לוחצים על Backend configuration.
- בחלונית Backend configuration, לוחצים על .
- בתחתית החלונית Edit שירות לקצה העורפי, לוחצים על Advanced configurations.
- בשדה Connection draining timeout (הזמן הקצוב לתפוגה של ניתוק חיבורים), מזינים ערך בין
0ל-3600. הגדרה של0משביתה את התכונה 'זמן להשלמת תהליך'.
gcloud
כדי להפעיל את התכונה 'זמן להשלמת תהליך (connection draining)' בשירות לקצה העורפי חדש או קיים, משתמשים בדגל --connection-draining-timeout. בדוגמאות הבאות אפשר לראות איך משנים את הזמן הקצוב לתפוגה של ניתוק החיבור:
אם יש לכם מאזן עומסים אזורי קיים:
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --connection-draining-timeout=CONNECTION_TIMEOUT_SECS
מחליפים את ה-placeholders בערכים תקינים:
-
BACKEND_SERVICE: השירות לקצה העורפי שאתם מעדכנים -
REGION: אם רלוונטי, האזור של שירות ה-Backend שמעדכנים
CONNECTION_TIMEOUT_SECS: מספר השניות להמתנה לפני סיום החיבורים הקיימים למופעים או לנקודות קצה, בין0ל-3600שניות, כולל. הגדרה של0משביתה את התכונה 'זמן להשלמת תהליך'. הזמן הקצוב לתפוגה של השלמת התהליך חל על כל הקצה העורפי של שירות הקצה העורפי.אפשר גם להשתמש בפקודה
gcloud compute backend-services editכדי לעדכן שירות לקצה העורפי קיים.
API
כדי להפעיל את התכונה 'זמן להשלמת תהליך (connection draining)' ב-API כשיוצרים או מעדכנים מופע או נקודת קצה, צריך לשלוח בקשה ל-URI המתאים של ה-API ולכלול את השדה connectionDraining בגוף הבקשה. בדוגמאות הבאות אפשר לראות איך מגדירים את המאפיין הזה על ידי עריכה של שירות קיים בעורף האתר. מידע על מאפיינים נדרשים אחרים זמין במאמרי העזרה של כל מאזן עומסים.
אם יש לכם מאזן עומסים אזורי קיים:
PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/region/REGION/backendServices { "name": "BACKEND_SERVICE", "connectionDraining": { "drainingTimeoutSec": CONNECTION_TIMEOUT_SECS } }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שמכיל את מאזן העומסים או את הפריסה של Cloud Service Mesh -
BACKEND_SERVICE: שירות הקצה העורפי שבו נעשה שימוש בפריסת מאזן העומסים או Cloud Service Mesh -
CONNECTION_TIMEOUT_SECS: מספר השניות להמתנה לפני הסרת מופעים או נקודות קצה מקבוצת המופעים או מ-NEG, בין 0 ל-3600 שניות, כולל. משך הזמן הקצוב לתפוגה הזה חל על כל קבוצות המכונות או ה-NEG שאליהן יש הפניה משירות לקצה העורפי.
-