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

במאמר הזה מוסבר איך להגדיר ולנהל את רכיבי מישור זמן הריצה של 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
UDCA
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. בגרסה 1.10 של Apigee Hybrid, בדרך כלל זה הנתיב apigee-env-ENV_NAME. ב-Hybrid בגרסה 1.11 ואילך, בדרך כלל זה ENV_NAME.
    • ‫ENV_NAME הוא שם הסביבה שמשדרגים.
    • ‫OVERRIDES_FILE הוא קובץ ההחרגות החדש שלך לגרסה 1.15.9
  7. כדי לשדרג את התרשים:
  8. helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE
    
  9. כדי לוודא שהיא פועלת, בודקים את המצב של הסביבה הרלוונטית:
  10. kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            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

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

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

כשמתקינים את סביבת זמן הריצה ההיברידית בפעם הראשונה, מומלץ להשתמש באחד מקובצי ה-overrides לדוגמה שהוגדרו מראש. הדוגמאות האלה מספקות קבוצה מלאה של מאפייני הגדרה לתרחישי התקנה ספציפיים, כמו הגדרת התקנה בסביבת ייצור או בסביבת בדיקה. כל מה שצריך לעשות הוא לספק ערכים מתאימים למאפיינים ולהחיל את קובץ השינויים על האשכול. מידע נוסף זמין בקטע שלב 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.15.9"
    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

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

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

לדוגמה:

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 ו-udca.

כדי למחוק מהאשכול את רכיבי מישור זמן הריצה הספציפיים ל-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