Cloud de Confiance by S3NS Cloud Load Balancing מציע בדיקות תקינות שניתנות להגדרה עבור קצה עורפי של Cloud de Confiance מאזן עומסים ותיקון תוכנה אוטומטי (autohealing) מבוסס-אפליקציה לקבוצות של מכונות מנוהלות. במסמך הזה מוסברים מושגי מפתח בנושא בדיקות תקינות.
אלא אם צוין אחרת, Cloud de Confiance בדיקות תקינות מיושמות על ידי משימות תוכנה ייעודיות שמתחברות למערכות עורפיות בהתאם לפרמטרים שצוינו במשאב של בדיקת תקינות. כל ניסיון חיבור נקרא בדיקה. Cloud de Confiance מתעד את ההצלחה או הכישלון של כל בדיקה.
על סמך מספר ניתן להגדרה של בדיקות רצופות מוצלחות או שנכשלו, מחושב מצב תקינות כללי לכל עורף. בקצה העורפי שמגיב בהצלחה למספר הפעמים שהוגדר נחשב תקין. בקצה העורפי שלא מצליח להגיב בהצלחה מספר פעמים שאפשר להגדיר בנפרד, מוגדר כלא תקין.
מצב התקינות הכללי של כל שרת קצה קובע אם הוא עומד בדרישות לקבלת בקשות או חיבורים חדשים. אפשר להגדיר את הקריטריונים שמגדירים בקשה לבדיקת תקינות (probe) מוצלחת. הנושא הזה מוסבר בפירוט בקטע איך בדיקות תקינות פועלות.
בדיקות תקינות שמיושמות על ידי משימות תוכנה ייעודיות משתמשות בנתיבים מיוחדים שלא מוגדרים ברשת הענן הווירטואלי הפרטי (VPC). מידע נוסף זמין במאמר נתיבים לבדיקות תקינות.
קטגוריות, פרוטוקולים ויציאות של בדיקות תקינות
בדיקות התקינות כוללות קטגוריה ופרוטוקול. שתי הקטגוריות הן בדיקות תקינות ובדיקות תקינות מדור קודם, והפרוטוקולים הנתמכים שלהן הם:
בדיקות תקינות
בדיקות תקינות מדור קודם:
הפרוטוקול והיציאה קובעים איך מתבצעות בדיקות התקינות. לדוגמה, בדיקת תקינות יכולה להשתמש בפרוטוקול HTTP ביציאת TCP 80, או בפרוטוקול TCP ביציאה עם שם בקבוצת מופעים.
אי אפשר להמיר בדיקת תקינות מדור קודם לבדיקת תקינות, ואי אפשר להמיר בדיקת תקינות לבדיקת תקינות מדור קודם.
בחירת בדיקת תקינות
הבדיקות של תקינות השירות צריכות להיות תואמות לסוג מאזן העומסים ולסוגי הקצה העורפי. אלה הגורמים שכדאי להביא בחשבון כשבוחרים בדיקת תקינות:
- קטגוריה: בדיקת תקינות או בדיקת תקינות מדור קודם. רק מאזני עומסים אזוריים חיצוניים להעברת סיגנל ללא שינוי שמבוססים על מאגרי יעד דורשים בדיקות תקינות מדור קודם. לכל שאר המוצרים, תשתמשו בבדיקות תקינות רגילות.
- פרוטוקול: הפרוטוקול שמשמש את Cloud de Confiance לביצוע בדיקות של השרתים העורפיים. מומלץ להשתמש בבדיקת תקינות (או בבדיקת תקינות מדור קודם) שהפרוטוקול שלה תואם לפרוטוקול שבו משתמש שירות הבק-אנד או מאגר היעדים של מאזן העומסים. עם זאת, פרוטוקולי בדיקת התקינות ופרוטוקולי מאזן העומסים לא צריכים להיות זהים.
- הגדרת יציאה: יציאות ש- Cloud de Confiance משתמש בהן עם הפרוטוקול.
צריך לציין יציאה לבדיקת התקינות. יש שתי שיטות לציין יציאות בבדיקות תקינות:
--portו---use-serving-port. בבדיקות תקינות מדור קודם, יש שיטה אחת:--port. מידע נוסף על דרישות היציאה של בדיקות התקינות לכל מאזן עומסים זמין במאמר בנושא דגלים של הגדרת יציאה.
בקטע הבא מתוארות אפשרויות תקינות לבדיקות תקינות לכל סוג של מאזן עומסים וקצה עורפי.
מדריך למאזן עומסים
בטבלה הזו מוצגים הקטגוריה וההיקף של בדיקת התקינות שנתמכים בכל סוג של איזון עומסים.
| מאזן עומסים | קטגוריה והיקף של בדיקת תקינות |
|---|---|
|
מאזן עומסים חיצוני אזורי של אפליקציות (ALB) מאזן עומסים פנימי אזורי של אפליקציות (ALB) מאזן עומסי רשת אזורי פנימי בשרת proxy מאזן עומסי רשת אזורי חיצוני בשרת proxy |
בדיקת תקינות (אזורית) |
| מאזן עומסי רשת גלובלי חיצוני להעברת סיגנל ללא שינוי | בדיקת תקינות (גלובלית) |
| מאזן עומסי רשת חיצוני אזורי להעברת סיגנל ללא שינוי | מאזן עומסים שמבוסס על שירות לקצה העורפי: בדיקת תקינות (אזורית) מאזן עומסים שמבוסס על מאגר יעדים: בדיקת תקינות מדור קודם |
| מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי | בדיקת תקינות (גלובלית או אזורית) |
הערות נוספות לגבי שימוש
עבור קבוצות של מופעי קצה עורפיים, NEGs אזוריים עם נקודות קצה מסוג
GCE_VM_IPו-NEGs אזוריים עם נקודות קצה מסוגGCE_VM_IP_PORT, בודקי הקישוריות מנסים להתחבר רק למכונות וירטואליות (או למכונות וירטואליות שמכילות נקודות קצה) אם המכונות הווירטואליות פועלות. הכלי Prober לא מנסה להתחבר למופעים (או למופעי VM שמכילים נקודות קצה) אם הם מושבתים.מאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי שמבוסס על מאגר יעדים חייב להשתמש בבדיקת תקינות מדור קודם מסוג HTTP. אי אפשר להשתמש בבדיקת תקינות מדור קודם של HTTPS או בכל בדיקת תקינות שאינה מדור קודם. אם אתם משתמשים במאזן עומסי רשת חיצוני אזורי להעברת סיגנל ללא שינוי שמבוסס על מאגר יעד כדי לאזן תעבורת TCP, אתם צריכים להפעיל שירות HTTP במכונות הווירטואליות שמאוזנות על ידי מאזן העומסים, כדי שהן יוכלו להגיב לבדיקות תקינות.
ב רוב המקרים, כשמשתמשים בסוגים אחרים של איזון עומסים, חובה להשתמש בבדיקות תקינות רגילות (לא מדור קודם) שבהן הפרוטוקול תואם לפרוטוקול של שירות ה-Backend של איזון העומסים.בשירותי קצה עורפי שמשתמשים בפרוטוקול gRPC, צריך להשתמש רק בבדיקות תקינות של gRPC או TCP. אל תשתמשו בבדיקות תקינות של HTTP(S) או HTTP/2.
מאזני עומסים מסוימים שמבוססים על Envoy ומשתמשים בשרתי קצה עורפיים של NEG היברידי לא תומכים בבדיקות תקינות של gRPC. מידע נוסף זמין במאמר בנושא סקירה כללית של קבוצות משולבות של נקודות קצה ברשת.
טווחי כתובות IP של בדיקות
Cloud de Confiance מחייב אתכם ליצור את כללי חומת האש הדרושים של allowתעבורת נתונים נכנסת (ingress) כדי לאפשר תעבורת נתונים מבודקי הקישוריות לשרתים העורפיים או למשאבים אחרים. כשיוצרים את הכללים האלה של חומת האש, חשוב לשים לב לנקודות הבאות:
טווחי כתובות ה-IP של הבדיקות הם קבוצה מלאה של כתובות IP אפשריות שמשמשות את כלי הבדיקה שלCloud de Confiance . אם אתם משתמשים ב-
tcpdumpאו בכלי דומה, יכול להיות שלא תראו תנועה מכל כתובות ה-IP בכל טווחי כתובות ה-IP של הבדיקה. מומלץ ליצור כללים בחומת האש לכניסת תעבורה שמאפשרים את כל טווחי כתובות ה-IP של הבדיקות כמקורות. Cloud de Confiance יכול להיות שנפעיל בודקים חדשים באופן אוטומטי בלי לשלוח הודעה.מומלץ להגביל את הכללים האלה רק לפרוטוקולים וליציאות שתואמים לאלה שמשמשים את בדיקות התקינות.
אם אין לכם כללי חומת אש של תעבורת נתונים נכנסת (ingress) allow שמאפשרים לבודקי בדיקות תקינות להתחבר לשרתים העורפיים של מאזן העומסים, פעולת חומת האש של תעבורת נתונים נכנסת (ingress) שמוגדרת כברירת מחדל לחסימה תחסום את התעבורה, והשרתים העורפיים לא יהיו תקינים. מידע נוסף זמין במאמר בנושא מדיניות וכללים של חומת אש.
טווח כתובות ה-IP של בדיקות תקינות לשרתי בק-אנד של מאזן עומסים מנוהל שמבוסס על Envoy
מאזני עומסים של אפליקציות ומאזני עומסי רשת בשרת proxy שמשתמשים בשרתי proxy מנוהלים של Envoy:
מאזני עומסים חיצוניים אזוריים של אפליקציות (ALB)
מאזני עומסים פנימיים אזוריים של אפליקציות (ALB)
מאזני עומסי רשת אזוריים חיצוניים בשרת proxy
מאזני עומסים פנימיים אזוריים בשרת proxy
בדיקות תקינות של שרתים עורפיים במאזני העומסים האלה מגיעות מטווח כתובות ה-IP שמפורט בטבלה הבאה:
| סוג הקצה העורפי | טווח כתובות ה-IP של המקור של בדיקת התקינות |
|---|---|
|
לגבי בדיקות תקינות של IPv4 לשרתי קצה עורפיים:
לגבי בדיקות תקינות של IPv6 לשרתי הקצה העורפיים:
|
|
בדיקות תקינות מבוזרות של Envoy מכתובות ה-IP של תת-הרשת של Proxy בלבד |
|
לא רלוונטי (הקצוות העורפיים האלה לא תומכים בבדיקות תקינות) |
בדיקת טווחי כתובות IP עבור חזיתות נבחרות של מאזני עומסים מנוהלים שמבוססים על Envoy
מאזני העומסים הבאים של אפליקציות ומאזני העומסים הבאים של רשתות לשרתי proxy משתמשים בשרתי proxy מנוהלים של Envoy, ותומכים גם בכללי חומת אש ששולטים בגישה לשרתי ה-proxy המנוהלים של Envoy עצמם:
- מאזני עומסים פנימיים אזוריים של אפליקציות (ALB)
- מאזני עומסים פנימיים אזוריים בשרת proxy
מידע נוסף על האפשרות הזו זמין במאמר שימוש במדיניות אזורית של חומת אש ברשת כדי להגן על מאזני עומסים פנימיים של אפליקציות ועל מאזני עומסים פנימיים של רשתות proxy.
אם בוחרים ליצור כללי חומת אש לדחייה של תעבורת נתונים נכנסת (ingress) ולאישור של תעבורת נתונים נכנסת (ingress) כדי לשלוט בגישה לכלל העברה של אחד ממאזני העומסים האלה, צריך ליצור כללי חומת אש לאישור של תעבורת נתונים נכנסת (ingress) כדי לאפשר למערכות של Google לעקוב אחרי תקינות הפרוקסי של Envoy המנוהל.
לכללי העברה של בדיקות תקינות ב-IPv4:
177.222.80.0/23
לכללי העברה של בדיקות תקינות של IPv6:
2a13:7500:8301:b029:0:2b::/96
בדיקות התקינות ש- S3NS משתמש בהן כדי לעקוב אחרי שרתי ה-proxy המנוהלים של Envoy הן פרט הטמעה פנימי, ולא בדיקת תקינות שניתן להגדיר אותה.
טווח כתובות ה-IP של בדיקות תקינות לשרתי backend של מאזן עומסי רשת להעברת סיגנל ללא שינוי
בדיקות תקינות של קצה עורפי במאזני עומסי רשת להעברת סיגנל ללא שינוי מגיעות מטווח כתובות ה-IP שמופיע בטבלה הבאה:
| מאזן עומסים וסוג קצה עורפי | טווחי כתובות IP של מקור בדיקת התקינות |
|---|---|
מאזני עומסים גלובליים חיצוניים של רשת להעברת סיגנל ללא שינוי שמשתמשים באחד מהקצוות העורפיים הבאים:
|
לגבי בדיקות תקינות של IPv4 לשרתי קצה עורפיים:
לגבי בדיקות תקינות של IPv6 לשרתי הקצה העורפיים:
|
מאזני עומסים אזוריים חיצוניים של רשת להעברת סיגנל ללא שינוי שמשתמשים באחד מהקצוות העורפיים הבאים1:
|
לגבי בדיקות תקינות של IPv4 לשרתי קצה עורפיים:
לגבי בדיקות תקינות של IPv6 לשרתי הקצה העורפיים:
|
מאזני עומסים פנימיים מסוג העברת סיגנל ללא שינוי שמשתמשים באחד מהקצוות העורפיים הבאים:
|
לגבי בדיקות תקינות של IPv4 לשרתי קצה עורפיים:
לגבי בדיקות תקינות של IPv6 לשרתי הקצה העורפיים:
|
1 מאזני עומסי רשת חיצוניים להעברת סיגנל ללא שינוי שמבוססים על מאגרי יעד תומכים רק בתנועת נתונים של IPv4, ויכול להיות שהם יעבירו את בדיקות התקינות דרך שרת המטא-נתונים. במקרה הזה, מקורות חבילות בדיקת התקינות תואמים לכתובת ה-IP של שרת המטא-נתונים: 169.254.169.254. אין צורך ליצור כללים של חומת אש כדי לאפשר תעבורה משרת המטא-נתונים. מותר בלי הגבלת שימוש להשתמש בחבילות משרת המטא-נתונים.
איך פועלות בדיקות התקינות
בקטעים הבאים מוסבר איך בדיקות תקינות פועלות.
Probes
כשיוצרים בדיקת תקינות או בדיקת תקינות מדור קודם, מציינים את הדגלים הבאים או מאשרים את ערכי ברירת המחדל שלהם. כל בדיקת תקינות או בדיקת תקינות מדור קודם שאתם יוצרים מיושמת על ידי כמה בדיקות. הדגלים האלה קובעים את התדירות שבה כל בקשה לבדיקת תקינות (probe) מעריכה מכונות בקבוצות של מכונות או נקודות קצה ב-NEGs אזוריים.
אי אפשר להגדיר את ההגדרות של בדיקת תקינות לכל קצה עורפי בנפרד. בדיקות תקינות משויכות לשירות קצה עורפי שלם. במאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי שמבוסס על מאגר יעד, בדיקת תקינות HTTP מדור קודם משויכת לכל מאגר היעד. לכן, הפרמטרים של הבדיקה זהים לכל מערכות הבק-אנד שאליהן מתייחס שירות בק-אנד או מאגר יעד נתון.
| דגל הגדרה | מטרה | ערך ברירת המחדל |
|---|---|---|
מרווח הבדיקהcheck-interval |
מרווח הבדיקה הוא משך הזמן שחל מתחילת בקשה לבדיקת תקינות (probe) אחת שמונפקת על ידי בודק אחד ועד לתחילת בקשה לבדיקת תקינות (probe) הבאה שמונפקת על ידי אותו בודק. היחידות הן שניות. | 5s (5 שניות) |
פסק זמןtimeout |
הזמן הקצוב לתפוגה הוא משך הזמן שבו Cloud de Confiance ממתין לתגובה לבקשה לבדיקת תקינות (probe). הערך שלו חייב להיות קטן או שווה למרווח הבדיקה. היחידות הן שניות. | 5s (5 שניות) |
שיקולי אבטחה לגבי טווחי כתובות IP של בדיקות
כשמתכננים בדיקות תקינות ואת כללי חומת האש הנדרשים, חשוב לקחת בחשבון את המידע הבא:
טווח כתובות ה-IP של הבדיקות שייך ל-Google. Cloud de Confiance משתמש במסלולים מיוחדים מחוץ לרשת ה-VPC, אבל בתוך רשת הייצור של Google, כדי לתקשר בין הבודקים של בדיקות תקינות לבין מכונות וירטואליות בעורף.
טווחי כתובות ה-IP של הבדיקה משמשים באופן בלעדי ברשת של סביבת הייצור של Google לבדיקת תקינות ולאיזון עומסים. Cloud de Confiance הרשת של סביבת הייצור של Google מונעת שימוש בטווחי כתובות ה-IP של הבדיקה לכל מטרה אחרת על ידי אכיפת הפעולות הבאות:
נתבים של Google edge משמיטים מנות מהאינטרנט אם המנות מזייפות כתובות IP של מקור מטווח IP של בדיקה.
אי אפשר להשתמש בטווחים של כתובות ה-IP של הבדיקה עבור רשתות משנה ברשתות ה-VPC. מידע נוסף זמין במאמרים בנושא טווחים אסורים של רשתות משנה ב-IPv4 ומפרטים של IPv6.
חשיבות הכללים של חומת האש
Cloud de Confiance מחייב ליצור את כללי חומת האש הנחוצים של תעבורת נתונים נכנסת (ingress) allow
כדי לאפשר תעבורת נתונים מהבודקים לשרתים העורפיים:
טווח כתובות ה-IP של הבדיקות הוא קבוצה מלאה של כתובות IP אפשריות שמשמשות את כלי הבדיקה שלCloud de Confiance . אם אתם משתמשים ב-
tcpdumpאו בכלי דומה, יכול להיות שלא תראו תנועה מכל כתובות ה-IP בכל טווחי כתובות ה-IP של הבדיקה. מומלץ ליצור כללים בחומת האש לכניסת תעבורה שמאפשרים את כל טווחי כתובות ה-IP של הבדיקות כמקורות. Cloud de Confiance יכול להיות שנפעיל בודקים חדשים באופן אוטומטי בלי לשלוח הודעה.מומלץ להגביל את הכללים האלה רק לפרוטוקולים וליציאות שתואמים לאלה שמשמשים את בדיקות התקינות.
אם אין לכם כללי חומת אש לתעבורת נתונים נכנסת (ingress)allow שמאפשרים את בדיקת תקינות, כלל תעבורת הנתונים הנכנסת (ingress) deny שמוגדר כברירת מחדל חוסם תעבורת נתונים נכנסת. אם כלי הבדיקה לא מצליחים ליצור קשר עם שרתי הבק-אנד, מאזן העומסים מחשיב את שרתי הבק-אנד כלא תקינים.
מספר בדיקות ותדירות
Cloud de Confiance שולח בדיקות תקינות ממערכות מיותרות מרובות שנקראות בודקים. הבודקים משתמשים בטווחים ספציפיים של כתובות IP של מקור. Cloud de Confiance לא מסתמך רק על בודק אחד כדי לבצע בדיקת תקינות – כמה בודקים מעריכים בו-זמנית את המופעים בעורפי קבוצת המופעים או את נקודות הקצה בעורפי NEG אזוריים. אם בדיקה אחת נכשלת, Cloud de Confiance ממשיך לעקוב אחרי מצבי תקינות של ה-Backend.
ההגדרות של המרווח ושל הזמן הקצוב לתפוגה שאתם מגדירים לבדיקת תקינות חלות על כל בודק. במערכת עורפית מסוימת, יומני הגישה לתוכנה ו-tcpdump מציגים בדיקות תכופות יותר מההגדרות שקבעתם.
זו התנהגות צפויה, ואי אפשר להגדיר את מספר הבודקים שמשמשים את Cloud de Confiance לבדיקות תקינות. עם זאת, אפשר להעריך את ההשפעה של כמה בדיקות בו-זמנית על ידי התייחסות לגורמים הבאים.
כדי לאמוד את תדירות הבקשה לבדיקת תקינות (probe) לכל שירות לקצה העורפי, צריך לקחת בחשבון את הפרטים הבאים:
תדירות בסיסית לכל שירות קצה עורפי. לכל בדיקת תקינות יש תדירות בדיקה משויכת, שהיא ביחס הפוך למרווח הבדיקה שהוגדר:
1⁄(interval)
כשמשייכים בדיקת תקינות לשירות קצה עורפי, מגדירים תדירות בסיסית שכל בודק משתמש בה עבור קצה עורפי בשירות הקצה העורפי הזה.
גורם קנה מידה של בדיקה. תדירות הבסיס של שירות ה-Backend מוכפלת במספר הבודקים הסימולטניים שבהם נעשה שימוש. Cloud de Confiance המספר הזה יכול להשתנות, אבל בדרך כלל הוא בין 5 ל-10.
כללי העברה מרובים למאזנים של עומסי רשת להעברת סיגנל ללא שינוי. אם הגדרתם כמה כללי העברה (עם כתובות IP שונות) שיש להם את אותה קבוצת מופעים או את אותו NEG אזורי כבק-אנד,מערכת Cloud de Confiance משתמשת בכמה בודקים כדי לבדוק את תקינות כל כתובת IP בבק-אנד. תדירות הבדיקה בכל שרת עורפי (backend instance) או נקודת קצה של קצה עורפי מוכפלת במספר כתובות ה-IP הייחודיות של כלל ההעברה שהיא משרתת. לדוגמה:
אם יוצרים שני כללי העברה של מאזן עומסי רשת חיצוני אזורי להעברת סיגנל ללא שינוי עם כתובות IP שונות שמפנות לאותו שירות לקצה העורפי, תדירות הבדיקה בכל שרת עורפי (backend instance) או נקודת קצה של שירות לקצה העורפי מוכפלת ב-2.
אם יוצרים כלל העברה של מאזן עומסי רשת גלובלי חיצוני להעברת סיגנל ללא שינוי, כלל העברה של מאזן עומסי רשת אזורי חיצוני להעברת סיגנל ללא שינוי וכלל העברה של מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי, שמשתפים את אותה קבוצת מכונות בתור בק-אנד, תדירות הבקשה לבדיקת תקינות (probe) בכל שרת עורפי (backend instance) בקבוצת המכונות מוכפלת ב-4. הסיבה לכך היא שכלל העברה של מאזן עומסי רשת חיצוני גלובלי להעברת סיגנל ללא שינוי מקבל שתי כתובות IP, ולכן תדירות הבדיקה של מופעי ה-Backend או של נקודות הקצה שלו תמיד כפולה מתדירות בדיקת תקינות שהוגדרה.
כמה שרתי proxy ליעד למאזני עומסים חיצוניים של אפליקציות (ALB). אם יש לכם כמה שרתי proxy ליעד שמפנים תנועה לאותה מפת כתובות URL, Cloud de Confiance משתמשים בכמה בודקים כדי לבדוק את כתובת ה-IP שמשויכת לכל שרת proxy ליעד. תדירות הבדיקה לכל שירות לקצה העורפי מוכפלת במספר שרתי ה-proxy לחלוקת העומס של היעד שהוגדרו.
כמה שרתי proxy ליעד למאזני עומסים חיצוניים של רשתות ולמאזני עומסים אזוריים פנימיים של רשתות לשרתי proxy. אם הגדרתם כמה שרתי proxy לחלוקת העומס שמפנים תנועה לאותו שירות לקצה העורפי,Cloud de Confiance משתמש בכמה בודקים כדי לבדוק את כתובת ה-IP שמשויכת לכל שרת proxy לחלוקת העומס. תדירות הבדיקה לכל שירות לקצה העורפי מוכפלת במספר שרתי ה-proxy של היעד שהוגדרו.
סכום של שירותים לקצה העורפי. אם קצה עורפי משמש כמה שירותים של קצה עורפי, המערכת יוצרת קשר עם מופעי הקצה העורפי בתדירות ששווה לסכום התדירויות של בדיקות תקינות לכל שירות קצה עורפי.
כשמשתמשים ב-backends של NEG אזורי, קשה יותר לקבוע את המספר המדויק של בדיקות החיות. לדוגמה, אותה נקודת קצה יכולה להיות בכמה קבוצות אזוריות של נקודות קצה ברשת (zonal NEGs). יכול להיות של-NEGs אזוריים לא יהיה אותו סט של נקודות קצה, ונקודות קצה שונות יכולות להצביע על אותו קצה עורפי.
יעד לחבילות בדיקה
בטבלה הבאה מוצגים ממשק הרשת וכתובות ה-IP של היעד שאליהם שולחים בודקי בדיקת תקינות מנות, בהתאם לסוג מאזן העומסים.
במאזני עומסי רשת להעברת סיגנל ללא שינוי, האפליקציה צריכה להיות משויכת לכתובת ה-IP של מאזן העומסים (או לכל כתובת IP 0.0.0.0).
| מאזן עומסים | ממשק רשת של יעד | כתובת ה-IP של היעד |
|---|---|---|
|
|
|
|
בבק-אנד של קבוצת מופעים, ממשק הרשת הראשי
( עבור קצוות עורפיים של NEG אזורי עם נקודות קצה של |
כתובות ה-IP שמשויכות לכלל ההעברה. אם מגדירים כמה כללי העברה (עם כתובות IP שונות) שיש להם את אותה קבוצת מופעים או את אותו NEG אזורי כקצה עורפי, Cloud de Confiance משתמש בכמה בודקים כדי לבדוק את תקינות כל כתובת IP, וכך מגדיל את תדירות הבדיקה בכל שרת עורפי (backend instance) או בכל נקודת קצה של קצה עורפי. פרטים נוספים זמינים במאמר בדיקות מרובות ותדירות. |
|
ממשק הרשת ברשת ה-VPC שתואם ל מפרט הרשת של שירות הקצה העורפי. |
כתובת ה-IP שמשויכת לכלל ההעברה. אם מגדירים כמה כללי העברה (עם כתובות IP שונות) שיש להם את אותה קבוצת מופעים או את אותו NEG אזורי כקצה עורפי, Cloud de Confiance משתמש בכמה בודקים כדי לבדוק את תקינות כל כתובת IP, וכך מגדיל את תדירות הבדיקה בכל שרת עורפי (backend instance) או בכל נקודת קצה של קצה עורפי. פרטים נוספים זמינים במאמר בדיקות מרובות ותדירות. |
קריטריונים להצלחה של HTTP, HTTPS ו-HTTP/2
בבדיקות תקינות של HTTP, HTTPS ו-HTTP/2 תמיד נדרש קוד תגובה של HTTP 200 (OK) לפני שפסק הזמן של בדיקת התקינות מסתיים. כל קודי תגובת ה-HTTP האחרים, כולל קודי תגובה של הפניה כמו 301 ו-302, נחשבים כלא תקינים.
בנוסף לדרישה לקוד תגובה מסוג HTTP 200 (OK), אפשר:
מגדירים כל כלי לבדיקת תקינות לשליחת בקשות HTTP לנתיב בקשה ספציפי במקום לנתיב הבקשה שמוגדר כברירת מחדל,
/.מגדירים כל בודק תקינות כך שיבדוק אם מחרוזת תגובה צפויה מופיעה בגוף של תגובת ה-HTTP. מחרוזת התגובה הצפויה צריכה להכיל רק תווים מסוג ASCII שניתנים להדפסה, באורך של בייט אחד, והיא צריכה להיות ממוקמת ב-1,024 הבייטים הראשונים של גוף תגובת ה-HTTP.
בטבלה הבאה מפורטים שילובים תקינים של נתיב הבקשה ודגלי התגובה שזמינים לבדיקות תקינות של HTTP, HTTPS ו-HTTP/2.
| דגלי הגדרה | התנהגות של כלי הבדיקה | קריטריונים להצלחה |
|---|---|---|
לא צוין --request-path ולא --response
|
הכלי לבדיקת קישוריות משתמש ב-/ כנתיב הבקשה. |
קוד תגובה של HTTP 200 (OK) בלבד. |
צוינו גם --request-path וגם --response
|
הכלי לבדיקת קישוריות משתמש בנתיב הבקשה שהוגדר. | קוד התגובה של HTTP 200 (OK) ועד 1,024 התווים הראשונים של ASCII בגוף תגובת ה-HTTP צריכים להיות זהים למחרוזת התגובה הצפויה. |
רק --response צוין
|
הכלי לבדיקת קישוריות משתמש ב-/ כנתיב הבקשה. |
קוד התגובה של HTTP 200 (OK) ועד 1,024 התווים הראשונים של ASCII בגוף תגובת ה-HTTP צריכים להיות זהים למחרוזת התגובה הצפויה. |
רק --request-path צוין
|
הכלי לבדיקת קישוריות משתמש בנתיב הבקשה שהוגדר. | קוד תגובה של HTTP 200 (OK) בלבד. |
קריטריונים להצלחה של SSL ו-TCP
בדיקות התקינות של TCP ו-SSL כוללות את קריטריוני ההצלחה הבסיסיים הבאים:
בבדיקות תקינות של TCP, בודק התקינות צריך לפתוח בהצלחה חיבור TCP לשרת העורפי לפני שפג הזמן הקצוב לתפוגה של בדיקת התקינות.
בבדיקות תקינות של SSL, כלי לבדיקת תקינות צריך לפתוח בהצלחה חיבור TCP לשרת העורפי ולהשלים את לחיצת היד של TLS/SSL לפני שפג הזמן הקצוב לתפוגה של בדיקת התקינות.
בבדיקות תקינות של TCP, צריך לסגור את חיבור ה-TCP באחת מהדרכים הבאות:
- על ידי בדיקת תקינות של בדיקה ששולחת מנת FIN או מנת RST (איפוס), או
- הקצה העורפי שולח חבילת FIN. אם בק-אנד שולח חבילת TCP RST, יכול להיות שהבדיקה תיחשב כלא מוצלחת אם כלי הבדיקה של בדיקת תקינות כבר שלח חבילת FIN.
בטבלה הבאה מפורטים שילובים תקינים של דגלי בקשה ותגובה שזמינים לבדיקות תקינות של TCP ו-SSL. הדגלים של הבקשה ושל התגובה צריכים להכיל רק תווים בפורמט ASCII שניתן להדפסה, כל מחרוזת באורך של 1,024 תווים לכל היותר.
| דגלי הגדרה | התנהגות של כלי הבדיקה | קריטריונים להצלחה |
|---|---|---|
לא צוין --request ולא --response
|
הכלי לבדיקת תקינות לא שולח מחרוזת בקשה. | קריטריונים בסיסיים להצלחה בלבד. |
צוינו גם --request וגם --response
|
הכלי לשליחת בדיקות שולח את מחרוזת הבקשה שהוגדרה. | קריטריון ההצלחה הבסיסי ומחרוזת התגובה שמתקבלת מהבודק צריכים להיות זהים למחרוזת התגובה הצפויה. |
רק --response צוין
|
הכלי לבדיקת תקינות לא שולח מחרוזת בקשה. | קריטריון ההצלחה הבסיסי ומחרוזת התגובה שמתקבלת מהבודק צריכים להיות זהים למחרוזת התגובה הצפויה. |
רק --request צוין
|
הכלי לשליחת בדיקות שולח את מחרוזת הבקשה שהוגדרה. | רק קריטריונים בסיסיים להצלחה (לא נבדק מחרוזת תגובה כלשהי). |
קריטריונים להצלחה של gRPC
בדיקות תקינות של gRPC משמשות רק עם אפליקציות gRPC, Cloud de Confiance מאזני עומסים ו-Cloud Service Mesh. Cloud de Confiance יש שני סוגים של בדיקות תקינות של gRPC:
- בדיקות התקינות של
grpc_with_tlsמשמשות לבדיקת התקינות של קצה עורפי של gRPC עם TLS מופעל. הם תומכים בהצפנת TLS לא מאומתת, כלומר בדיקות התקינות לא מאמתות את הזהות של השרת. grpcבדיקות תקינות משמשות לבדיקת התקינות של קצוות עורפיים לא מאובטחים של gRPC. הם לא תומכים באימות ובהצפנה, ולכן אי אפשר להשתמש בהם ב-gRPC backend עם TLS מופעל.
אם אתם משתמשים בבדיקות תקינות של gRPC (עם או בלי TLS), אתם צריכים לוודא ששירות ה-gRPC שולח את תגובת ה-RPC עם הסטטוס OK וששדה הסטטוס מוגדר ל-SERVING או ל-NOT_SERVING בהתאם.
למידע נוסף, קראו את המאמרים הבאים:
קריטריונים להצלחה של בדיקות תקינות מדור קודם
אם התגובה שמתקבלת מהבקשה לבדיקת תקינות (probe) מדור קודם היא HTTP 200 OK, הבקשה לבדיקת תקינות (probe) נחשבת למוצלחת. כל קודי תגובת ה-HTTP האחרים, כולל הפניה אוטומטית (301, 302), נחשבים כלא תקינים.
מצב תקינות
Cloud de Confiance משתמש בדגלי ההגדרה הבאים של סף תקין וסף לא תקין כדי לקבוע את מצב התקינות הכללי של כל שרת קצה שאליו מופנה תנועת גולשים לצורך איזון עומסים.
| דגל הגדרה | מטרה | ערך ברירת המחדל |
|---|---|---|
סף בריאhealthy-threshold |
סף תקינות המערכת מציין את מספר התוצאות הרצופות של בדיקות תקינות שהתקבלו בהצלחה עבור קצה עורפי שהיה לא תקין1 כדי שייחשב כתקין. קצוות עורפיים לא תקינים יכולים לחזור להיות תקינים אם הם עומדים שוב בסף התקינות. Cloud de Confiance מחשיב קצוות עורפיים כקצוות עורפיים תקינים אחרי שהושג הסף הזה. שרתי קצה עורפיים תקינים יכולים לקבל חיבורים חדשים. יכול להיות שמערכות עורפיות שנוספו לאחרונה ייחשבו תקינות אחרי בדיקה מוצלחת אחת. |
סף של 2 בדיקות. |
סף לא תקיןunhealthy-threshold |
הסף של מצב לא תקין מציין את מספר התוצאות הרצופות של בדיקות תקינות שנכשלו עבור קצה עורפי שהיה תקין בעבר2 כדי שייחשב לא תקין. Cloud de Confiance consider backends to be unhealthy when the unhealthy threshold has been met. שרתי קצה עורפיים לא תקינים לא יכולים לקבל חיבורים חדשים, אבל חיבורים קיימים לא מסתיימים באופן מיידי. במקום זאת, החיבור נשאר פתוח עד שמתרחש זמן קצוב לתפוגה או עד שתעבורת הנתונים נשמטת. |
סף של 2 בדיקות. |
1 Previously unhealthy backend מתייחס לקצוות עורפיים שהיו במצבי בדיקת תקינות מפורטים UNHEALTHY או TIMEOUT.
2 Previously healthy backend מתייחס לשרתי קצה עורפיים שהיו במצבי בדיקת תקינות מפורטים HEALTHY או DRAINING.
ההתנהגות הספציפית כשכל השרתים העורפיים לא תקינים משתנה בהתאם לסוג איזון העומסים שבו אתם משתמשים:
| מאזן עומסים | התנהגות כשכל ה-backends לא תקינים |
|---|---|
|
מאזן עומסים חיצוני אזורי של אפליקציות (ALB) מאזן עומסים פנימי אזורי של אפליקציות (ALB) |
מחזיר ללקוחות קוד מצב HTTP 503 כשכל השרתים העורפיים לא תקינים. |
| מאזני עומסים של רשת בשרת proxy | מפסיק חיבורי TCP חדשים של לקוחות כשכל השרתים העורפיים לא תקינים. |
| מאזני עומסים גלובליים חיצוניים של רשת להעברת סיגנל ללא שינוי |
אם כל השרתים העורפיים לא תקינים באזור הקרוב ביותר למשתמש, התעבורה מועברת אוטומטית לאזור הקרוב הבא שבו השרתים העורפיים תקינים ויש בו קיבולת זמינה. אם כל הקצוות העורפיים לא תקינים בכל העולם, כמוצא אחרון, מאזן העומסים יבזר את תעבורת הנתונים בין הקצוות העורפיים הלא תקינים בהתאם ל יכולות היעד. |
| מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי מאזני עומסי רשת אזוריים חיצוניים להעברת סיגנל ללא שינוי שמבוססים על שירות לקצה העורפי |
אם מדיניות המעבר לגיבוי (failover) מוגדרת להפסקת חיבורים חדשים כשכל השרתים העורפיים הראשיים והגיבויים לא תקינים, כל התנועה הנכנסת תופסק. אחרת, כמוצא אחרון, התעבורה תפוזר בין קצוות עורפיים לא תקינים בהתאם להגדרת יתירות הכשל ולמשקלים של הקצוות העורפיים. פרטים נוספים זמינים במאמרים בנושאים הבאים: |
| מאזני עומסים אזוריים חיצוניים של רשת להעברת סיגנל ללא שינוי שמבוססים על מאגר יעד | כמוצא אחרון, פיזור התעבורה בין כל הקצוות העורפיים הלא תקינים. |
הערות נוספות
בקטעים הבאים מופיעות הערות נוספות לגבי השימוש בבדיקות תקינות ב- Cloud de Confiance.
אישורים ובדיקות תקינות
Cloud de Confiance הבודקים של בדיקות תקינות לא מבצעים אימות של אישורים, גם לא עבור פרוטוקולים שדורשים ששרתי הקצה העורפי ישתמשו באישורים (SSL, HTTPS ו-HTTP/2). לדוגמה:
- אפשר להשתמש באישור בחתימה עצמית או באישור שחתום על ידי רשות אישורים (CA).
- אפשר להשתמש באישורים שתוקפם פג או שעדיין לא נכנסו לתוקף.
- המאפיינים
CNו-subjectAlternativeNameלא צריכים להתאים לכותרתHostאו לרשומת PTR של DNS.
כותרות
בבדיקות תקינות שמשתמשות בכל פרוטוקול, אבל לא בבדיקות תקינות מדור קודם, אפשר להגדיר כותרת proxy באמצעות הדגל --proxy-header.
בבדיקות תקינות שמשתמשות בפרוטוקולים HTTP, HTTPS או HTTP/2, ובבדיקות תקינות מדור קודם, אפשר לציין כותרת HTTP Host באמצעות הדגל --host.
אם אתם משתמשים בכותרות בקשה בהתאמה אישית, חשוב לדעת שמאזן העומסים מוסיף את הכותרות האלה רק לבקשות של הלקוח, ולא לבדיקות של תקינות השרת. אם הקצה העורפי שלכם דורש כותרת ספציפית לאימות שלא קיימת במנות של בדיקת התקינות, יכול להיות שבדיקת התקינות תיכשל.
דוגמה לבדיקת תקינות
נניח שהגדרתם בדיקת תקינות עם ההגדרות הבאות:
- מרווח: 30 שניות
- זמן קצוב לתפוגה: 5 שניות
- פרוטוקול: HTTP
- סף לא תקין: 2 (ברירת מחדל)
- סף בריא: 2 (ברירת מחדל)
ההגדרות האלה גורמות לבדיקת התקינות להתנהג באופן הבא:
- מגדירים בו-זמנית כמה מערכות מיותרות עם הפרמטרים של בדיקת תקינות. הגדרות המרווח וזמן הקצוב לתפוגה חלות על כל מערכת. מידע נוסף זמין במאמר בנושא בדיקות מרובות ותדירות.
כל בודק תקינות מבצע את הפעולות הבאות:
- יוזם חיבור HTTP מאחת מכתובות ה-IP של המקור לשרת העורפי (backend instance) כל 30 שניות.
- ההמתנה היא עד חמש שניות לקוד סטטוס HTTP (
200 (OK)) (קריטריון ההצלחה לפרוטוקולים HTTP, HTTPS ו-HTTP/2).
בק-אנד נחשב לא תקין כאשר לפחות אחת מבקשות בדיקת התקינות של מערכת בדיקת התקינות מבצעת את הפעולות הבאות:
- לא מקבל קוד תגובה
HTTP 200 (OK)לשתי בדיקות רצופות. לדוגמה, יכול להיות שהחיבור יידחה או שיהיה פסק זמן בחיבור או בשקע. - מקבל שני תגובות רצופות שלא תואמות לקריטריונים להצלחה שספציפיים לפרוטוקול.
- לא מקבל קוד תגובה
בקצה העורפי נחשב תקין אם לפחות מערכת אחת של בקשה לבדיקת תקינות (probe) מקבלת שתי תגובות רצופות שתואמות לקריטריונים להצלחה שספציפיים לפרוטוקול.
בדוגמה הזו, כל בודק יוזם חיבור כל 30 שניות. הפרק הזמן שעובר בין ניסיונות החיבור של כלי הבדיקה הוא 30 שניות, ללא קשר למשך הזמן הקצוב לתפוגה (בין אם החיבור הסתיים בגלל הזמן הקצוב לתפוגה ובין אם לא). במילים אחרות, ערך הזמן הקצוב לתפוגה תמיד צריך להיות קטן או שווה לערך המרווח, והזמן הקצוב לתפוגה אף פעם לא יכול להיות גדול מהמרווח.
בדוגמה הזו, התזמון של כל בודק נראה כך, בשניות:
- t=0: התחלת בדיקה A.
- t=5: עצירת בדיקה A.
- t=30: התחלת בדיקה B.
- t=35: הפסקת בדיקה B.
- t=60: מתחילים את בדיקת C.
- t=65: עצירת בדיקה C.
המאמרים הבאים
- כדי ליצור ולשנות בדיקות תקינות ולהשתמש בהן, אפשר לעיין במאמר בנושא שימוש בבדיקות תקינות.
- כדי לפתור בעיות בבדיקות התקינות, מפעילים את הרישום ביומן של בדיקות התקינות.