שדרוג Apigee Hybrid לגרסה 1.11

ההליך הזה מתייחס לשדרוג מ-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. הכנות לשדרוג
  2. איך מתקינים את גרסת זמן הריצה ההיברידית 1.11.2

דרישות מוקדמות

ההוראות לשדרוג מניחות שיש לכם גרסה 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:

  1. קודם כול, מעבירים את התקנת Helm בגרסה 1.10 לפי ההוראות במאמר העברת Apigee Hybrid לתרשימי Helm מגרסה apigeectl.
  2. כדי לשדרג את ההתקנה, פועלים לפי ההוראות לתרשימי Helm שבהמשך.

הכנה לשדרוג לגרסה 1.11

Helm

  1. בהוראות האלה נעשה שימוש במשתנה הסביבה APIGEE_HELM_CHARTS_HOME עבור הספרייה במערכת הקבצים שבה התקנתם את תרשימי Helm. אם צריך, משנים את הספרייה לספרייה הזו ומגדירים את המשתנה באמצעות הפקודה הבאה:

    Linux

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    Mac OS

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    Windows

    set APIGEE_HELM_CHARTS_HOME=%CD%
    echo %APIGEE_HELM_CHARTS_HOME%
  2. יוצרים עותק גיבוי של ספריית $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
  3. מגבים את מסד הנתונים של Cassandra לפי ההוראות במאמר בנושא גיבוי ושחזור של Cassandra.
  4. אם אתם משתמשים בקובצי אישורים של שירות (.json) בשינויים שלכם כדי לאמת חשבונות שירות, ודאו שקובצי האישורים של חשבונות השירות נמצאים בספריית תרשימי ה-Helm הנכונה. תרשימי Helm לא יכולים לקרוא קבצים מחוץ לספרייה של כל תרשים.

    לא צריך לבצע את השלב הזה אם משתמשים בסודות של Kubernetes או ב-Workload Identity כדי לאמת חשבונות שירות.

    בטבלה הבאה מוצג היעד של כל קובץ של חשבון שירות, בהתאם לסוג ההתקנה:

    Prod

    חשבון שירות שם קובץ ברירת מחדל ספריית תרשימי Helm
    apigee-cassandra PROJECT_ID-apigee-cassandra.json $APIGEE_HELM_CHARTS_HOME/apigee-datastore/
    apigee-logger PROJECT_ID-apigee-logger.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-mart PROJECT_ID-apigee-mart.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-metrics PROJECT_ID-apigee-metrics.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-runtime PROJECT_ID-apigee-runtime.json $APIGEE_HELM_CHARTS_HOME/apigee-env
    apigee-synchronizer PROJECT_ID-apigee-synchronizer.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
    apigee-udca PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-watcher PROJECT_ID-apigee-watcher.json $APIGEE_HELM_CHARTS_HOME/apigee-org/

    Non-prod

    יוצרים עותק של קובץ חשבון השירות apigee-non-prod בכל אחת מהספריות הבאות:

    חשבון שירות שם קובץ ברירת מחדל ספריות של תרשימי Helm
    apigee-non-prod PROJECT_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/
  5. מוודאים שקובצי המפתח ואישור ה-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/
  1. בהוראות האלה נעשה שימוש במשתנה הסביבה 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%
  2. יוצרים עותק גיבוי של ספריית $APIGEECTL_HOME/ בגרסה 1.10. לדוגמה:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.10-backup.tar.gz $APIGEECTL_HOME
  3. מגבים את מסד הנתונים של Cassandra לפי ההוראות במאמר בנושא גיבוי ושחזור של Cassandra.

שדרוג גרסת Kubernetes

בודקים את הגרסה של פלטפורמת Kubernetes, ואם צריך, משדרגים את פלטפורמת Kubernetes לגרסה שנתמכת על ידי hybrid 1.10 ו-hybrid 1.11. אם אתם צריכים עזרה, תוכלו לעיין במסמכי התיעוד של הפלטפורמה.

התקנת זמן הריצה של hybrid 1.11.2

Helm

הכנה לשדרוג של תרשימי Helm

  1. כדי שהתרשימים 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 1.11.2-hotfix.3

  2. שולפים את תרשימי 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.2
    helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
    
  3. אם צריך, מתקינים את cert-manager.

    אם אתם צריכים לשדרג את הגרסה של cert-manager, אתם יכולים להתקין את הגרסה החדשה באמצעות הפקודה הבאה:

    kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.1/cert-manager.yaml
    
  4. מתקינים את ה-CRD המעודכנים של Apigee:
    1. כדי להשתמש בתכונה של הרצה יבשה של kubectl, מריצים את הפקודה הבאה:

      kubectl apply -k  apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run
      
    2. אחרי האימות באמצעות הפקודה להרצה יבשה, מריצים את הפקודה הבאה:

      kubectl apply -k  apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
      
    3. מאמתים את ההתקנה באמצעות הפקודה 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
      
  5. בודקים את התוויות בצמתי האשכול. כברירת מחדל, Apigee מתזמן את הפודים של הנתונים בצמתים עם התווית cloud.google.com/gke-nodepool=apigee-data, ואת הפודים של זמן הריצה בצמתים עם התווית cloud.google.com/gke-nodepool=apigee-runtime. אפשר להתאים אישית את תוויות מאגר הצמתים בקובץ overrides.yaml.

    מידע נוסף זמין במאמר בנושא הגדרת מאגרי צמתים ייעודיים.

התקנה של תרשימי Helm של Apigee Hybrid

  1. אם לא, עוברים לספרייה APIGEE_HELM_CHARTS_HOME ומריצים את הפקודות הבאות מתוך הספרייה.
  2. משדרגים את 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
  3. שדרוג מאגר הנתונים של 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
  4. שדרוג הטלמטרייה של 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
  5. שדרוג של 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
  6. משדרגים את 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
  7. משדרגים את הארגון ב-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
  8. משדרגים את הסביבה.

    צריך להתקין סביבה אחת בכל פעם. מציינים את הסביבה באמצעות --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
  9. משדרגים את קבוצות הסביבות (virtualhosts).
    1. צריך לשדרג קבוצת סביבות (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
      
    2. בודקים את המצב של 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

התקנה של 1.11.2-hotfix.3

  1. כדי לאפשר ל-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 1.11.2-hotfix.3

  2. מעדכנים את התרשים apigee-env באמצעות הפקודה helm upgrade וקובץ הביטולים הנוכחי.

    חוזרים על הפעולה לכל סביבה.

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --namespace APIGEE_NAMESPACE \
      --set env ENV_NAME \
      --atomic \
      -f OVERRIDES_FILE 

apigeectl

  1. מאחסנים את מספר הגרסה העדכני ביותר במשתנה באמצעות הפקודה הבאה:

    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
  2. כדי לוודא שהמשתנה אוכלס במספר גרסה, מריצים את הפקודה הבאה. אם רוצים להשתמש בגרסה אחרת, אפשר לשמור אותה במשתנה סביבה.
    echo $VERSION

    אמורה להופיע הגרסה האחרונה של Apigee Hybrid:

      1.11.2
  3. חשוב לוודא שאתם נמצאים בספריית הבסיס של ההיברידי (הספרייה הראשית שבה נמצא קובץ ההפעלה apigeectl):
    cd $APIGEECTL_HOME/..
  4. מורידים את חבילת הגרסה למערכת ההפעלה באמצעות הפקודה הבאה. חשוב לבחור את הפלטפורמה שלכם בטבלה הבאה:

    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
  5. משנים את השם של ספריית 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 
  6. מחלצים את תוכן קובץ ה-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 ./
  7. כברירת מחדל, התוכן של קובץ ה-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
  8. עוברים לספרייה apigeectl:
    cd ./apigeectl

    הספרייה הזו היא ספריית הבית apigeectl. זה המקום שבו נמצאת הפקודה להפעלה apigeectl.

  9. בהוראות האלה נעשה שימוש במשתנה הסביבה $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%
  10. כדי לוודא את הגרסה של apigeectl, מריצים את הפקודה version:
    ./apigeectl version
    Version: 1.11.2
  11. יוצרים ספרייה בשם 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
  12. מריצים את הפקודה הבאה כדי לוודא שההקשר הנכון מוגדר ל-kubectl. ההקשר הנוכחי צריך להיות מוגדר לאשכול שבו משדרגים את Apigee hybrid.
    kubectl config get-contexts | grep \*
  13. בספרייה hybrid-files:
    1. מעדכנים את הקישורים הסמליים הבאים לכתובת $APIGEECTL_HOME. הקישורים האלה מאפשרים להריץ את הפקודה apigeectl שזה עתה הותקנה מתוך הספרייה hybrid-files:
      ln -nfs $APIGEECTL_HOME/tools tools
      ln -nfs $APIGEECTL_HOME/config config
      ln -nfs $APIGEECTL_HOME/templates templates
      ln -nfs $APIGEECTL_HOME/plugins plugins
    2. כדי לוודא שהקישורים הסמליים נוצרו בצורה נכונה, מריצים את הפקודה הבאה ומוודאים שנתיבי הקישורים מצביעים על המיקומים הנכונים:
      ls -l | grep ^l
  14. מבצעים הפעלה ללא שינוי כדי לבדוק אם יש שגיאות:
    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client

    כאשר OVERRIDES_FILE הוא שם קובץ ההגדרות שלכם, למשל ./overrides/overrides.yaml.

  15. אם אין שגיאות, מאתחלים את hybrid 1.11.2:
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
  16. בודקים את סטטוס ההפעלה:
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    אם הפעולה בוצעה ללא שגיאות, הפלט ייראה כך: All containers ready.

    kubectl describe apigeeds -n apigee

    בפלט, מחפשים את State: running.

  17. כדי לבדוק אם יש שגיאות, מריצים הרצה יבשה של הפקודה apply באמצעות הדגל --dry-run:
    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
  18. אם אין שגיאות, מחילים את שינויי ברירת המחדל. בוחרים את ההוראות לסביבות ייצור או לסביבות שאינן סביבות ייצור, בהתאם להתקנה.

    ייצור

    בסביבות ייצור, צריך לשדרג כל רכיב היברידי בנפרד ולבדוק את הסטטוס של הרכיב המשודרג לפני שממשיכים לרכיב הבא.

    1. חשוב לוודא שאתם נמצאים בספרייה hybrid-files.
    2. מחילים את ההחלפות כדי לשדרג את Cassandra:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
    3. השלמת הבדיקה:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

      ממשיכים לשלב הבא רק כשהפודים מוכנים.

    4. מחילים את ההחלפות כדי לשדרג את רכיבי הטלמטריה ובודקים שהשדרוג הושלם:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    5. מפעילים את רכיבי Redis:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
    6. מחילים את השינויים כדי לשדרג את הרכיבים ברמת הארגון (MART, ‏ Watcher ו-Apigee Connect) ובודקים שהשדרוג הושלם:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --org
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    7. מחילים את השינויים כדי לשדרג את הסביבות. יש שתי אפשרויות:
      • סביבה אחרי סביבה: מחילים את השינויים על סביבה אחת בכל פעם ובודקים שהפעולה הושלמה. חוזרים על השלב הזה לכל סביבה:
        $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
    8. מחילים את ההחלפות כדי לשדרג את הרכיבים של virtualhosts ובודקים שהשדרוג הושלם:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    Non-prod

    ברוב הסביבות שאינן סביבות ייצור, הדגמה או ניסוי, אפשר להחיל את הביטולים על כל הרכיבים בבת אחת. אם הסביבה שלכם שהיא לא סביבת ייצור גדולה ומורכבת או שהיא דומה מאוד לסביבת ייצור, כדאי לפעול לפי ההוראות לשדרוג סביבות ייצור.

    1. חשוב לוודא שאתם נמצאים בספרייה hybrid-files.
    2. $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
    3. בודקים את הסטטוס:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

התקנה של 1.11.2-hotfix.3

  1. כדי לאפשר ל-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 1.11.2-hotfix.3

  2. מתקינים את התיקון הדחוף באמצעות apigeectl init עם קובץ ההחלפות המעודכן.

    הרצת בדיקה:

    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client
    

    הפעלה:

    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE
    
  3. מחילים את התיקון המהיר באמצעות apigeectl apply.

    הרצת בדיקה:

    ${APIGEECTL_HOME}/apigeectl apply -f OVERRIDES_FILE --all-envs --dry-run=client
    

    החלה על:

    ${APIGEECTL_HOME}/apigeectl apply -f OVERRIDES_FILE --all-envs
    

אפשר להשתמש בהליך הזה כדי לאמת את ההתנהגות של מדיניות JavaCallout אחרי שמשדרגים ל-Hybrid 1.11.2-hotfix.3.

  1. בודקים אם קובצי ה-Java JAR מבקשים הרשאות מיותרות.

    אחרי פריסת המדיניות, בודקים ביומני זמן הריצה אם מופיעה הודעת היומן הבאה: "Failed to load and initialize class ...". אם ההודעה הזו מופיעה, סימן שקובץ ה-JAR שנפרס ביקש הרשאות מיותרות. כדי לפתור את הבעיה, צריך לבדוק את קוד ה-Java ולעדכן את קובץ ה-JAR.

  2. בודקים ומעדכנים את קוד Java.

    בודקים את קוד ה-Java (כולל יחסי תלות) כדי לזהות את הסיבה לפעולות שאולי לא מותרות. אם נמצא, משנים את קוד המקור לפי הצורך.

  3. בדיקת מדיניות עם הפעלת בדיקת האבטחה.

    בסביבה שאינה סביבת ייצור, מפעילים את סימון בדיקת האבטחה ומפרסים מחדש את המדיניות עם קובץ 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 עד שהודעת היומן לא מופיעה יותר.

  4. הפעלת בדיקת האבטחה בסביבת הייצור.

    אחרי שבודקים ומאמתים את קובץ ה-JAR בסביבה שאינה סביבת ייצור, מפעילים את בדיקת האבטחה בסביבת הייצור על ידי הגדרת הדגל conf_security-secure.constructor.only לערך true ועדכון התרשים apigee-env בסביבת הייצור כדי להחיל את השינוי.

החזרה למצב הקודם של שדרוג

כדי לחזור לשדרוג קודם:

Helm

כדי לחזור לגרסה הקודמת, משתמשים בתרשימים ובקובץ ההחלפות מההתקנה הקודמת.

  1. יוצרים את משתנה הסביבה הבא:
    • PREVIOUS_HELM_CHARTS_HOME: הספרייה שבה מותקנים תרשימי ה-Helm הקודמים של Apigee Hybrid. זו הגרסה שאליה חוזרים.
  2. מחזירים את המארחים הווירטואליים לגרסה קודמת. חוזרים על הפקודה הבאה לכל קבוצת סביבות שמוזכרת בקובץ ההגדרות.
    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.

  3. מבטלים את השינויים בסביבות. חוזרים על הפקודה הבאה לכל סביבה שמוזכרת בקובץ הביטולים.
    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.

  4. החזרה של הארגון לגרסה קודמת:
    helm upgrade ORG_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  5. מחזירים את Ingress Manager למצב קודם:
    helm upgrade ingress-manager $PREVIOUS_HELM_CHARTS_HOME/apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  6. החזרה לגרסה קודמת של Redis:
    helm upgrade redis $PREVIOUS_HELM_CHARTS_HOME/apigee-redis/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  7. החזרה לגרסה קודמת של Apigee Telemetry:
    helm upgrade telemetry $PREVIOUS_HELM_CHARTS_HOME/apigee-telemetry/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  8. מבטלים את השינויים ב-Apigee Datastore (רכיב מסד הנתונים של Cassandra):
    helm upgrade datastore $PREVIOUS_HELM_CHARTS_HOME/apigee-datastore/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  9. מחזירים את Apigee Controller לגרסה קודמת:
    helm upgrade operator $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/ \
      --install \
      --namespace apigee-system \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  10. מחזירים את ה-CRD של Apigee Hybrid למצב קודם:
      kubectl apply -k  $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
    

apigeectl

  1. מנקים את המשימות שהושלמו במרחב השמות של זמן הריצה ההיברידי, כאשר NAMESPACE הוא מרחב השמות שצוין בקובץ ההחלפות, אם צוין מרחב שמות. אם לא, מרחב השמות שמוגדר כברירת מחדל הוא apigee:
    kubectl delete job -n NAMESPACE \
      $(kubectl get job -n NAMESPACE \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  2. ניקוי משימות שהושלמו במרחב השמות apigee-system:
    kubectl delete job -n apigee-system \
      $(kubectl get job -n apigee-system \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  3. משנים את המשתנה APIGEECTL_HOME כך שיצביע על הספרייה שמכילה את הגרסה הקודמת של apigeectl. לדוגמה:
    export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
  4. מריצים את הפקודות הבאות בספריית הבסיס של ההתקנה שרוצים לחזור אליה. חשוב להשתמש בקובץ המקורי של ההגדרות שבוטלו עבור הגרסה שאליה רוצים לחזור:
    1. בספרייה hybrid-files, מריצים את apigeectl apply:
      $APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILE

      ORIGINAL_OVERRIDES_FILE הוא הנתיב היחסי ושם הקובץ של קובץ ההחלפות להתקנה ההיברידית של הגרסה הקודמת, לדוגמה, ./overrides/overrides1.10.yaml.

    2. בודקים את הסטטוס של ה-Pods:
      kubectl -n NAMESPACE get pods

      כאשר NAMESPACE הוא מרחב השמות של Apigee Hybrid.

    3. בודקים את הסטטוס של 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 פועל.

    4. מריצים את הפקודה הבאה כדי לרשום את הערכים החדשים של מספר העותקים של מעבד ההודעות אחרי השדרוג. אם הערכים האלה לא תואמים לערכים שהגדרתם בעבר, צריך לשנות את הערכים בקובץ הביטולים כך שיתאימו להגדרה הקודמת.
      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
    5. מריצים את apigeectl init:
      $APIGEECTL_HOME/apigeectl init -f ORIGINAL_OVERRIDES_FILE