במאמר הזה מוסבר איך להגדיר ולנהל את רכיבי מישור זמן הריצה של Apigee Hybrid. רשימה של רכיבי מישור זמן הריצה שאפשר להגדיר זמינה במאמר סקירה כללית של הגדרת שירות זמן הריצה.
מידע על קובץ השינויים מברירת המחדל
בפעם הראשונה שמתקינים את סביבת הריצה ההיברידית באשכול, צריך ליצור קובץ של שינויים בהגדרות. הקובץ הזה מאפשר לשנות ערכי הגדרות שמוגדרים כברירת מחדל לפי הצורך, להגדיר סביבות, להפנות לאישורי TLS ולמפתחות של חשבונות שירות, להקצות מאגרי צמתים של Kubernetes לרכיבים היברידיים ספציפיים וכן הלאה.
שלבי ההתקנה של הגרסה ההיברידית כוללים את התהליך של יצירת קובץ overrides והחלת ההגדרה על אשכול. אם רוצים לשנות את ההגדרה בהמשך, משנים את קובץ ההחלפות שיצרתם ומחילים אותו מחדש.
ביצוע שינוי בהגדרה
כדי לשנות את ההגדרות של רכיב במישור זמן הריצה ההיברידי, עורכים את קובץ ההחלפות ומשתמשים ב-Helm כדי לשדרג את התרשים שמתאים לרכיב. בתרשים הבא מוצגות התאימות בין התרשימים לבין הרכיבים של Apigee Hybrid:
| היקף | רכיבים | תרשים Helm |
|---|---|---|
| אופרטור Apigee | מפעיל Apigee | apigee-operator |
| אחסון | Cassandra | apigee-datastore |
| אחסון בזיכרון | Redis | apigee-redis |
| דיווח | Logger Metrics |
apigee-telemetry |
| Ingress | שער הכניסה של Apigee | apigee-ingress-manager |
| ארגון | Apigee Connect Agent MART UDCA Watcher |
apigee-org |
| סביבה | Runtime Synchronizer |
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: 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 v1.11 ובגרסאות חדשות יותר, בדרך כלל זה ENV_NAME. - ENV_NAME הוא שם הסביבה שמשדרגים.
- OVERRIDES_FILE הוא קובץ ההחלפות החדש שלכם לגרסה 1.13.4
- שדרוג התרשים:
- כדי לוודא שהיא פועלת, בודקים את המצב של סביבת ה-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-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חשוב לזכור שבהפניה למאפייני ההגדרה מתוארים כל המאפיינים שאפשר להגדיר ברכיבי מישור זמן הריצה ההיברידי. כדי לשנות את הרכיבים האלה בקובץ ההחלפות לפני שמחילים את השינויים על האשכול, צריך לפעול לפי הדפוס שמוסבר למעלה.
שימוש בקבצים מוגדרים מראש של דוגמאות לשינויים
כשמתקינים את סביבת זמן הריצה ההיברידית בפעם הראשונה, מומלץ להשתמש באחד מקובצי הדוגמה המוגדרים מראש לביטול הגדרות ברירת המחדל. בדוגמאות האלה מפורטות כל מאפייני ההגדרה לתרחישי התקנה ספציפיים, למשל להגדרת התקנה של גרסת ייצור או גרסת בדיקה. כל מה שצריך לעשות הוא לספק ערכים מתאימים למאפיינים ולהחיל את קובץ הביטולים על האשכול. מידע נוסף זמין בקטע שלב 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.13.4"
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 של Apigee hybrid Kubernetes. אפשר ליצור הערות מותאמות אישית למאפיינים הבאים שמופיעים במאמר בנושא הפניה למאפייני הגדרה:
כדי להוסיף הערה משלכם, מוסיפים בית לקובץ 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
מחיקה של רכיבי מישור זמן ריצה ספציפיים ל-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