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

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

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

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

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

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

כדי לשנות את ההגדרות של רכיב במישור זמן הריצה ההיברידי, עורכים את קובץ השינויים ומשתמשים ב-Helm כדי לשדרג את התרשים שתואם לרכיב. בטבלה הבאה מוצג אילו תרשימים תואמים לרכיבים של Apigee hybrid:

היקףרכיביםתרשים Helm
מפעיל Apigee מפעיל Apigee apigee-operator
אחסון Cassandra apigee-datastore
אחסון בזיכרון Redis apigee-redis
דיווח Logger
Metrics
apigee-telemetry
Ingress שער Ingress של Apigee apigee-ingress-manager
ארגון סוכן חיבורים ב-Apigee
MART
Watcher
apigee-org
סביבה סנכרון
של זמן ריצה
apigee-env
קבוצת סביבות virtualhost apigee-virtualhost

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

  1. פותחים את הקובץ OVERRIDES.yaml. חשוב להשתמש באותו קובץ שינויים ששימש להתקנת סביבת זמן הריצה ההיברידית באשכול.
  2. מאתרים את הרכיב runtime בקובץ. לדוגמה:
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. למידע נוסף:

  4. משנים את מאפייני מספר הרפליקות לפי הצורך. לדוגמה:
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 20
    ...
  5. משדרגים את הסביבה.
  6. צריך להתקין סביבה אחת בכל פעם. מציינים את הסביבה באמצעות --set env=ENV_NAME.

    הרצת בדיקה:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE \
    --dry-run=server
    
    • ‫ENV_RELEASE_NAME הוא השם שבו התקנתם בעבר את התרשים apigee-env. ב-hybrid v1.10, בדרך כלל זה הנתיב apigee-env-ENV_NAME. ב-Hybrid בגרסה 1.11 ואילך, בדרך כלל זה ENV_NAME.
    • ‫ENV_NAME הוא שם הסביבה שמשדרגים.
    • OVERRIDES_FILE הוא קובץ ההגדרות החדש שלך לגרסה 1.16.11
  7. כדי לשדרג את התרשים:
  8. helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE
    
  9. כדי לוודא שהיא פועלת, בודקים את המצב של סביבת ה-env המתאימה:
  10. kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-my-org-my-env          running     2d

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

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

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

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

ao.image.pullPolicy

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

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

ao:
  image:
    pullPolicy: Always

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

cassandra:
  auth:
    admin:
      password: abc123

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

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

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

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

הגדרת ברירת המחדל של הרכיבים של 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.16.11"
    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 לקובץ השינויים ולשנות אותו שם.

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

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

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

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

runtime:
  annotations:
    businessunit: "bu1"

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

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

kubectl apply -k  apigee-operator/etc/crds/default/
      
helm upgrade operator apigee-operator/ \
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  -f OVERRIDES_FILE.yaml \
  --dry-run=server
helm upgrade ingress-manager apigee-ingress-manager/ /
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  -f OVERRIDES_FILE.yaml \
  --dry-run=server

יוצרים כמה קובצי שינויים לפי הצורך

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

לדוגמה:

helm upgrade test-1-env apigee-env/ \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  --set env=test-1-env \
  -f test-1-env-overrides.yaml

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

הרכיבים של מישור זמן הריצה כוללים את synchronizer,‏ mart,‏ runtime ו-cassandra.

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

לדוגמה:

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

helm -n APIGEE_NAMESPACE delete datastore

בדוגמה שלמעלה, רכיב מאגר הנתונים הותקן עם השם datastore. אם התקנתם אותו בשם אחר, תצטרכו לציין את השם הזה כדי למחוק את הרכיב. לדוגמה, אם התקנתם את התרשים apigee-datastore באמצעות helm install my-cassandra-storage apigee-datastore/. כדי למחוק אותו, מריצים את הפקודה הבאה:

helm delete -n apigee my-cassandra-storage

כדי ליצור מחדש רכיב או רכיבים ספציפיים (קבוצת הסביבות בדוגמה הזו):

helm upgrade ENV_GROUP apigee-virtualhost/ \
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  --set envgroup=ENV_GROUP_NAME \
  -f OVERRIDES_FILE.yaml