התהליך הזה כולל שדרוג מגרסה 1.15.x של Apigee Hybrid לגרסה 1.16.11 של Apigee Hybrid, ומגרסאות קודמות של Apigee Hybrid 1.16.x לגרסה 1.16.11.
השתמשו באותם תהליכים לשדרוג גרסאות משניות (לדוגמה, מגרסה 1.15 לגרסה 1.16) ולשדרוג גרסאות תיקון (לדוגמה, מגרסה 1.16.0 לגרסה 1.16.11).
אם אתם משדרגים מגרסה 1.14 או גרסה ישנה יותר של Apigee Hybrid, קודם אתם צריכים לשדרג לגרסה 1.15 ורק אז לגרסה 1.16.11. איך משדרגים את Apigee Hybrid לגרסה 1.15
שינויים מגרסה 1.15 של Apigee Hybrid
חשוב לשים לב לשינויים הבאים:
-
פרופילי Seccomp: החל מגרסה 1.16, ב-Apigee Hybrid אפשר להחיל פרופילי Seccomp על רכיבי סביבת זמן הריצה, וכך לשפר משמעותית את מצב האבטחה של הפריסה. התכונה הזו מאפשרת לאדמינים ולצוותי האבטחה של Apigee להגביל את קריאות המערכת שתהליך בקונטיינר יכול לבצע לליבה של המארח. אם מגבילים קונטיינר רק לקריאות המערכת הנחוצות, אפשר:
- אבטחה משופרת: צמצום הסיכון לבריחה מקונטיינר ולהסלמת הרשאות (privilege escalation).
- אכיפת הרשאות מינימליות: מוודאים שלרכיבים יש גישה רק לקריאות המערכת המדויקות שנדרשות לפעולה שלהם.
- עמידה בדרישות: אמצעי בקרה קריטי לעמידה בדרישות אבטחה מחמירות.
- הסרת UDCA ב-Apigee hybrid: ב-Apigee hybrid גרסה 1.16, הרכיב Unified Data Collection Agent (UDCA) הוסר. האחריות על שליחת נתוני ניתוח, מעקב וסטטוס פריסה למישור הבקרה של Apigee מטופלת עכשיו באמצעות פייפליין נתונים שמבוסס על Google Cloud Pub/Sub. השימוש ב-Pub/Sub שמבוסס על פייפליין נתונים הוא מנגנון ברירת המחדל לאיסוף נתונים מאז גרסה 1.14.0 של Apigee Hybrid.
-
חשבון שירות
apigee-guardrails: בגרסה 1.16.0, Apigee Hybrid מציג חשבון שירותapigee-guardrailsב-Google IAM. התרשים שלapigee-operatorמשתמש בזה במהלך ההתקנה כדי לבדוק שכל ממשקי ה-API הנדרשים מופעלים בפרויקט.למידע נוסף:
-
תמיכה בגרסה 1.18 ו-1.19 של cert-manager: Apigee hybrid v1.16 תומך בגרסה 1.18 ובגרסה 1.19 של cert-manager. בגרסה 1.18 של cert-manager, יש שינוי בערך ברירת המחדל של
Certificate.Spec.PrivateKey.rotationPolicyשיכול להשפיע על התנועה. אם אתם משדרגים מגרסה קודמת של Apigee Hybrid לגרסה 1.18 ומעלה של cert-manager, פעלו לפי ההוראות בקטע שדרוג cert-manager במדריך הזה.
מידע נוסף על התכונות בגרסה 1.16 של Apigee Hybrid זמין בנתוני הגרסה של Apigee Hybrid גרסה 1.16.11.
דרישות מוקדמות
לפני שמשדרגים לגרסה 1.16 של Apigee Hybrid, צריך לוודא שההתקנה עומדת בדרישות הבאות:
- אם בהתקנה ההיברידית פועלת גרסה ישנה יותר מ-v1.15, צריך לשדרג לגרסה 1.15 לפני השדרוג ל-v1.16. מידע נוסף זמין במאמר שדרוג Apigee Hybrid לגרסה 1.15.
- Helm בגרסה 3.14.2 ומעלה.
-
kubectl: גרסה נתמכת שלkubectlשמתאימה לגרסת פלטפורמת Kubernetes. פלטפורמות וגרסאות נתמכות:kubectl. - cert-manager: גרסה נתמכת של cert-manager. פלטפורמות וגרסאות נתמכות: cert-manager אם צריך, תשדרגו את cert-manager בקטע הכנה לשדרוג לגרסה 1.16 שבהמשך.
לפני שמשדרגים לגרסה 1.16.11 – מגבלות והערות חשובות
בגרסה 1.16.11 של Apigee Hybrid יש מגבלה חדשה ומשופרת על מספר שרתי ה-Proxy לכל סביבה, שמאפשרת לפרוס יותר שרתי Proxy ותהליכים משותפים בסביבה אחת. במאמר מגבלות: שרתי proxy ל-API מוסברות המגבלות על מספר שרתי ה-proxy והתהליכים המשותפים שאפשר לפרוס בכל סביבה. התכונה הזו זמינה רק בארגונים היברידיים חדשים, ואי אפשר להחיל אותה על ארגונים משודרגים. כדי להשתמש בתכונה הזו, צריך להתקין מחדש את גרסה 1.16.11 של Hybrid וליצור ארגון חדש.
התכונה הזו זמינה רק כחלק מתוכנית המינויים של 2024, וכפופה להרשאות שניתנות במסגרת המינוי הזה. למידע נוסף על התכונה הזו, ראו מגבלות משופרות על שרתי proxy לכל סביבה.
יכול להיות ששדרוג לגרסה 1.16 של Apigee Hybrid ידרוש זמן השבתה.
כשמשדרגים את בקר Apigee לגרסה 1.16.11, כל פריסות Apigee עוברות הפעלה מחדש הדרגתית. כדי לצמצם את זמן ההשבתה בסביבות ייצור היברידיות במהלך הפעלה מחדש הדרגתית, ודאו שאתם מפעילים לפחות שני אשכולות (באותו אזור או מרכז נתונים, או באזורים או מרכזי נתונים שונים). מפנים את כל תעבורת הנתונים של הייצור לאשכול אחד, מעבירים את האשכול שרוצים לשדרג למצב אופליין ואז ממשיכים בתהליך השדרוג. חוזרים על התהליך בכל אשכול.
אנחנו ממליצים לשדרג את כל האשכולות בהקדם האפשרי אחרי שמתחילים את השדרוג, כדי לצמצם את הסיכויים לפגיעה בסביבת הייצור. אין מגבלת זמן לשדרוג של שאר האשכולות אחרי שדרוג האשכול הראשון. עם זאת, עד שכל האשכולות הנותרים ישודרגו, אי אפשר יהיה לגבות ולשחזר את Cassandra בגרסאות מעורבות. לדוגמה, אי אפשר להשתמש בגיבוי מגרסה 1.15 של Hybrid כדי לשחזר מכונה של גרסה 1.16 של Hybrid.
לא צריך להשעות לגמרי את השינויים במישור הניהול במהלך השדרוג. אם נדרשות השעיות זמניות לשינויים במישור הניהול, הן מצוינות בהוראות השדרוג שבהמשך.
סקירה כללית של השדרוג לגרסה 1.16.11
ההליכים לשדרוג Apigee Hybrid מאורגנים בקטעים הבאים:
הכנה לשדרוג לגרסה 1.16
גיבוי ההתקנה ההיברידית
- בהוראות האלה משתמשים במשתנה הסביבה 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.15. אפשר להשתמש בכל תהליך גיבוי. לדוגמה, אפשר ליצור קובץtarשל כל הספרייה באמצעות:tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.15-backup.tar.gz $APIGEE_HELM_CHARTS_HOME - מגבים את מסד הנתונים של Cassandra לפי ההוראות במאמר גיבוי ושחזור של Cassandra.
-
מוודאים שקובצי המפתח ואישור ה-TLS (
.crt,.keyו/או.pem) נמצאים בספרייה$APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/.
שדרוג הגרסה של Kubernetes
בודקים את גרסת פלטפורמת Kubernetes, ואם צריך, משדרגים אותה לגרסה שנתמכת גם ב-hybrid 1.15 וגם ב-hybrid 1.16. אם אתם צריכים עזרה, כדאי לעיין במאמרי העזרה של הפלטפורמה.
מורידים את תרשימי Apigee Helm.
תרשימי Apigee Hybrid מתארחים ב-Google Artifact Registry:
oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
משתמשים בפקודה pull כדי להעתיק את כל תרשימי ה-Helm של Apigee Hybrid לאחסון המקומי:
export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-chartsexport CHART_VERSION=1.16.11helm 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
עורכים את kustomization.yaml למרחב שמות מותאם אישית של Apigee.
אם מרחב השמות של Apigee הוא לא apigee, עורכים את הקובץ apigee-operator/etc/crds/default/kustomization.yaml ומחליפים את הערך namespace במרחב השמות של Apigee.
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: APIGEE_NAMESPACE
אם אתם משתמשים ב-apigee כמרחב השמות, אתם לא צריכים לערוך את הקובץ.
-
משתמשים בתכונה "הרצה ללא שמירה" של
kubectlבאמצעות הפקודה הבאה:kubectl apply -k apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run=server
-
אחרי האימות באמצעות הפקודה 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 2024-08-21T14:48:30Z apigeedeployments.apigee.cloud.google.com 2024-08-21T14:48:30Z apigeeenvironments.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeissues.apigee.cloud.google.com 2024-08-21T14:48:31Z apigeeorganizations.apigee.cloud.google.com 2024-08-21T14:48:32Z apigeeredis.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeerouteconfigs.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeeroutes.apigee.cloud.google.com 2024-08-21T14:48:33Z apigeetelemetries.apigee.cloud.google.com 2024-08-21T14:48:34Z cassandradatareplications.apigee.cloud.google.com 2024-08-21T14:48:35Z
בודקים את התוויות בצמתים של האשכול.
כברירת מחדל, Apigee מתזמן פודים של נתונים בצמתים עם התווית cloud.google.com/gke-nodepool=apigee-data, ופודים של זמן ריצה מתזמנים בצמתים עם התווית cloud.google.com/gke-nodepool=apigee-runtime. אפשר להתאים אישית את התוויות של מאגר הצמתים בקובץ overrides.yaml.
מידע נוסף זמין במאמר הגדרת מאגרי צמתים ייעודיים.
הגדרת חשבון השירות של apigee-guardrails
החל מגרסה 1.16 של Apigee Hybrid, צריך את חשבון השירות apigee-guardrails כדי לשדרג את תרשים ה-Helm של apigee-operator.
בתהליך הבא, בוחרים את סוג האימות של חשבון השירות שבו משתמשים.
-
מוודאים שאפשר להפעיל את
create-service-account. אם הרגע הורדת את התרשימים, יכול להיות שהקובץcreate-service-accountלא במצב הפעלה. בספרייה APIGEE_HELM_CHARTS_HOME, מריצים את הפקודה הבאה:./apigee-operator/etc/tools/create-service-account --help
אם הפלט הוא
permission denied, צריך להפוך את הקובץ לקובץ הפעלה. לדוגמה, באמצעותchmodב-Linux, ב-MacOS או ב-UNIX, או ב-Windows Explorer או באמצעות הפקודהicaclsב-Windows. לדוגמה:chmod +x ./apigee-operator/etc/tools/create-service-account
-
יוצרים את חשבון השירות
apigee-guardrails:סודות של Kubernetes
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
הפקודה הזו יוצרת את חשבון השירות
apigee-guardrailsומורידה את המפתח לספרייהservice-accounts/.קובצי JSON
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir ./apigee-operator/
הפקודה הזו יוצרת את חשבון השירות
apigee-guardrailsומורידה את המפתח לספריית התרשיםapigee-operator/.Vault
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
הפקודה הזו יוצרת את חשבון השירות
apigee-guardrailsומורידה את המפתח לספרייהservice-accounts/.WIF ל-GKE
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
הפקודה הזו יוצרת את חשבון השירות
apigee-guardrailsומורידה את המפתח לספרייהapigee-operator/etc/tools/service-accounts/. אתם לא צריכים את קובץ המפתח שהורדתם ואתם יכולים למחוק אותו.WIF בפלטפורמות אחרות
./apigee-operator/etc/tools/create-service-account \ --env prod \ --profile apigee-guardrails \ --dir service-accounts
הפקודה הזו יוצרת את חשבון השירות
apigee-guardrailsומורידה את המפתח לספרייהservice-accounts/. -
מגדירים אימות לחשבון השירות
apigee-guardrails:סודות של Kubernetes
יוצרים את הסוד של Kubernetes באמצעות קובץ המפתח של חשבון השירות
apigee-guardrailsבספרייהservice-accounts/:kubectl create secret generic apigee-guardrails-svc-account \ --from-file="client_secret.json=$APIGEE_HELM_CHARTS_HOME/service-accounts/$PROJECT_ID-apigee-guardrails.json" \ -n $APIGEE_NAMESPACEמוסיפים לקובץ
overrides.yamlאת הנתונים הבאים:guardrails: serviceAccountRef: apigee-guardrails-svc-account
קובצי JSON
מוסיפים את הנתונים הבאים לקובץ
overrides.yaml, באמצעות הנתיב לקובץ המפתח של חשבון השירותapigee-guardrailsבספרייהapigee-operator/:guardrails: serviceAccountPath: $PROJECT_ID-apigee-guardrails.json
Vault
- מעדכנים את הסוד של Vault
secret/data/apigee/orgsakeysכדי להוסיף רשומה שלguardrailsעם התוכן של קובץ המפתח של חשבון השירותapigee-guardrails.vault kv patch secret/apigee/orgsakeys guardrails="$(cat ./service-accounts/hybrid115-apigee-guardrails.json)"
-
חשבון השירות של Kubernetes (KSA) למעקות בטיחות נקרא
apigee-operator-guardrails-sa. מוסיפים את ה-KSA של Guardrails לחשבונות השירות הספציפיים לארגון שמקושרים לתפקידapigee-orgsakeysב-Vault.- מציגים את הרשימה הנוכחית של הקישורים של ה-KSA:
vault read auth/kubernetes/role/apigee-orgsakeys
הפלט צריך להיות בפורמט הבא:
Key Value --- ----- alias_name_source serviceaccount_uid bound_service_account_names BOUND_SERVICE_ACCOUNT_NAMES bound_service_account_namespace_selector n/a bound_service_account_namespaces APIGEE_NAMESPACE
בפלט,
BOUND_SERVICE_ACCOUNT_NAMESהיא רשימה של שמות חשבונות שירות שמופרדים בפסיקים. מוסיפים אתapigee-operator-guardrails-saלרשימת השמות. לדוגמה (בלי המעברים לשורה חדשה שנוספו כדי לשפר את הקריאוּת):apigee-manager,apigee-cassandra-default,apigee-cassandra-backup-sa, apigee-cassandra-restore-sa,apigee-cassandra-schema-setup-myhybrido rg-5b044c1,apigee-cassandra-schema-val-myhybridorg-5b044c1,apigee-c assandra-user-setup-myhybridorg-5b044c1,apigee-mart-myhybridorg-5b0 44c1,apigee-mint-task-scheduler-myhybridorg-5b044c1,apigee-connect- agent-myhybridorg-5b044c1,apigee-watcher-myhybridorg-5b044c1,apigee -metrics-apigee-telemetry,apigee-open-telemetry,apigee-synchronizer -myhybridorg-dev-ee52aca,apigee-runtime-telemetry-collector-apigee- telemetry,apigee-logger-apigee-e-myhybrridorg-dev-ee52aca,apigee-sy nchronizer-myhybridog-prod-2d0221c,apigee-runtime-myhybridorg-prod- 2d0221c,apigee-operator-guardrails-sa
- מעדכנים את הקישורים לתפקיד
apigee-orgsakeysבאמצעות הרשימה המעודכנת של שמות חשבונות השירות:vault write auth/kubernetes/role/apigee-orgsakeys \ bound_service_account_names=UPDATED_BOUND_SERVICE_ACCOUNT_NAMES \ bound_service_account_namespaces=APIGEE_NAMESPACE \ policies=apigee-orgsakeys-auth \ ttl=1m
- מציגים את הרשימה הנוכחית של הקישורים של ה-KSA:
-
הוספת "מעקות בטיחות" ל-
SecretProviderClass- עורכים את הקובץ
spc-org.yaml. - בקטע
spec.parameters.objects, מוסיפים רשומה של מעקות בטיחות:- objectName: "guardrails" secretPath: "" secretKey: "" - עדכון של
SecretProviderClass:kubectl -n APIGEE_NAMESPACE apply -f spc-org.yaml
- עורכים את הקובץ
WIF ל-GKE
חשבון השירות של Kubernetes (KSA) למעקות בטיחות נקרא
apigee-operator-guardrails-sa. יוצרים את הקישור לחשבון השירות של Google (GSA) ב-apigee-guardrailsבאמצעות הפקודה הבאה:gcloud iam service-accounts add-iam-policy-binding apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$APIGEE_NAMESPACE/apigee-operator-guardrails-sa]" \ --project $PROJECT_IDמוסיפים לקובץ
overrides.yamlאת הנתונים הבאים:guardrails: gsa: apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com
WIF בפלטפורמות אחרות
חשבון השירות של Kubernetes (KSA) למעקות בטיחות נקרא
apigee-operator-guardrails-sa. צריך לתת ל-KSA של מעקות הבטיחות גישה כדי להתחזות לחשבון השירות של Google (GSA) ב-apigee-guardrails, ולהגדיר את השינויים כך שישתמשו בקובץ תצורה של פרטי כניסה.- נותנים ל-KSA גישה להתחזות ל-GSA באמצעות הפקודה הבאה:
תבנית
gcloud iam service-accounts add-iam-policy-binding \ apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/system:serviceaccount:APIGEE_NAMESPACE:apigee-operator-guardrails-sa" \ --role=roles/iam.workloadIdentityUser
דוגמה
gcloud iam service-accounts add-iam-policy-binding \ apigee-guardrails@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-operator-guardrails-sa" \ --role=roles/iam.workloadIdentityUser
כאשר:
PROJECT_ID: מזהה הפרויקט בענן של Google.-
PROJECT_NUMBER: מספר הפרויקט שבו יצרתם את מאגר הזהויות של עומסי העבודה. -
POOL_ID: מזהה מאגר הזהויות של עומסי העבודה. -
APIGEE_NAMESPACE: מרחב השמות שבו מותקן Apigee Hybrid.
- יוצרים קובץ תצורה של פרטי הכניסה לחשבון השירות
apigee-guardrails:gcloud iam workload-identity-pools create-cred-config \ projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/WORKLOAD_PROVIDER_ID \ --service-account=apigee-guardrails@$PROJECT_ID.iam.gserviceaccount.com \ --credential-source-file=/var/run/service-account/token \ --credential-source-type=text \ --output-file=apigee-guardrails-credential-configuration.jsonכאשר
WORKLOAD_PROVIDER_IDהוא המזהה של ספק מאגר הזהויות של עומסי העבודה. - מגדירים את
apigee-guardrailsלשימוש באיחוד שירותי אימות הזהות של עומסי עבודה באחת מהשיטות הבאות:WIF: סודות
-
יוצרים סוד חדש ב-Kubernetes באמצעות קובץ המקור של פרטי הכניסה לכל קובץ תצורה של פרטי כניסה.
kubectl create secret -n APIGEE_NAMESPACE generic guardrails-workload-identity-secret --from-file="client_secret.json=./apigee-guardrails-credential-configuration.json"
-
מחליפים את הערך של
serviceAccountRefבסוד החדש:guardrails: serviceAccountRef: guardrails-workload-identity-secret
WIF: קבצים
מעבירים את הקובץ
apigee-guardrails-credential-configuration.jsonשנוצר לספריית התרשיםapigee-operator/.מוסיפים לקובץ
overrides.yamlאת הנתונים הבאים:guardrails: serviceAccountPath: apigee-guardrails-credential-configuration.json
WIF: Vault
צריך לעדכן את המפתח של חשבון השירות של
guardrailsב-Vault באמצעות קובץ המקור התואם של פרטי הכניסה:SAKEY=$(cat .apigee-guardrails-credential-configuration.json); kubectl -n APIGEE_NAMESPACE exec vault-0 -- vault kv patch secret/apigee/orgsakeys guardrails="$SAKEY"
מידע נוסף זמין בכתובת
Storing service account keys in Hashicorp Vault. -
יוצרים סוד חדש ב-Kubernetes באמצעות קובץ המקור של פרטי הכניסה לכל קובץ תצורה של פרטי כניסה.
- מעדכנים את הסוד של Vault
שדרוג cert-manager
Apigee Hybrid בגרסה 1.16 תומך בגרסאות 1.16 עד 1.19 של cert-manager. יש שינוי ב-cert-manager 1.18 שיכול לגרום לבעיה בתנועה. בגרסה 1.18 של cert-manager, ערך ברירת המחדל של Certificate.Spec.PrivateKey.rotationPolicy השתנה מ-Never ל-Always. בהתקנות משודרגות של Apigee hybrid, זה עלול לגרום לבעיה בתנועה. כשמשדרגים לגרסה 1.16 של Hybrid מגרסה קודמת, צריך לערוך את האישור של apigee-ca כדי לפצות על השינוי הזה, או להשאיר את הגרסה של cert-manager בגרסה 1.17.x או בגרסה קודמת.
לפני שמשדרגים את cert-manager לגרסה 1.18 או 1.19, צריך לערוך את האישור של apigee-ca כדי להגדיר את הערך של Certificate.Spec.PrivateKey.rotationPolicy ל-Never.
-
בודקים את התוכן של האישור
apigee-caכדי לראות אםrotationPolicyמוגדר:kubectl get certificate apigee-ca -n cert-manager -o yaml
מחפשים את הערכים בקטע
spec.privateKeyבפלט:... spec: commonName: apigee-hybrid duration: 87600h isCA: true issuerRef: group: cert-manager.io kind: ClusterIssuer name: apigee-root-certificate-issuer privateKey: algorithm: ECDSA # Note: rotationPolicy would appear here if it is set. size: 256 secretName: apigee-ca ... -
אם
rotationPolicyלא מוגדר או אם הוא מוגדר ל-Always, עורכים את האישורapigee-caכדי להגדיר את הערך שלrotationPolicyל-Never:- קודם מבצעים הרצה יבשה:
kubectl patch Certificate \ --dry-run=server \ -n cert-manager \ --type=json \ -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \ -o=yaml \ apigee-ca - מתקנים את האישור:
kubectl patch Certificate \ -n cert-manager \ --type=json \ -p='[{"op": "replace", "path": "/spec/privateKey/rotationPolicy", "value": "Never"}]' \ -o=yaml \ apigee-ca
- קודם מבצעים הרצה יבשה:
-
מוודאים שהערך של
rotationPolicyמוגדר עכשיו כ-Never:kubectl get certificate apigee-ca -n cert-manager -o yaml
הפלט אמור להיראות כך:
... spec: commonName: apigee-hybrid duration: 87600h isCA: true issuerRef: group: cert-manager.io kind: ClusterIssuer name: apigee-root-certificate-issuer privateKey: algorithm: ECDSA rotationPolicy: Never size: 256 secretName: apigee-ca ... -
משדרגים את cert-manager. הפקודה הבאה תוריד ותתקין את cert-manager בגרסה 1.19.2:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.2/cert-manager.yaml
רשימת הגרסאות הנתמכות מופיעה במאמר פלטפורמות וגרסאות נתמכות: cert-manager.
למידע נוסף:
- בעיה מוכרת 465834046
- גרסה 1.18 של cert-manager: ערך ברירת המחדל של
Certificate.Spec.PrivateKey.rotationPolicyהוא עכשיוAlways
התקנת סביבת זמן הריצה של Apigee Hybrid בגרסה 1.16.11
- אם לא, עוברים לספרייה
APIGEE_HELM_CHARTS_HOME. מריצים את הפקודות הבאות מהספרייה הזו. - משדרגים את Apigee Operator/Controller:
למידע נוסף:
הרצת בדיקה:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
כדי לשדרג את התרשים:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
אימות ההתקנה של Apigee Operator:
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2024-08-21 00:42:44.492009 -0800 PST deployed apigee-operator-1.16.11 1.16.11
כדי לוודא שהיא פועלת, בודקים את הזמינות שלה:
kubectl -n APIGEE_NAMESPACE 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_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
כדי לשדרג את התרשים:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
כדי לוודא ש-
apigeedatastoreפועל, בודקים את המצב שלו:kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 2d
- שדרוג הטלמטריה של Apigee:
הרצת בדיקה:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
כדי לשדרג את התרשים:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
כדי לוודא שהיא פועלת, בודקים את המצב שלה:
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 2d
- שדרוג של Apigee Redis:
הרצת בדיקה:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
כדי לשדרג את התרשים:
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
כדי לוודא שהיא פועלת, בודקים את המצב שלה:
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 2d
- שדרוג מנהל תעבורת הנתונים הנכנסת של Apigee:
הרצת בדיקה:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
כדי לשדרג את התרשים:
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
כדי לוודא שהיא פועלת, בודקים את הזמינות שלה:
kubectl -n APIGEE_NAMESPACE 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_NAMESPACE \ -f OVERRIDES_FILE \ --dry-run=server
כדי לשדרג את התרשים:
helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ -f OVERRIDES_FILE
כדי לוודא שהיא פועלת, בודקים את המצב של הארגון הרלוונטי:
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE apigee-my-org-my-env running 2d
- משדרגים את הסביבה.
צריך להתקין סביבה אחת בכל פעם. מציינים את הסביבה באמצעות
--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. השם הזה חייב להיות ייחודי ושונה משמות אחרים של גרסאות Helm בהתקנה. בדרך כלל זהה ל-ENV_NAME. עם זאת, אם לסביבה יש שם זהה לזה של קבוצת הסביבות, צריך להשתמש בשמות שונים לגרסאות של הסביבה ושל קבוצת הסביבות, למשלdev-env-releaseו-dev-envgroup-release. מידע נוסף על גרסאות ב-Helm זמין במאמר Three big concepts במסמכי התיעוד של Helm. - ENV_NAME הוא שם הסביבה שמשדרגים.
- OVERRIDES_FILE הוא קובץ ההגדרות החדש שלך לגרסה 1.16.11
כדי לשדרג את התרשים:
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
- ENV_RELEASE_NAME הוא שם שמשמש למעקב אחרי ההתקנה והשדרוגים של התרשים
-
משדרגים את קבוצות הסביבות (
virtualhosts).- צריך לשדרג קבוצת סביבות (virtualhost) אחת בכל פעם. מציינים את קבוצת הסביבות באמצעות
--set envgroup=ENV_GROUP_NAME. חוזרים על הפקודות הבאות לכל קבוצת סביבות שמוזכרת בקובץ overrides.yaml:הרצת בדיקה:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE \ --dry-run=server
ENV_GROUP_RELEASE_NAME הוא השם שבו התקנתם בעבר את התרשים
apigee-virtualhost. בדרך כלל זה ENV_GROUP_NAME.כדי לשדרג את התרשים:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE
- בודקים את המצב של ApigeeRoute (AR).
התקנת
virtualhostsיוצרת את ApigeeRouteConfig (ARC), שיוצר באופן פנימי את ApigeeRoute (AR) אחרי שה-watcher של Apigee שולף פרטים שקשורים לקבוצת הסביבות ממישור הבקרה. לכן, צריך לבדוק שהמצב של ה-AR התואם הוא "פועל":kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2d
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-org1-dev-egroup-123abc running 2d
- צריך לשדרג קבוצת סביבות (virtualhost) אחת בכל פעם. מציינים את קבוצת הסביבות באמצעות
- אחרי שמוודאים שכל ההתקנות שודרגו, מוחקים את הגרסה הישנה של
apigee-operatorממרחב השמותapigee-system.- מסירים את הגרסה הישנה של
operator:helm delete operator -n apigee-system
- מוחקים את מרחב השמות
apigee-system:kubectl delete namespace apigee-system
- מסירים את הגרסה הישנה של
- משדרגים שוב את
operatorבמרחב השמות של Apigee כדי להתקין מחדש את המשאבים שנמחקו ברמת האשכול:helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
חזרה לגרסה קודמת
כדי לחזור לגרסה הקודמת, משתמשים בגרסת התרשים הישנה יותר כדי להחזיר את תהליך השדרוג בסדר הפוך. מתחילים עם apigee-virtualhost וחוזרים אחורה עד apigee-operator, ואז מחזירים את ה-CRD.
- מבטלים את השינויים בתרשימים. הפקודות הבאות מניחות שאתם משתמשים בתרשימים מהגרסה הקודמת (v1.15.x).
-
מריצים את הפקודה הבאה לכל קבוצת סביבות:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f 1.15_OVERRIDES_FILE
-
מריצים את הפקודה הבאה לכל סביבה:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=ENV_NAME \ -f 1.15_OVERRIDES_FILE
-
apigee-org:helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.15_OVERRIDES_FILE
-
apigee-ingress-manager:helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.15_OVERRIDES_FILE
-
apigee-redis:helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.15_OVERRIDES_FILE
-
apigee-telemetry:helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.15_OVERRIDES_FILE
-
apigee-datastore:helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.15_OVERRIDES_FILE
-
apigee-operator:helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f 1.15_OVERRIDES_FILE
-
- כדי לחזור לגרסה הקודמת של ה-CRD, מתקינים מחדש את ה-CRD הישנים יותר.
kubectl apply -k apigee-operator/etc/crds/default/ \ --server-side \ --force-conflicts \ --validate=false