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

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

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

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

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

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

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

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

  1. פותחים את קובץ OVERRIDES.yaml. חשוב להשתמש באותו קובץ של שינויים ששימש להתקנת סביבת ההרצה ההיברידית באשכול.
  2. מאתרים את הרכיב runtime בקובץ. לדוגמה:
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. משנים את מאפייני מספר הרפליקות לפי הצורך. לדוגמה:
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 4
    ...
  4. משתמשים ב-apigeectl כדי להחיל את השינוי על האשכול:
    apigeectl apply -f ./OVERRIDES.yaml --org --env ENV_NAME

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

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

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

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

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

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

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

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

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

‫Apigee שומר את הגדרות ברירת המחדל של הרכיבים בקובץ HYBRID_ROOT_DIR/config/values.yaml. קובצי השינויים שלכם צריכים להיות באותו מבנה YAML כמו values.yaml.

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

הקוד הבא מציג את הגדרת ברירת המחדל של הרכיב mart כפי שמופיע ב-values.yaml. שימו לב: לחלק מהערכים יש ערכי ברירת מחדל, אבל לאחרים, כמו sslCertPath ו-sslKeyPath, אין. צריך לספק את הערכים החסרים האלה בקובץ ההחלפות, כמו שמוסבר בשלבי ההתקנה. אם רוצים לשנות את ערכי ברירת המחדל, צריך לוודא שאפשר לערוך אותם. לשם כך, בודקים את הפניה למאפייני ההגדרה.

...
mart:
  replicaCountMin: 2
  replicaCountMax: 4
  targetCPUUtilizationPercentage: 75
  terminationGracePeriodSeconds: 30
  sslCertPath:
  sslKeyPath:
  hostAlias:
  nodeSelector:
    key:
    value:
  revision: blue
  image:
    url: "gcr.io/apigee-release/hybrid/apigee-mart-server"
    tag: "1.3.6"
    pullPolicy: IfNotPresent
  resources:
    requests:
      cpu: 500m
      memory: 512Mi
  initCheckCF:
    resources:
      requests:
        cpu: 10m
  livenessProbe:
    timeoutSeconds: 1
    failureThreshold: 12
    periodSeconds: 5
    initialDelaySeconds: 15
  readinessProbe:
    timeoutSeconds: 1
    successThreshold: 1
    failureThreshold: 2
    periodSeconds: 5
    initialDelaySeconds: 15
  metricsURL: "/v1/server/metrics"
  cwcAppend: |
...

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

קובצי ביטול לדוגמה

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

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

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

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

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

כדי להוסיף הערה משלכם, מוסיפים בית לקובץ OVERRIDES.yaml של הרכיב הרלוונטי.

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

runtime:
  annotations:
    businessunit: "bu1"

בדיקת ההגדרות הממוזגות

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

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

kubectl version

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

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

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

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

מידע נוסף זמין במאמר apigeectl.

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

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

apigeectl apply  -f ./test_env_override.yaml

מידע נוסף זמין במאמר apigeectl.

מחיקה של רכיבי מישור זמן ריצה ספציפיים ל-Hybrid

כדי למחוק מהאשכול את רכיבי מישור זמן הריצה הספציפיים ל-Hybrid, משתמשים בפקודה apigeectl delete. הרכיבים האלה כוללים את synchronizer,‏ mart,‏ runtime,‏ cassandra ו-udca. חשוב לציין את אותו קובץ החלפות שבו השתמשתם כדי להתקין את רכיבי זמן הריצה:

לדוגמה:

apigeectl delete -f ./OVERRIDES.yaml

אפשר להשתמש בפקודה apigeectl apply כדי ליצור מחדש רכיב ספציפי או כמה רכיבים:

apigeectl apply --org --env ENV_NAME -f ./OVERRIDES.yaml

מידע נוסף זמין במאמר apigeectl.

מחיקת רכיב ספציפי

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

לדוגמה, כדי למחוק את הרכיב synchronizer, משתמשים בפקודה הבאה:

apigeectl delete --org --env ENV_NAME -f ./OVERRIDES.yaml

לאחר מכן, אפשר להשתמש בפקודה apigeectl apply כדי ליצור מחדש את הרכיב:

apigeectl apply --org --env ENV_NAME -f ./OVERRIDES.yaml

מידע נוסף זמין במאמר apigeectl.

מחיקת כל הרכיבים

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

לדוגמה:

apigeectl delete -f ./OVERRIDES.yaml --all

מידע נוסף זמין במאמר apigeectl.