במאמר הזה מוסבר איך להגדיר ולנהל את רכיבי מישור זמן הריצה של 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 |
לדוגמה, כדי לשנות את מספר הרפליקות ב-מעבד בקשות, מבצעים את השלבים הבאים:
- פותחים את הקובץ 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. בגרסה 1.10 של Apigee Hybrid, בדרך כלל זה הנתיבapigee-env-ENV_NAME. ב-Hybrid בגרסה 1.11 ואילך, בדרך כלל זה ENV_NAME. - ENV_NAME הוא שם הסביבה שמשדרגים.
- OVERRIDES_FILE הוא קובץ ההחרגות החדש שלך לגרסה 1.15.9
- כדי לשדרג את התרשים:
- כדי לוודא שהיא פועלת, בודקים את המצב של הסביבה הרלוונטית:
למידע נוסף:
צריך להתקין סביבה אחת בכל פעם. מציינים את הסביבה באמצעות --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-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