ההליך הזה מתייחס לשדרוג מ-Apigee Hybrid גרסה 1.10.x ל-Apigee Hybrid גרסה 1.11.2, ומגרסאות קודמות של Hybrid 1.11.x לגרסה 1.11.2.
ההליך זהה לשדרוג גרסה משנית (לדוגמה, מגרסה 1.10 לגרסה 1.11) ולשדרוג גרסת תיקון (לדוגמה, מגרסה 1.11.0 לגרסה 1.11.2).
אם אתם משדרגים מגרסה 1.9 או מגרסה ישנה יותר של Apigee Hybrid, אתם צריכים לשדרג קודם לגרסה 1.10 של Hybrid לפני שתשדרגו לגרסה 1.11.2. אפשר לעיין בהוראות בנושא שדרוג Apigee Hybrid לגרסה 1.10.
סקירה כללית של שדרוג לגרסה 1.11.2
ב-Hyrid 1.11.2-Hotfix.3 יש בדיקות מחמירות יותר של יצירת מופע של מחלקה.
החל מ-Apigee hybrid 1.11.2-Hotfix.3, JavaCallout policy כולל עכשיו אבטחה נוספת במהלך יצירת מופע של מחלקת Java. אמצעי האבטחה המשופר מונע פריסה של מדיניות שמנסה לבצע פעולות שדורשות הרשאות שאסורות, באופן ישיר או עקיף.
ברוב המקרים, כללי מדיניות קיימים ימשיכו לפעול כצפוי ללא בעיות. עם זאת, יכול להיות שתהיה השפעה על כללי מדיניות שמסתמכים על ספריות של צד שלישי, או על כללי מדיניות עם קוד מותאם אישית שמפעיל באופן עקיף פעולות שדורשות הרשאות גבוהות יותר.
ההליכים לשדרוג Apigee hybrid מאורגנים בקטעים הבאים:
דרישות מוקדמות
ההוראות לשדרוג מניחות שיש לכם גרסה 1.10.x של Apigee hybrid מותקנת, ואתם רוצים לשדרג אותה לגרסה 1.11.2. אם אתם משדרגים מגרסה קודמת, כדאי לעיין בהוראות בנושא שדרוג Apigee hybrid לגרסה 1.10.
תרשימי Helm ו-apigeectl
בגרסה 1.11 אפשר לבחור להתקין ולנהל את Apigee Hybrid באמצעות תרשימי Helm או באמצעות apigeectl. מומלץ להשתמש ב-Helm כדי לנהל את ההתקנה.
מעבר לגרסה 1.11 באמצעות Helm מגרסה 1.10 באמצעות apigeectl
כדי לשדרג ל-Apigee Hybrid גרסה 1.11 שמנוהלת על ידי Helm מתוך התקנה של Hybrid גרסה 1.10 שמנוהלת באמצעות apigeectl:
- קודם כול, מעבירים את התקנת Helm בגרסה 1.10 לפי ההוראות במאמר העברת Apigee Hybrid לתרשימי Helm מגרסה
apigeectl. - כדי לשדרג את ההתקנה, פועלים לפי ההוראות לתרשימי Helm שבהמשך.
הכנה לשדרוג לגרסה 1.11
גיבוי של ההתקנה ההיברידית (מומלץ)
Helm
- בהוראות האלה נעשה שימוש במשתנה הסביבה APIGEE_HELM_CHARTS_HOME עבור הספרייה במערכת הקבצים שבה התקנתם את תרשימי Helm. אם צריך, משנים את הספרייה
לספרייה הזו ומגדירים את המשתנה באמצעות הפקודה הבאה:
Linux
export APIGEE_HELM_CHARTS_HOME=$PWD
echo $APIGEE_HELM_CHARTS_HOMEMac OS
export APIGEE_HELM_CHARTS_HOME=$PWD
echo $APIGEE_HELM_CHARTS_HOMEWindows
set APIGEE_HELM_CHARTS_HOME=%CD%
echo %APIGEE_HELM_CHARTS_HOME% - יוצרים עותק גיבוי של ספריית
$APIGEE_HELM_CHARTS_HOME/בגרסה 1.10. אפשר להשתמש בכל תהליך גיבוי. לדוגמה, אפשר ליצור קובץtarשל כל הספרייה באמצעות הפקודה:tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.10-backup.tar.gz $APIGEE_HELM_CHARTS_HOME - מגבים את מסד הנתונים של Cassandra לפי ההוראות במאמר בנושא גיבוי ושחזור של Cassandra.
- אם אתם משתמשים בקובצי אישורים של שירות (
.json) בשינויים שלכם כדי לאמת חשבונות שירות, ודאו שקובצי האישורים של חשבונות השירות נמצאים בספריית תרשימי ה-Helm הנכונה. תרשימי Helm לא יכולים לקרוא קבצים מחוץ לספרייה של כל תרשים.לא צריך לבצע את השלב הזה אם משתמשים בסודות של Kubernetes או ב-Workload Identity כדי לאמת חשבונות שירות.
בטבלה הבאה מוצג היעד של כל קובץ של חשבון שירות, בהתאם לסוג ההתקנה:
Prod
חשבון שירות שם קובץ ברירת מחדל ספריית תרשימי Helm apigee-cassandraPROJECT_ID-apigee-cassandra.json$APIGEE_HELM_CHARTS_HOME/apigee-datastore/apigee-loggerPROJECT_ID-apigee-logger.json$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/apigee-martPROJECT_ID-apigee-mart.json$APIGEE_HELM_CHARTS_HOME/apigee-org/apigee-metricsPROJECT_ID-apigee-metrics.json$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/apigee-runtimePROJECT_ID-apigee-runtime.json$APIGEE_HELM_CHARTS_HOME/apigee-envapigee-synchronizerPROJECT_ID-apigee-synchronizer.json$APIGEE_HELM_CHARTS_HOME/apigee-env/apigee-udcaPROJECT_ID-apigee-udca.json$APIGEE_HELM_CHARTS_HOME/apigee-org/apigee-watcherPROJECT_ID-apigee-watcher.json$APIGEE_HELM_CHARTS_HOME/apigee-org/Non-prod
יוצרים עותק של קובץ חשבון השירות
apigee-non-prodבכל אחת מהספריות הבאות:חשבון שירות שם קובץ ברירת מחדל ספריות של תרשימי Helm apigee-non-prodPROJECT_ID-apigee-non-prod.json$APIGEE_HELM_CHARTS_HOME/apigee-datastore/
$APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
$APIGEE_HELM_CHARTS_HOME/apigee-org/
$APIGEE_HELM_CHARTS_HOME/apigee-env/ -
מוודאים שקובצי המפתח ואישור ה-TLS (
.crt,.keyו/או.pem) נמצאים בספרייה$APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/.
apigeectl
בדוגמאות שבהוראות האלה נעשה שימוש במבנה הספריות הבא. יכול להיות שההתקנה שלכם תהיה שונה. משנים את ההוראות בהתאם למבנה ההתקנה.
hybrid-v1.11-root-directory/
└── apigeectl/
└── config/
└── plugins/
└── templates/
└── tools/
└── hybrid-files/
└── overrides/
└── service-accounts/
└── certs/
hybrid-v1.10-root-directory/- בהוראות האלה נעשה שימוש במשתנה הסביבה APIGEECTL_HOME עבור הספרייה במערכת הקבצים שבה התקנתם את
apigeectl. אם צריך, משנים את הספרייה לספרייהapigeectlומגדירים את המשתנה באמצעות הפקודה הבאה:Linux
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOMEMac OS
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOMEWindows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME% - יוצרים עותק גיבוי של ספריית
$APIGEECTL_HOME/בגרסה 1.10. לדוגמה:tar -czvf $APIGEECTL_HOME/../apigeectl-v1.10-backup.tar.gz $APIGEECTL_HOME - מגבים את מסד הנתונים של Cassandra לפי ההוראות במאמר בנושא גיבוי ושחזור של Cassandra.
שדרוג גרסת Kubernetes
בודקים את הגרסה של פלטפורמת Kubernetes, ואם צריך, משדרגים את פלטפורמת Kubernetes לגרסה שנתמכת על ידי hybrid 1.10 ו-hybrid 1.11. אם אתם צריכים עזרה, תוכלו לעיין במסמכי התיעוד של הפלטפורמה.
התקנת זמן הריצה של hybrid 1.11.2
Helm
הכנה לשדרוג של תרשימי Helm
- כדי שהתרשימים
apigee-operatorו-apigee-envישתמשו בתג הנכון,1.11.2-hotfix.3, צריך לבצע את השינוי הבא בקובץ overrides.yaml:ao: image: url: "gcr.io/apigee-release/hybrid/apigee-operators" tag: "1.11.2-hotfix.3" runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.11.2-hotfix.3" - שולפים את תרשימי Apigee Helm.
תרשימים של Apigee Hybrid מתארחים ב-Google Artifact Registry:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-chartsכדי להעתיק את כל תרשימי ה-Helm של Apigee hybrid לאחסון המקומי, משתמשים בפקודה
pullהבאה:export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
export CHART_VERSION=1.11.2helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untarhelm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar - אם צריך, מתקינים את cert-manager.
אם אתם צריכים לשדרג את הגרסה של cert-manager, אתם יכולים להתקין את הגרסה החדשה באמצעות הפקודה הבאה:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.1/cert-manager.yaml
- מתקינים את ה-CRD המעודכנים של Apigee:
-
כדי להשתמש בתכונה של הרצה יבשה של
kubectl, מריצים את הפקודה הבאה:kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run
-
אחרי האימות באמצעות הפקודה להרצה יבשה, מריצים את הפקודה הבאה:
kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
- מאמתים את ההתקנה באמצעות הפקודה
kubectl get crds:kubectl get crds | grep apigee
הפלט אמור להיראות כך:
apigeedatastores.apigee.cloud.google.com 2023-10-09T14:48:30Z apigeedeployments.apigee.cloud.google.com 2023-10-09T14:48:30Z apigeeenvironments.apigee.cloud.google.com 2023-10-09T14:48:31Z apigeeissues.apigee.cloud.google.com 2023-10-09T14:48:31Z apigeeorganizations.apigee.cloud.google.com 2023-10-09T14:48:32Z apigeeredis.apigee.cloud.google.com 2023-10-09T14:48:33Z apigeerouteconfigs.apigee.cloud.google.com 2023-10-09T14:48:33Z apigeeroutes.apigee.cloud.google.com 2023-10-09T14:48:33Z apigeetelemetries.apigee.cloud.google.com 2023-10-09T14:48:34Z cassandradatareplications.apigee.cloud.google.com 2023-10-09T14:48:35Z
-
-
בודקים את התוויות בצמתי האשכול. כברירת מחדל, Apigee מתזמן את הפודים של הנתונים בצמתים עם התווית
cloud.google.com/gke-nodepool=apigee-data, ואת הפודים של זמן הריצה בצמתים עם התוויתcloud.google.com/gke-nodepool=apigee-runtime. אפשר להתאים אישית את תוויות מאגר הצמתים בקובץoverrides.yaml.מידע נוסף זמין במאמר בנושא הגדרת מאגרי צמתים ייעודיים.
התקנה של תרשימי Helm של Apigee Hybrid
- אם לא, עוברים לספרייה
APIGEE_HELM_CHARTS_HOMEומריצים את הפקודות הבאות מתוך הספרייה. - משדרגים את Apigee Operator/Controller:
הרצת בדיקה:
helm upgrade operator apigee-operator/ \ --install \ --create-namespace \ --namespace apigee-system \ -f OVERRIDES_FILE \ --dry-run
שדרוג התרשים:
helm upgrade operator apigee-operator/ \ --install \ --create-namespace \ --namespace apigee-system \ -f OVERRIDES_FILE
אימות ההתקנה של Apigee Operator:
helm ls -n apigee-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee-system 3 2023-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.11.2 1.11.2
כדי לוודא שהיא פועלת, בודקים את הזמינות שלה:
kubectl -n apigee-system get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 7d20h
- שדרוג מאגר הנתונים של Apigee:
הרצת בדיקה:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE \ --dry-run
שדרוג התרשים:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE
כדי לוודא ש-
apigeedatastoreפועל, בודקים את המצב שלו:kubectl -n apigee get apigeedatastore default
NAME STATE AGE default running 2d
- שדרוג הטלמטרייה של Apigee:
הרצת בדיקה:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE \ --dry-run
שדרוג התרשים:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE
כדי לוודא שהיא פועלת, בודקים את המצב שלה:
kubectl -n apigee get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
- שדרוג של Apigee Redis:
הרצת בדיקה:
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE \ --dry-run
שדרוג התרשים:
helm upgrade redis apigee-redis/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE
כדי לוודא שהיא פועלת, בודקים את המצב שלה:
kubectl -n apigee get apigeeredis default
NAME STATE AGE default running 2d
- משדרגים את Apigee ingress manager:
הרצת בדיקה:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE \ --dry-run
שדרוג התרשים:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE
כדי לוודא שהיא פועלת, בודקים את הזמינות שלה:
kubectl -n apigee get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 2d
- משדרגים את הארגון ב-Apigee:
הרצת בדיקה:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE \ --dry-run
שדרוג התרשים:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ -f OVERRIDES_FILE
כדי לוודא שהיא פועלת, בודקים את המצב של הארגון הרלוונטי:
kubectl -n apigee get apigeeorg
NAME STATE AGE apigee-org1-xxxxx running 2d
- משדרגים את הסביבה.
צריך להתקין סביבה אחת בכל פעם. מציינים את הסביבה באמצעות
--set env=ENV_NAME:הרצת בדיקה:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace apigee \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run
- ENV_RELEASE_NAME הוא השם שבו התקנתם בעבר את תרשים
apigee-env. ב-hybrid v1.10, בדרך כלל זה הנתיבapigee-env-ENV_NAME. ב-Hybrid v1.11 ובגרסאות חדשות יותר, בדרך כלל זה ENV_NAME. - ENV_NAME הוא שם הסביבה שמשדרגים.
- OVERRIDES_FILE הוא קובץ ההחלפות החדש שלכם לגרסה 1.11.2
שדרוג התרשים:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace apigee \ --set env=ENV_NAME \ -f OVERRIDES_FILE
כדי לוודא שהיא פועלת, בודקים את המצב של סביבת ה-env המתאימה:
kubectl -n apigee get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-org1-dev-xxx running 2d
- ENV_RELEASE_NAME הוא השם שבו התקנתם בעבר את תרשים
-
משדרגים את קבוצות הסביבות (
virtualhosts).- צריך לשדרג קבוצת סביבות (virtualhost) אחת בכל פעם. מציינים את קבוצת הסביבות באמצעות
--set envgroup=ENV_GROUP_NAME. חוזרים על הפקודות הבאות לכל קבוצת סביבות שמוזכרת בקובץ overrides.yaml:הרצת בדיקה:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE \ --dry-run
ENV_GROUP_RELEASE_NAME הוא השם שבו התקנתם בעבר את תרשים
apigee-virtualhost. ב-hybrid v1.10, בדרך כלל זה הנתיבapigee-virtualhost-ENV_GROUP_NAME. ב-Hybrid v1.11 ובגרסאות חדשות יותר, בדרך כלל מדובר ב-ENV_GROUP_NAME.שדרוג התרשים:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace apigee \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE
- בודקים את המצב של ApigeeRoute (AR).
התקנת
virtualhostsיוצרת ApigeeRouteConfig (ARC), שיוצר באופן פנימי ApigeeRoute (AR) אחרי שה-watcher של Apigee שולף פרטים שקשורים לקבוצת הסביבות ממישור הבקרה. לכן, צריך לוודא שהמצב של ה-AR התואם הוא running (פועל):kubectl -n apigee get arc
NAME STATE AGE apigee-org1-dev-egroup 2d
kubectl -n apigee get ar
NAME STATE AGE apigee-org1-dev-egroup-xxxxxx running 2d
- צריך לשדרג קבוצת סביבות (virtualhost) אחת בכל פעם. מציינים את קבוצת הסביבות באמצעות
התקנה של 1.11.2-hotfix.3
- כדי לאפשר ל-
runtimeלהשתמש בתג הנכון,1.11.2-hotfix.3, צריך לבצע את השינוי הבא בקובץ overrides.yaml:runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.11.2-hotfix.3" -
מעדכנים את התרשים
apigee-envבאמצעות הפקודהhelm upgradeוקובץ הביטולים הנוכחי.חוזרים על הפעולה לכל סביבה.
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --namespace APIGEE_NAMESPACE \ --set env ENV_NAME \ --atomic \ -f OVERRIDES_FILE
apigeectl
-
מאחסנים את מספר הגרסה העדכני ביותר במשתנה באמצעות הפקודה הבאה:
Linux
export VERSION=$(curl -s \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)
Mac OS
export VERSION=$(curl -s \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt)
Windows
for /f "tokens=*" %a in ('curl -s ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt') ^ do set VERSION=%a -
כדי לוודא שהמשתנה אוכלס במספר גרסה, מריצים את הפקודה הבאה. אם רוצים להשתמש בגרסה אחרת, אפשר לשמור אותה במשתנה סביבה.
echo $VERSION
אמורה להופיע הגרסה האחרונה של Apigee Hybrid:
1.11.2
- חשוב לוודא שאתם נמצאים בספריית הבסיס של ההיברידי (הספרייה הראשית שבה נמצא קובץ ההפעלה
apigeectl):cd $APIGEECTL_HOME/..
-
מורידים את חבילת הגרסה למערכת ההפעלה באמצעות הפקודה הבאה. חשוב לבחור את הפלטפורמה שלכם בטבלה הבאה:
Linux
Linux 64 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_64.tar.gz
Mac OS
Mac 64 bit:
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_64.tar.gz
Windows
Windows 64 bit:
curl -LO ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/%VERSION%/apigeectl_windows_64.zip
- משנים את השם של ספריית
apigeectl/הנוכחית לשם של ספריית גיבוי. לדוגמה:Linux
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.10/
Mac OS
mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.10/
Windows
rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.10
-
מחלצים את תוכן קובץ ה-gzip שהורד לספריית הבסיס ההיברידית. ספריית הבסיס ההיברידית היא הספרייה שבה נמצאת הספרייה
apigeectl-v1.10ששמה שונה:Linux
tar xvzf filename.tar.gz -C ./
Mac OS
tar xvzf filename.tar.gz -C ./
Windows
tar xvzf filename.zip -C ./
-
כברירת מחדל, התוכן של קובץ ה-tar מורחב לספרייה עם הגרסה והפלטפורמה בשם שלה. לדוגמה:
./apigeectl_1.11.2-xxxxxxx_linux_64. משנים את שם הספרייה ל-apigeectlבאמצעות הפקודה הבאה:Linux
mv apigeectl_1.11.2-xxxxxxx_linux_64 apigeectl
Mac OS
mv apigeectl_1.11.2-xxxxxxx_mac_64 apigeectl
Windows
rename apigeectl_1.11.2-xxxxxxx_windows_64 apigeectl
-
עוברים לספרייה
apigeectl:cd ./apigeectl
הספרייה הזו היא ספריית הבית
apigeectl. זה המקום שבו נמצאת הפקודה להפעלהapigeectl. - בהוראות האלה נעשה שימוש במשתנה הסביבה
$APIGEECTL_HOMEעבור הספרייה במערכת הקבצים שבה מותקן כלי השירותapigeectl. אם צריך, משנים את הספרייה לספרייהapigeectlומגדירים את המשתנה באמצעות הפקודה הבאה:Linux
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Mac OS
export APIGEECTL_HOME=$PWD
echo $APIGEECTL_HOME
Windows
set APIGEECTL_HOME=%CD%
echo %APIGEECTL_HOME%
- כדי לוודא את הגרסה של
apigeectl, מריצים את הפקודהversion:./apigeectl version
Version: 1.11.2
- יוצרים ספרייה בשם
hybrid-base-directory/hybrid-filesומעבירים אליה את הקובץ. בספרייהhybrid-filesנמצאים קובצי תצורה כמו קובץ ההחלפות, האישורים וחשבונות השירות. לדוגמה:Linux
mkdir $APIGEECTL_HOME/../hybrid-files
cd $APIGEECTL_HOME/../hybrid-files
Mac OS
mkdir $APIGEECTL_HOME/../hybrid-files
cd $APIGEECTL_HOME/../hybrid-files
Windows
mkdir %APIGEECTL_HOME%/../hybrid-files
cd %APIGEECTL_HOME%/../hybrid-files
- מריצים את הפקודה הבאה כדי לוודא שההקשר הנכון מוגדר ל-
kubectl. ההקשר הנוכחי צריך להיות מוגדר לאשכול שבו משדרגים את Apigee hybrid.kubectl config get-contexts | grep \*
- בספרייה
hybrid-files:-
מעדכנים את הקישורים הסמליים הבאים לכתובת
$APIGEECTL_HOME. הקישורים האלה מאפשרים להריץ את הפקודהapigeectlשזה עתה הותקנה מתוך הספרייהhybrid-files:ln -nfs
$APIGEECTL_HOME/tools toolsln -nfs$APIGEECTL_HOME/config configln -nfs$APIGEECTL_HOME/templates templatesln -nfs$APIGEECTL_HOME/plugins plugins -
כדי לוודא שהקישורים הסמליים נוצרו בצורה נכונה, מריצים את הפקודה הבאה ומוודאים שנתיבי הקישורים מצביעים על המיקומים הנכונים:
ls -l | grep ^l
-
מעדכנים את הקישורים הסמליים הבאים לכתובת
- מבצעים הפעלה ללא שינוי כדי לבדוק אם יש שגיאות:
${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=clientכאשר OVERRIDES_FILE הוא שם קובץ ההגדרות שלכם, למשל
./overrides/overrides.yaml. - אם אין שגיאות, מאתחלים את hybrid 1.11.2:
$APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
- בודקים את סטטוס ההפעלה:
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
אם הפעולה בוצעה ללא שגיאות, הפלט ייראה כך:
All containers ready.kubectl describe apigeeds -n apigee
בפלט, מחפשים את
State: running. - כדי לבדוק אם יש שגיאות, מריצים הרצה יבשה של הפקודה
applyבאמצעות הדגל--dry-run:$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
- אם אין שגיאות, מחילים את שינויי ברירת המחדל. בוחרים את ההוראות לסביבות ייצור או לסביבות שאינן סביבות ייצור, בהתאם להתקנה.
ייצור
בסביבות ייצור, צריך לשדרג כל רכיב היברידי בנפרד ולבדוק את הסטטוס של הרכיב המשודרג לפני שממשיכים לרכיב הבא.
- חשוב לוודא שאתם נמצאים בספרייה
hybrid-files. - מחילים את ההחלפות כדי לשדרג את Cassandra:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
- השלמת הבדיקה:
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
ממשיכים לשלב הבא רק כשהפודים מוכנים.
- מחילים את ההחלפות כדי לשדרג את רכיבי הטלמטריה ובודקים שהשדרוג הושלם:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- מפעילים את רכיבי Redis:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
- מחילים את השינויים כדי לשדרג את הרכיבים ברמת הארגון (MART, Watcher ו-Apigee
Connect) ובודקים שהשדרוג הושלם:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --org
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- מחילים את השינויים כדי לשדרג את הסביבות. יש שתי אפשרויות:
- סביבה אחרי סביבה: מחילים את השינויים על סביבה אחת בכל פעם ובודקים שהפעולה הושלמה. חוזרים על השלב הזה לכל סביבה:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --env ENV_NAME
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
כאשר ENV_NAME הוא שם הסביבה שמשדרגים.
- כל הסביבות בבת אחת: אפשר להחיל את השינויים על כל הסביבות בבת אחת ולבדוק שהפעולה הושלמה:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --all-envs
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- סביבה אחרי סביבה: מחילים את השינויים על סביבה אחת בכל פעם ובודקים שהפעולה הושלמה. חוזרים על השלב הזה לכל סביבה:
- מחילים את ההחלפות כדי לשדרג את הרכיבים של
virtualhostsובודקים שהשדרוג הושלם:$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
Non-prod
ברוב הסביבות שאינן סביבות ייצור, הדגמה או ניסוי, אפשר להחיל את הביטולים על כל הרכיבים בבת אחת. אם הסביבה שלכם שהיא לא סביבת ייצור גדולה ומורכבת או שהיא דומה מאוד לסביבת ייצור, כדאי לפעול לפי ההוראות לשדרוג סביבות ייצור.
- חשוב לוודא שאתם נמצאים בספרייה
hybrid-files. $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
- בודקים את הסטטוס:
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
- חשוב לוודא שאתם נמצאים בספרייה
התקנה של 1.11.2-hotfix.3
- כדי לאפשר ל-
runtimeלהשתמש בתג הנכון,1.11.2-hotfix.3, צריך לבצע את השינוי הבא בקובץ overrides.yaml:runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.11.2-hotfix.3" -
מתקינים את התיקון הדחוף באמצעות
apigeectl initעם קובץ ההחלפות המעודכן.הרצת בדיקה:
${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=clientהפעלה:
${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE -
מחילים את התיקון המהיר באמצעות
apigeectl apply.הרצת בדיקה:
${APIGEECTL_HOME}/apigeectl apply -f OVERRIDES_FILE --all-envs --dry-run=clientהחלה על:
${APIGEECTL_HOME}/apigeectl apply -f OVERRIDES_FILE --all-envs
אימות המדיניות אחרי שדרוג לגרסה 1.11.2-hotfix.3
אפשר להשתמש בהליך הזה כדי לאמת את ההתנהגות של מדיניות JavaCallout אחרי שמשדרגים ל-Hybrid 1.11.2-hotfix.3.
- בודקים אם קובצי ה-Java JAR מבקשים הרשאות מיותרות.
אחרי פריסת המדיניות, בודקים ביומני זמן הריצה אם מופיעה הודעת היומן הבאה:
"Failed to load and initialize class ...". אם ההודעה הזו מופיעה, סימן שקובץ ה-JAR שנפרס ביקש הרשאות מיותרות. כדי לפתור את הבעיה, צריך לבדוק את קוד ה-Java ולעדכן את קובץ ה-JAR. - בודקים ומעדכנים את קוד Java.
בודקים את קוד ה-Java (כולל יחסי תלות) כדי לזהות את הסיבה לפעולות שאולי לא מותרות. אם נמצא, משנים את קוד המקור לפי הצורך.
- בדיקת מדיניות עם הפעלת בדיקת האבטחה.
בסביבה שאינה סביבת ייצור, מפעילים את סימון בדיקת האבטחה ומפרסים מחדש את המדיניות עם קובץ JAR מעודכן. כדי להגדיר את הסימון:
- בקובץ
apigee-env/values.yaml, מגדירים אתconf_security-secure.constructor.onlyלערךtrueבקטעruntime:cwcAppend:. לדוגמה:# Apigee Runtime runtime: cwcAppend: conf_security-secure.constructor.only: true
- כדי להחיל את השינוי, צריך לעדכן את התרשים
apigee-envשל הסביבה. לדוגמה:helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
ENV_RELEASE_NAME הוא שם שמשמש למעקב אחרי התקנות ושדרוגים של תרשים
apigee-env. השם הזה צריך להיות ייחודי ולא יכול להיות זהה לשמות אחרים של מהדורות Helm בהתקנה. בדרך כלל זהה ל-ENV_NAME. עם זאת, אם לסביבה יש את אותו שם כמו לקבוצת הסביבות, צריך להשתמש בשמות שחרור שונים לסביבה ולקבוצת הסביבות, למשלdev-env-releaseו-dev-envgroup-release. מידע נוסף על מהדורות ב-Helm זמין במאמר Three big concepts class="external" במאמרי העזרה של Helm.
אם הודעת היומן
"Failed to load and initialize class ..."עדיין מופיעה, ממשיכים לשנות ולבדוק את קובץ ה-JAR עד שהודעת היומן לא מופיעה יותר. - בקובץ
- הפעלת בדיקת האבטחה בסביבת הייצור.
אחרי שבודקים ומאמתים את קובץ ה-JAR בסביבה שאינה סביבת ייצור, מפעילים את בדיקת האבטחה בסביבת הייצור על ידי הגדרת הדגל
conf_security-secure.constructor.onlyלערךtrueועדכון התרשיםapigee-envבסביבת הייצור כדי להחיל את השינוי.
החזרה למצב הקודם של שדרוג
כדי לחזור לשדרוג קודם:
Helm
כדי לחזור לגרסה הקודמת, משתמשים בתרשימים ובקובץ ההחלפות מההתקנה הקודמת.
- יוצרים את משתנה הסביבה הבא:
- PREVIOUS_HELM_CHARTS_HOME: הספרייה שבה מותקנים תרשימי ה-Helm הקודמים של Apigee Hybrid. זו הגרסה שאליה חוזרים.
- מחזירים את המארחים הווירטואליים לגרסה קודמת. חוזרים על הפקודה הבאה לכל קבוצת סביבות שמוזכרת בקובץ ההגדרות.
helm upgrade ENV_GROUP_RELEASE_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-virtualhost/ \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f PREVIOUS_OVERRIDES_FILE
ENV_GROUP_RELEASE_NAME הוא השם שבו התקנתם בעבר את תרשים
apigee-virtualhost. ב-hybrid v1.10, בדרך כלל זה הנתיבapigee-virtualhost-ENV_GROUP_NAME. ב-Hybrid v1.11 ובגרסאות חדשות יותר, בדרך כלל מדובר ב-ENV_GROUP_NAME. - מבטלים את השינויים בסביבות. חוזרים על הפקודה הבאה לכל סביבה שמוזכרת בקובץ הביטולים.
helm upgrade apigee-env-ENV_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-env/ \ --install \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f PREVIOUS_OVERRIDES_FILE
ENV_RELEASE_NAME הוא השם שבו התקנתם בעבר את תרשים
apigee-env. ב-hybrid v1.10, בדרך כלל זה הנתיבapigee-env-ENV_NAME. ב-Hybrid v1.11 ובגרסאות חדשות יותר, בדרך כלל מדובר ב-ENV_NAME. - החזרה של הארגון לגרסה קודמת:
helm upgrade ORG_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
- מחזירים את Ingress Manager למצב קודם:
helm upgrade ingress-manager $PREVIOUS_HELM_CHARTS_HOME/apigee-ingress-manager/ \ --install \ --namespace apigee \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
- החזרה לגרסה קודמת של Redis:
helm upgrade redis $PREVIOUS_HELM_CHARTS_HOME/apigee-redis/ \ --install \ --namespace apigee \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
- החזרה לגרסה קודמת של Apigee Telemetry:
helm upgrade telemetry $PREVIOUS_HELM_CHARTS_HOME/apigee-telemetry/ \ --install \ --namespace apigee \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
- מבטלים את השינויים ב-Apigee Datastore (רכיב מסד הנתונים של Cassandra):
helm upgrade datastore $PREVIOUS_HELM_CHARTS_HOME/apigee-datastore/ \ --install \ --namespace apigee \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
- מחזירים את Apigee Controller לגרסה קודמת:
helm upgrade operator $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f PREVIOUS_OVERRIDES_FILE
- מחזירים את ה-CRD של Apigee Hybrid למצב קודם:
kubectl apply -k $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
apigeectl
- מנקים את המשימות שהושלמו במרחב השמות של זמן הריצה ההיברידי, כאשר NAMESPACE הוא מרחב השמות שצוין בקובץ ההחלפות, אם צוין מרחב שמות. אם לא, מרחב השמות שמוגדר כברירת מחדל הוא
apigee:kubectl delete job -n NAMESPACE \ $(kubectl get job -n NAMESPACE \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - ניקוי משימות שהושלמו במרחב השמות
apigee-system:kubectl delete job -n apigee-system \ $(kubectl get job -n apigee-system \ -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}') - משנים את המשתנה
APIGEECTL_HOMEכך שיצביע על הספרייה שמכילה את הגרסה הקודמת שלapigeectl. לדוגמה:export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
- מריצים את הפקודות הבאות בספריית הבסיס של ההתקנה שרוצים לחזור אליה.
חשוב להשתמש בקובץ המקורי של ההגדרות שבוטלו עבור הגרסה שאליה רוצים לחזור:
- בספרייה hybrid-files, מריצים את
apigeectl apply:$APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILEORIGINAL_OVERRIDES_FILE הוא הנתיב היחסי ושם הקובץ של קובץ ההחלפות להתקנה ההיברידית של הגרסה הקודמת, לדוגמה,
./overrides/overrides1.10.yaml. - בודקים את הסטטוס של ה-Pods:
kubectl -n NAMESPACE get pods
כאשר NAMESPACE הוא מרחב השמות של Apigee Hybrid.
- בודקים את הסטטוס של
apigeeds:kubectl describe apigeeds -n apigee
הפלט אמור להיראות כך:
Status: Cassandra Data Replication: Cassandra Pod Ips: 10.8.2.204 Cassandra Ready Replicas: 1 Components: Cassandra: Last Successfully Released Version: Revision: v1-f8aa9a82b9f69613 Version: v1 Replicas: Available: 1 Ready: 1 Total: 1 Updated: 1 State: running Scaling: In Progress: false Operation: Requested Replicas: 0 State: runningממשיכים לשלב הבא רק אם ה-pod
apigeedsפועל. - מריצים את הפקודה הבאה כדי לרשום את הערכים החדשים של מספר העותקים של מעבד ההודעות אחרי השדרוג. אם הערכים האלה לא תואמים לערכים שהגדרתם בעבר, צריך לשנות את הערכים בקובץ הביטולים כך שיתאימו להגדרה הקודמת.
apigeectl apply -f ORIGINAL_OVERRIDES_FILE --dry-run=client --print-yaml --env ENV_NAME 2>/dev/null |grep "runtime:" -A 25 -B 1| grep "autoScaler" -A 2
הפלט אמור להיראות כך:
autoScaler: minReplicas: 2 maxReplicas: 10 - מריצים את
apigeectl init:$APIGEECTL_HOME/apigeectl init -f ORIGINAL_OVERRIDES_FILE
- בספרייה hybrid-files, מריצים את