שדרוג קבוצות מופעי מכונה מנוהלים ב-Apigee

הדף הזה רלוונטי ל-Apigee, אבל לא ל-Apigee Hybrid.

לצפייה במאמרי העזרה של Apigee Edge.

במאמר הזה מוסבר איך לבדוק ולשדרג קבוצות של מופעים מנוהלים ב-Compute Engine, שמנתבות תנועה צפונה ל-Apigee.

סקירה כללית

בחלק מהפריסות של Apigee, התנועה של שרתי ה-proxy מנותבת ממאזן עומסים דרך קבוצות של מכונות מנוהלות (MIG) ב-Compute Engine שפועלות בפרויקט, והבקשות מועברות לנקודת הקצה של סביבת זמן הריצה של Apigee, כולל איזון עומסים לכיוון צפון ובדיקות תקינות פעילות באמצעות Private Service Connect. ‫Apigee לא מנהלת את קבוצות ה-MIG האלה. כדי לשמור על האבטחה והאמינות, אתם צריכים לעקוב אחרי קבוצות ה-MIG והמכונות הווירטואליות האלה, לנהל אותן ולשדרג אותן בעצמכם, בהתאם למחזור החיים של מערכת ההפעלה של Compute Engine.

כשהתמיכה במערכת ההפעלה מסתיימת, Compute Engine מסירה את הכינוי של משפחת קובצי האימג' למכונות וירטואליות חדשות. המכונות הווירטואליות הקיימות ב-MIG ממשיכות לפעול ולשרוד אירועי תחזוקה של מארחים בזמן אמת. עם זאת, אם קבוצת ה-MIG תנסה ליצור מכונה וירטואלית חדשה במהלך התאמה אוטומטית לעומס, תיקון תוכנה אוטומטי או החלפה הדרגתית, היצירה של המכונה הווירטואלית תיכשל כי משפחת קובצי האימג' של המקור לא נמצאת יותר. אם המכונות הווירטואליות התקינות של שרת ה-proxy לא זמינות, מאזן העומסים מחזיר שגיאות HTTP 502 Bad Gateway והתנועה ב-API נפסקת.

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

הפקודות במסמך הזה הן דוגמאות. יכול להיות שהפריסה שלכם תשתמש בתגי רשת, סוגי מכונות, גודלי דיסקים, מטא-נתונים או מספרים של מכונות וירטואליות שונים. קודם בודקים את ההגדרות הקיימות ומשנים את הדגלים של הפקודה בהתאם לסביבה.

מחליפים את ה-placeholders הבאים בפקודות לדוגמה בערכים מהסביבה שלכם:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud שבו נפרסו קבוצות ה-MIG והתבניות של הגדרות המכונה.
  • ‫REGION: האזור ב-Compute Engine של קבוצת ה-MIG.
  • ‫EXISTING_MIG_NAME: השם של קבוצת ה-MIG הקיימת.
  • ‫OLD_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה שמצורפת ל-EXISTING_MIG_NAME.
  • ‫NEW_TEMPLATE_NAME: השם של התבנית החדשה של הגדרות המכונה שאתם יוצרים.
  • ‫VPC_NAME: השם של רשת ה-VPC שמשמשת את קבוצת ה-MIG.
  • ‫VPC_SUBNET: השם של רשת המשנה של ה-VPC ב-REGION שמשמשת את ה-MIG.
  • ‫IMAGE_FAMILY: משפחה נתמכת של קובצי אימג' של מערכת ההפעלה מתוך פרטי מערכת ההפעלה של Compute Engine.
  • ‫IMAGE_PROJECT: פרויקט התמונה שמכיל את IMAGE_FAMILY.
  • ‫APIGEE_ENDPOINT: כתובת ה-IP של היעד שהוגדרה במטא-נתונים של ENDPOINT בתבנית הקיימת של הגדרות המכונה.
  • ‫STARTUP_SCRIPT_URL: כתובת ה-URL של Cloud Storage שהוגדרה במטא-נתונים של startup-script-url בתבנית הקיימת של הגדרות המכונה.

בדיקת קבוצות ה-MIG והתבניות של הגדרות המכונה

בדרך כלל, קבוצות MIG לניתוב של Apigee משתמשות בתג apigee-mig-proxy ובמטא-נתונים ENDPOINT. כדי לבדוק את קבוצות ה-MIG ואת התבניות של הגדרות המכונה:

  1. מציגים את קבוצות ה-MIG בפרויקט ומזהים את תבניות המכונות שמצורפות אליהן:

    gcloud compute instance-groups managed list --project=PROJECT_ID \
      --format="table(name,region.basename(),zone.basename(),instanceTemplate.basename())"
    
  2. בודקים את קובץ האימג' של מערכת ההפעלה בתבנית הקיימת של הגדרות המכונה. מוסיפים את --region=REGION אם התבנית היא אזורית:

    gcloud compute instance-templates describe OLD_TEMPLATE_NAME \
      --project=PROJECT_ID \
      --format="value(properties.disks[0].initializeParams.sourceImage)"
    
  3. בודקים את סוג המכונה, הגדרת הדיסק, הרשת, רשת המשנה, התגים והמטא-נתונים של OLD_TEMPLATE_NAME כדי להתאים את ההגדרות האלה כשיוצרים את התבנית החדשה. מוסיפים את --region=REGION אם התבנית היא אזורית:

    gcloud compute instance-templates describe OLD_TEMPLATE_NAME \
      --project=PROJECT_ID \
      --format="yaml(properties.machineType,properties.disks,properties.networkInterfaces,properties.tags,properties.metadata)"
    

יצירת תבנית חדשה של הגדרות מכונה והפעלת עדכון בהדרגה (rolling)

יוצרים תבנית חדשה של הגדרות מכונה עם משפחת קובצי אימג' של מערכת הפעלה נתמכת, ומתחילים עדכון בהדרגה (rolling) ב-MIG. שימוש ב---max-surge עם --max-unavailable=0 מקצה ומאמת מכונות וירטואליות חדשות לפני ניקוז והסרה של מכונות ישנות, וכך מונע שיבושים בתנועה גם אם המכונות הווירטואליות החדשות לא מופעלות בגלל מחסור במשאבים או שגיאה בהגדרה.

  1. יוצרים תבנית חדשה של הגדרות מכונה. הפקודה הבאה היא דוגמה. צריך להתאים את הרשת, רשת המשנה, התגים, סוג המכונה, גודל הדיסק והמטא-נתונים להגדרות של התבנית הקיימת:

    gcloud compute instance-templates create NEW_TEMPLATE_NAME \
      --project=PROJECT_ID \
      --region=REGION \
      --network=VPC_NAME \
      --subnet=VPC_SUBNET \
      --tags=https-server,apigee-mig-proxy,gke-apigee-proxy \
      --machine-type=e2-medium \
      --image-family=IMAGE_FAMILY \
      --image-project=IMAGE_PROJECT \
      --boot-disk-size=20GB \
      --no-address \
      --metadata=ENDPOINT=APIGEE_ENDPOINT,startup-script-url=STARTUP_SCRIPT_URL
    

    הפקודה הזו יוצרת תבנית גלובלית של הגדרות מכונה ב-projects/PROJECT_ID/global/instanceTemplates/NEW_TEMPLATE_NAME. אם אתם מעדיפים ליצור תבנית של הגדרות מכונה אזורית, הוסיפו את --instance-template-region=REGION והשתמשו ב-projects/PROJECT_ID/regions/REGION/instanceTemplates/NEW_TEMPLATE_NAME בשלב הבא.

  2. מתחילים עדכון בהדרגה (rolling) ב-MIG. משנים את הערך של --max-surge לפי הצורך, בהתאם לגודל ולמכסה של ה-MIG:

    gcloud compute instance-groups managed rolling-action start-update EXISTING_MIG_NAME \
      --project=PROJECT_ID \
      --region=REGION \
      --version=template=projects/PROJECT_ID/global/instanceTemplates/NEW_TEMPLATE_NAME \
      --max-surge=3 \
      --max-unavailable=0
    
  3. מוודאים שכל המכונות הווירטואליות ב-MIG מריצות את NEW_TEMPLATE_NAME ומדווחות על סטטוס RUNNING:

    gcloud compute instance-groups managed list-instances EXISTING_MIG_NAME \
      --project=PROJECT_ID \
      --region=REGION
    

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