במאמר הזה מוסבר איך להגדיר ולנהל את רכיבי מישור זמן הריצה של 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 |
לדוגמה, כדי לשנות את מספר הרפליקות ב-מעבד בקשות, מבצעים את השלבים הבאים:
- פותחים את הקובץ OVERRIDES
.yaml. חשוב להשתמש באותו קובץ שינויים ששימש להתקנת סביבת זמן הריצה ההיברידית באשכול. - מאתרים את הרכיב
runtimeבקובץ. לדוגמה:runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-runtime replicaCountMin: 1 replicaCountMax: 2 ... runtime.nodeSelector.key.runtime.nodeSelector.value.runtime.replicaCountMin.runtime.replicaCountMax.-
משנים את מאפייני מספר הרפליקות לפי הצורך. לדוגמה:
runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-runtime replicaCountMin: 2 replicaCountMax: 20 ... - משדרגים את הסביבה.
- ENV_RELEASE_NAME הוא השם שבו התקנתם בעבר את התרשים
apigee-env. ב-hybrid v1.10, בדרך כלל זה הנתיבapigee-env-ENV_NAME. ב-Hybrid בגרסה 1.11 ואילך, בדרך כלל זה ENV_NAME. - ENV_NAME הוא שם הסביבה שמשדרגים.
- OVERRIDES_FILE הוא קובץ ההגדרות החדש שלך לגרסה 1.16.11
- כדי לשדרג את התרשים:
- כדי לוודא שהיא פועלת, בודקים את המצב של סביבת ה-env המתאימה:
למידע נוסף:
צריך להתקין סביבה אחת בכל פעם. מציינים את הסביבה באמצעות --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
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
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