ניהול רכיבים של מישור זמן הריצה

במאמר הזה מוסבר איך להגדיר ולנהל את רכיבי מישור זמן הריצה של Apigee Hybrid.

מידע על קובץ השינויים מברירת המחדל

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

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

ביצוע שינוי בהגדרה

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

לדוגמה, כדי להפעיל את הרכיב logger, מעדכנים את קובץ ההגדרות ומשתמשים בו מחדש:

  1. פותחים את קובץ השינויים. חשוב להשתמש באותו קובץ של שינויים ששימש להתקנת סביבת ההרצה ההיברידית באשכול.
  2. מאתרים את הרכיב logger בקובץ. לדוגמה:
    ...
    logger:
      enabled: false
    ...
  3. משנים את ערך המאפיין ל-true:
    ...
      logger:
      enabled: true
    ...
  4. משתמשים ב-apigeectl כדי להחיל את השינוי על האשכול:
    $APIGEECTL_HOME/apigeectl apply -f $HYBRID_FILES/overrides/OVERRIDES.yaml --telemetry

    הדגל --telemetry אומר ל-apigeectl לעדכן רק את רכיב היומן. מידע על פרמטרים של היקף, כמו --telemetry, זמין במאמר היקפים להחלת apigeectl.

אילו מאפייני הגדרה אפשר לשנות?

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

איך משתמשים בהפניה להגדרות האישיות

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

authz.image.pullPolicy

בקובץ ההחלפות, המאפיינים מפורמטים ב-YAML תקין. בדוגמה שלמעלה, הרכיב authz ברמה העליונה מוזח ימינה, והמאפיינים של רכיבי המשנה מוזחים מתחתיו. בנוסף, ב-YAML צריך להוסיף נקודתיים בסוף כל רכיב ותת-רכיב.

לדוגמה, כדי להגדיר את המאפיין authz.image.pullPolicy לערך Always, מאתרים את קטע ה-YAML הזה בקובץ השינויים ומגדירים אותו באופן הבא:

authz:
  image:
    pullPolicy: Always

דוגמה נוספת: הנכס cassandra.auth.admin.password (כפי שהוא מופיע בהפניה לנכס ההגדרה) משמש להגדרת סיסמת האדמין של Cassandra. כדי לשנות את ההגדרה, מאתרים את קוד ה-YAML הבא בקובץ ההגדרות שמוגדרות מחדש ומגדירים אותו באופן הבא:

cassandra:
  auth:
    admin:
      password: abc123

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

מידע על הגדרות ברירת המחדל

‫Apigee שומר את הגדרות ברירת המחדל של הרכיבים בקובץ $HYBRID_FILES/config/values.yaml. בקובץ הזה מוגדרות ברירות מחדל, כשזה אפשרי, לכל רכיב היברידי.

קבצי ההחלפה שלכם בנויים באותה מבנה YAML כמו values.yaml, אבל קובץ החלפה כולל רק קבוצת משנה של מאפייני ההגדרה שנמצאים ב-values.yaml. חשוב לזכור שלא כל הנכסים ניתנים לעריכה. כשמחילים הגדרה על אשכול, המערכת ממזגת את ההגדרות שביטלתם עם הגדרות ברירת המחדל כדי ליצור את ההגדרה המלאה של אשכול Kubernetes.

שימוש בקבצים מוגדרים מראש של ביטולי ברירת מחדל לדוגמה

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

הדוגמאות הבאות כלולות בספרייה $APIGEECTL_HOME/examples:

קובצי ביטול לדוגמה תיאור
overrides-small.yaml הדוגמה הזו היא דרך מצוינת להתחיל במהירות. הוא משתמש בטביעת הרגל המינימלית המומלצת כדי להפעיל את רכיבי זמן הריצה ההיברידיים. ההגדרה לדוגמה הזו מסתמכת ככל האפשר על הגדרות וערכים שמוגדרים כברירת מחדל. כל הרפליקות המינימליות מוגדרות ל-1.
overrides-medium.yaml הדוגמה הזו היא נקודת התחלה טובה לבדיקות ולסביבות בקרת איכות. לרכיבים בודדים הוקצו יותר משאבים כדי להתמודד עם תנועה נוספת. ‫Cassandra משתמשת בכונני SSD לשיפור הביצועים. בסביבה הזו, מומלץ למשתמשים להתקין רכיבים עם שמירת מצב ורכיבים בלי שמירת מצב בצמתים נפרדים. מידע נוסף זמין במאמר בנושא הגדרת צמתים ייעודיים.
overrides-large.yaml הדוגמה הזו היא נקודת התחלה טובה לסביבות עם ביצועים גבוהים, כמו סביבות טרום-ייצור וייצור. הדוגמה כוללת מאפיינים להגדרת מפתחות הצפנה, סיסמאות ועוד. לכל רכיב יש לפחות שני עותקים.
private-overrides.yaml בדוגמה הזו מוסבר איך להשתמש בתמונות ממאגר תמונות פרטי. מידע נוסף מופיע בקטע שימוש במאגר תמונות פרטי.

הערות בהתאמה אישית

הערות הן מיפויים של מפתח/ערך שמשמשים לצירוף מטא-נתונים לקבוצות Pod ב-Kubernetes. אפשר ליצור הערות מותאמות אישית למאפיינים הבאים של רכיבים היברידיים שמפורטים במאמר הפניה למאפייני הגדרה:

כדי להוסיף הערה של צמד מפתח/ערך מותאם אישית, פותחים את קובץ ההחלפות ומוסיפים annotations stanza לרכיב הרלוונטי, ואז מחילים את השינוי באמצעות apigeectl. לדוגמה:

runtime:
  annotations:
    businessunit: "bu1"

שימוש בהרצות ניסיון כדי לבדוק שינויים בהגדרות

אפשר להשתמש בדגל --dry-run עם apigeectl כדי לבדוק את קובץ התצורה של השינויים בלי להחיל אותו בפועל על האשכול. האפשרות הזו שימושית לניפוי באגים בבעיה בהתקנה, כי היא מראה בדיוק מה יוחל על האשכול.

ב-Apigee Hybrid, התחביר של הדגל --dry-run תלוי בגרסה של kubectl שמופעלת. בודקים את הגרסה של kubectl באמצעות הפקודה הבאה:

kubectl version

kubectl גרסה 1.17 ומגרסאות ישנות יותר:

$APIGEECTL_HOME/apigeectl init -f $HYBRID_FILES/overrides/OVERRIDES.yaml --dry-run=true

kubectl מגרסה 1.18 ואילך:

  $APIGEECTL_HOME/apigeectl init -f $HYBRID_FILES/overrides/OVERRIDES.yaml --dry-run=client

יצירת כמה קובצי ביטול לפי הצורך

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

משתמשים בפקודה apigeectl apply כדי להחיל קובץ של שינויים בהגדרות על האשכול. לדוגמה:

$APIGEECTL_HOME/apigeectl apply  -f $HYBRID_FILES/overrides/test_env_override.yaml

מחיקה של רכיבי זמן ריצה

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

מחיקת סביבה

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