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

ההליך הזה מתייחס לשדרוג מ-Apigee Hybrid גרסה 1.9.x ל-Apigee Hybrid גרסה 1.10.5, ומגרסאות קודמות של Hybrid 1.10.x לגרסה 1.10.5.

אפשר להשתמש באותן פעולות לשדרוג גרסאות משניות (לדוגמה, מגרסה 1.9 לגרסה 1.10) ולשדרוג גרסאות של תיקוני אבטחה (לדוגמה, מגרסה 1.10.0 לגרסה 1.10.5).

סקירה כללית של שדרוג לגרסה 1.10.5

ההליכים לשדרוג Apigee hybrid מאורגנים בקטעים הבאים:

  1. הכנות לשדרוג
  2. התקנת גרסה 1.10.5 של זמן ריצה היברידי.

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

ההוראות לשדרוג מניחות שיש לכם את Apigee Hybrid בגרסה 1.9.x ואתם רוצים לשדרג לגרסה 1.10.5. אם אתם מעדכנים מגרסה קודמת, כדאי לעיין בהוראות לשדרוג Apigee Hybrid לגרסה 1.9.

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

  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.9. לדוגמה:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.9-backup.tar.gz $APIGEECTL_HOME
  3. מגבים את מסד הנתונים של Cassandra לפי ההוראות במאמר בנושא גיבוי ושחזור של Cassandra.

שדרוג גרסת Kubernetes

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

התקנת זמן הריצה של Apigee Hybrid 1.10.5

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

    Linux

    Linux 64 bit:

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_linux_64.tar.gz

    Mac OS

    Mac 64 bit:

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_mac_64.tar.gz

    Windows

    Windows 64 bit:

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_windows_64.zip
  3. משנים את השם של ספריית apigeectl/ הנוכחית לשם של ספריית גיבוי. לדוגמה:

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/

    Mac OS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.9 
  4. מחלצים את תוכן קובץ ה-gzip שהורד לספריית הבסיס ההיברידית. ספריית הבסיס ההיברידית היא הספרייה שבה נמצאת הספרייה apigeectl-v1.9 ששמה שונה:

    Linux

    tar xvzf filename.tar.gz -C ./

    Mac OS

    tar xvzf filename.tar.gz -C ./

    Windows

    tar xvzf filename.zip -C ./
  5. כברירת מחדל, התוכן של קובץ ה-tar מורחב לספרייה עם הגרסה והפלטפורמה בשם שלה. לדוגמה: ./apigeectl_1.10.5-xxxxxxx_linux_64. משנים את שם הספרייה ל-apigeectl באמצעות הפקודה הבאה:

    Linux

    mv apigeectl_1.10.5-xxxxxxx_linux_64 apigeectl

    Mac OS

    mv apigeectl_1.10.5-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.10.5-xxxxxxx_windows_64 apigeectl
  6. עוברים לספרייה apigeectl:
    cd ./apigeectl

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

  7. בהוראות האלה נעשה שימוש במשתנה הסביבה $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%
  8. כדי לוודא את הגרסה של apigeectl, מריצים את הפקודה version:
    ./apigeectl version
    Version: 1.10.5
  9. יוצרים ספרייה בשם 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
  10. מריצים את הפקודה הבאה כדי לוודא שההקשר הנכון מוגדר ל-kubectl. ההקשר הנוכחי צריך להיות מוגדר לאשכול שבו משדרגים את Apigee hybrid.
    kubectl config get-contexts | grep \*
  11. בספרייה 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
  12. כדי שהתרשים apigee-operator ישתמש בתג הנכון, 1.10.5-hotfix.1, צריך לבצע את השינוי הבא בקובץ overrides.yaml:
      ao:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-operators"
          tag: "1.10.5-hotfix.1"
      
  13. מבצעים הפעלה ללא שינוי כדי לבדוק אם יש שגיאות:
    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client

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

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

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

    kubectl describe apigeeds -n apigee

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

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

    ייצור

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

    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. מנקים את המשימות שהושלמו במרחב השמות של זמן הריצה ההיברידי, כאשר 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. בתיקיית הבסיס של ההתקנה שרוצים לחזור אליה, מריצים את הפקודה apigeectl apply, בודקים את הסטטוס של ה-pods ואז מריצים את הפקודה apigeectl init. חשוב להשתמש בקובץ ההחלפות המקורי של הגרסה שרוצים לחזור אליה:
    1. בספרייה hybrid-files, מריצים את apigeectl apply:
      $APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILE

      ORIGINAL_OVERRIDES_FILE הוא הנתיב היחסי ושם הקובץ של קובץ ההחלפות להתקנה ההיברידית של הגרסה הקודמת, לדוגמה, ./overrides/overrides1.9.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