הגדרת בדיקת תקינות מורכבת למעבר אוטומטי לגיבוי באזור אחר

בדף הזה מוסבר איך ספקי שירות יכולים להגדיר את Composite Health כדי לתמוך במעבר אוטומטי לגיבוי (failover) בין אזורים בשירותים שפורסמו.

לפני שמתחילים

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות להגדרת מצב תקינות משולב, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין רשת של Compute (roles/compute.networkAdmin) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

זהו תפקיד מוגדר מראש שכולל את ההרשאות שנדרשות להגדרת מדד הבריאות המורכב. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי להגדיר את התכונה 'בריאות משולבת', נדרשות ההרשאות הבאות:

  • compute.regionHealthAggregationPolicies.list
  • compute.regionHealthAggregationPolicies.get
  • compute.regionHealthAggregationPolicies.create
  • compute.regionHealthAggregationPolicies.update
  • compute.regionHealthAggregationPolicies.delete
  • compute.regionHealthSources.list
  • compute.regionHealthSources.get
  • compute.regionHealthSources.create
  • compute.regionHealthSources.update
  • compute.regionHealthSources.delete
  • compute.regionCompositeHealthChecks.list
  • compute.regionCompositeHealthChecks.get
  • compute.regionCompositeHealthChecks.create
  • compute.regionCompositeHealthChecks.update
  • compute.regionCompositeHealthChecks.delete

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

הגדרת Composite Health לתמיכה במעבר אוטומטי ליתירות כשל באזור אחר

בקטעים הבאים מוסבר איך להגדיר את התכונה Composite Health למעבר אוטומטי לגיבוי במקרה של כשל באזור אחר.

התכונה Composite Health לא דורשת הגדרה על ידי צרכן השירות, אבל היא פועלת רק אם הצרכן מגדיר קצוות עורפיים נתמכים של Private Service Connect בפריסה מרובת אזורים. מידע על האופן שבו צרכני שירות יכולים להגדיר את רשת ה-VPC שלהם לשימוש ב-Composite Health זמין במאמר מעבר אוטומטי לגיבוי בין אזורים.

יצירת מדיניות צבירה של נתוני בריאות

צריך ליצור לפחות מדיניות אחת של צבירת נתונים על תקינות בכל אזור שבו רוצים לתמוך במעבר לגיבוי בענן בין אזורים.

מדיניות צבירה של נתוני תקינות היא משאב שאפשר לעשות בו שימוש חוזר, והיא מגדירה את הקריטריונים שלפיהם שירות לקצה העורפי נחשב תקין. אפשר להחיל את אותה מדיניות על כמה שירותי קצה עורפי, או ליצור מדיניות שונה לשירותים עם דרישות שונות לגבי תקינות.

המסוף

  1. נכנסים לדף Composite Health במסוף Google Cloud :

    מעבר אל Composite Health

  2. לוחצים על מדיניות בנושא צבירת נתונים בתחום הבריאות.

  3. לוחצים על יצירת מדיניות צבירת נתונים בתחום הבריאות.

  4. מזינים שם למדיניות של צבירת נתונים על מצב הבריאות.

  5. אופציונלי: מזינים תיאור של המדיניות.

  6. לוחצים על אזור ובוחרים אזור להגדרת מדיניות צבירת נתונים בתחום הבריאות.

  7. לוחצים על הבא.

  8. בתיבה Healthy percent threshold (סף אחוז תקין), מזינים את אחוז נקודות הקצה המינימלי בשירות לקצה העורפי שצריך להיות תקין כדי שמקור הבדיקה ייחשב תקין – לדוגמה, 75.

  9. בתיבה Minimum healthy threshold (סף בריאות מינימלי), מזינים את מספר נקודות הקצה המינימלי בשירות לקצה העורפי שצריכות להיות תקינות כדי שמקור הבריאות ייחשב כתקין.

  10. לוחצים על יצירה.

gcloud

משתמשים בפקודה gcloud compute health-aggregation-policies create.

gcloud compute health-aggregation-policies create POLICY \
    --region=REGION \
    --healthy-percent-threshold=PERCENT_HEALTHY \
    --min-healthy-threshold=MINIMUM_HEALTHY

מחליפים את מה שכתוב בשדות הבאים:

  • POLICY: השם של מדיניות צבירת נתוני הבריאות
  • REGION: האזור של מדיניות צבירת נתוני הבריאות
  • PERCENT_HEALTHY: אחוז נקודות הקצה המינימלי בשירות לקצה העורפי שצריכות להיות תקינות כדי שמקור הבדיקה ייחשב תקין. לדוגמה, 75

    ערך ברירת המחדל הוא 60. נקודות קצה יכולות להיות מכונות וירטואליות בקבוצת מופעים או נקודות קצה ברשת בקבוצת נקודות קצה ברשת (NEG).

  • MINIMUM_HEALTHY: מספר נקודות הקצה המינימלי בשירות לקצה העורפי שצריכות להיות תקינות כדי שמקור הבדיקה ייחשב תקין

    ערך ברירת המחדל הוא 1.

API

שליחת בקשה ל-method‏ regionHealthAggregationPolicies.insert.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/healthAggregationPolicies

תוכן בקשת JSON:

{
  "name": "POLICY",
  "policyType": "BACKEND_SERVICE_POLICY",
  "healthyPercentThreshold": PERCENT_HEALTHY,
  "minHealthyThreshold": MINIMUM_HEALTHY
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט של מדיניות צבירת הנתונים על תקינות.
  • REGION: האזור של מדיניות צבירת נתוני הבריאות.
  • POLICY: השם של מדיניות צבירת נתוני הבריאות.
  • PERCENT_HEALTHY: אחוז נקודות הקצה המינימלי בשירות לקצה העורפי שצריך להיות תקין כדי שמקור הבדיקה ייחשב תקין. לדוגמה, 75.

    ערך ברירת המחדל הוא 60. נקודות קצה יכולות להיות מכונות וירטואליות בקבוצת מופעים או נקודות קצה ברשת בקבוצת נקודות קצה ברשת (NEG).

  • MINIMUM_HEALTHY: המספר המינימלי של נקודות הקצה בשירות לקצה העורפי שצריכות להיות תקינות כדי שמקור הבדיקה ייחשב תקין.

    ערך ברירת המחדל הוא 1.

יצירת מקור נתונים בנושא בריאות

יוצרים מקור נתונים של בריאות לכל מופע אזורי של השירות שפרסמתם. אם מופע של השירות שפרסמתם תלוי בסטטוס של כמה שירותי קצה עורפיים, צריך ליצור מקור סטטוס נפרד לכל אחד משירותי הקצה העורפיים האלה.

מקור מידע בנושא בריאות הוא המשאב שמקשר בין מדיניות צבירת נתונים בנושא בריאות לבין שירות לקצה העורפי ספציפי. בדיקת תקינות מורכבת מסכמת את מצבי התקינות ממקור אחד או יותר של נתוני תקינות כדי ליצור מצב תקינות מורכב סופי לשירות שלכם.

המסוף

  1. נכנסים לדף Composite Health במסוף Google Cloud :

    מעבר אל Composite Health

  2. לוחצים על מקורות נתונים של בריאות.

  3. לוחצים על יצירת מקור נתונים.

  4. מזינים שם למקור המידע על הבריאות.

  5. אופציונלי: מזינים תיאור של מקור המידע הרפואי.

  6. לוחצים על אזור ובוחרים אזור למקור המידע הרפואי.

  7. לוחצים על הבא.

  8. לוחצים על מקור, ואז בוחרים שירות לקצה העורפי לשיוך למקור המידע הרפואי.

  9. לוחצים על הבא.

  10. לוחצים על מדיניות צבירת נתונים בתחום הבריאות, ואז בוחרים את מדיניות צבירת הנתונים בתחום הבריאות שרוצים להחיל על מקור הנתונים הזה.

  11. לוחצים על יצירה.

gcloud

משתמשים בפקודה gcloud compute health-sources create.

gcloud compute health-sources create HEALTH_SOURCE \
    --region=REGION \
    --source-type=BACKEND_SERVICE \
    --sources=BACKEND_SERVICE \
    --health-aggregation-policy=POLICY

מחליפים את מה שכתוב בשדות הבאים:

  • HEALTH_SOURCE: השם של מקור המידע בנושא בריאות
  • REGION: האזור של מקור המידע בנושא בריאות

    מדיניות צבירת הנתונים של הבריאות צריכה להיות באותו אזור כמו מקור הנתונים של הבריאות.

  • BACKEND_SERVICE: השם של שירות קצה עורפי יחיד לשיוך למקור הבדיקות

    שירות לקצה העורפי צריך לעמוד בדרישות הבאות:

    • סכמת איזון העומסים שלו חייבת להיות INTERNAL או INTERNAL_MANAGED.
    • היא צריכה להיות באותו אזור שבו נמצא מקור המידע הרפואי שאתם יוצרים.
    • העורפים שלו חייבים להיות קבוצות של מופעים או קבוצות של נקודות קצה ברשת מהסוגים GCE_VM_IP או GCE_VM_IP_PORT.
  • POLICY: השם של מדיניות צבירת נתוני הבריאות שרוצים להחיל על מקור נתוני הבריאות הזה

API

שליחת בקשה ל-method‏ regionHealthSources.insert.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/healthSources

תוכן בקשת JSON:

{
  "name": "HEALTH_SOURCE",
  "sourceType": "BACKEND_SERVICE",
  "sources": [
    "projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE"
  ],
  "healthAggregationPolicy": "projects/PROJECT_ID/regions/REGION/healthAggregationPolicies/POLICY"
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט של מקור המידע הרפואי.
  • REGION: האזור של מקור הבדיקות.

    מדיניות צבירת הנתונים של הבריאות צריכה להיות באותו אזור כמו מקור הנתונים של הבריאות.

  • HEALTH_SOURCE: השם של מקור המידע על הבריאות.

  • BACKEND_SERVICE: השם של שירות קצה עורפי יחיד לשיוך למקור המידע על תקינות.

    שירות לקצה העורפי צריך לעמוד בדרישות הבאות:

    • סכמת איזון העומסים שלו חייבת להיות INTERNAL או INTERNAL_MANAGED.
    • היא צריכה להיות באותו אזור שבו נמצא מקור המידע הרפואי שאתם יוצרים.
    • העורפים שלו חייבים להיות קבוצות של מופעים או קבוצות של נקודות קצה ברשת מהסוגים GCE_VM_IP או GCE_VM_IP_PORT.
  • POLICY: השם של מדיניות צבירת נתונים על תקינות שרוצים להחיל על מקור הנתונים הזה.

יצירת בדיקת תקינות מורכבת

יוצרים בדיקת תקינות מורכבת לכל מופע אזורי של השירות שפורסם.

בדיקת תקינות מורכבת מסכמת את מצבי התקינות של מקורות התקינות המשויכים לה, ויוצרת מצב תקינות מורכב סופי. מצב הבריאות הסופי חל על השירות האזורי שפורסם ומשויך לכלל ההעברה שציינתם כיעד בריאות.

המסוף

  1. נכנסים לדף Composite Health במסוף Google Cloud :

    מעבר אל Composite Health

  2. לוחצים על בדיקות תקינות מורכבות.

  3. לוחצים על יצירת בדיקת תקינות מורכבת.

  4. מזינים שם לבדיקת תקינות מורכבת.

  5. אופציונלי: מזינים תיאור של בדיקת תקינות מורכבת.

  6. לוחצים על Region (אזור) ובוחרים אזור לבדיקת תקינות מורכבת.

  7. לוחצים על הבא.

  8. לוחצים על מקור בריאות, ואז בוחרים מקור בריאות לשיוך לבדיקת הבריאות המורכבת. כדי להוסיף עוד מקורות מידע בנושא בריאות, לוחצים על הוספת מקור מידע בנושא בריאות ואז בוחרים עוד מקור מידע בנושא בריאות.

  9. לוחצים על הבא.

  10. לוחצים על Load balancer type (סוג מאזן עומסים) ובוחרים את סוג מאזן העומסים שרוצים להשתמש בו כיעד הבדיקה.

  11. לוחצים על Load balancer (מאזן עומסים) ואז בוחרים את מאזן העומסים שרוצים להשתמש בו כיעד הבדיקה.

  12. אם מאזן העומסים משויך לכמה כללי העברה, לוחצים על כלל העברה ואז בוחרים את כלל ההעברה שרוצים להשתמש בו כיעד לבדיקת התקינות.

  13. לוחצים על יצירה.

gcloud

משתמשים בפקודה gcloud compute composite-health-checks create.

gcloud compute composite-health-checks create COMPOSITE_HEALTH_CHECK \
    --region=REGION \
    --health-sources=HEALTH_SOURCES \
    --health-destination=HEALTH_DESTINATION

מחליפים את מה שכתוב בשדות הבאים:

  • COMPOSITE_HEALTH_CHECK: השם של בדיקת תקינות מורכבת
  • REGION: האזור של בדיקת התקינות המורכבת
  • HEALTH_SOURCES: השמות של מקורות הבריאות (לפחות אחד) שרוצים לשייך לבדיקת הבריאות המורכבת

    אפשר לכלול כמה מקורות מידע על הבריאות ברשימה שמופרדת בפסיקים.

  • HEALTH_DESTINATION: ה-URI של כלל ההעברה שמקבל את מצב התקינות המורכב מבדיקת התקינות המורכבת הזו. לדוגמה: projects/PROJECT_ID/regions/REGION/forwardingRules/FORWARDING_RULE

    כלל ההעברה חייב להיות משויך למאזן עומסים של יצרן שתומך בבדיקת תקינות מורכבת ועומד בדרישות הבאות:

    • סכמת איזון העומסים שלו חייבת להיות INTERNAL או INTERNAL_MANAGED.
    • היא צריכה להיות באותו אזור שבו נמצאת בדיקת תקינות משולבת.

API

שליחת בקשה ל-method‏ regionCompositeHealthChecks.insert.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/compositeHealthChecks

תוכן בקשת JSON:

{
  "name": "COMPOSITE_HEALTH_CHECK",
  "healthSources": [
    "projects/PROJECT_ID/regions/REGION/healthSources/HEALTH_SOURCE"
  ],
  "healthDestination": "HEALTH_DESTINATION"
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט של בדיקת תקינות מורכבת.
  • REGION: האזור של בדיקת תקינות משולבת.
  • COMPOSITE_HEALTH_CHECK: השם של בדיקת תקינות מורכבת.
  • HEALTH_SOURCE: השם של מקור נתונים של בריאות שאותו רוצים לשייך לבדיקת הבריאות המורכבת. אפשר לכלול כמה מקורות מידע בתחום הבריאות במערך healthSources.

  • HEALTH_DESTINATION: ה-URI של כלל ההעברה שמקבל את מצב התקינות המורכב מבדיקת התקינות המורכבת הזו. לדוגמה: projects/PROJECT_ID/regions/REGION/forwardingRules/FORWARDING_RULE

    כלל ההעברה חייב להיות משויך למאזן עומסים של יצרן שתומך בבדיקת תקינות מורכבת ועומד בדרישות הבאות:

    • סכמת איזון העומסים שלו חייבת להיות INTERNAL או INTERNAL_MANAGED.
    • היא צריכה להיות באותו אזור שבו נמצאת בדיקת תקינות משולבת.

המאמרים הבאים