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

סקירה כללית על שדרוג לגרסה 1.4.4.

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

  1. מגבים את ההתקנה ההיברידית.
  2. בודקים את גרסת Kubernetes ומשדרגים אותה לפי הצורך.
  3. שדרוג ASM.
  4. מתקינים את גרסת זמן הריצה ההיברידית 1.4.

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

שדרוג לגרסה 1.4

  1. (מומלץ) יוצרים עותק גיבוי של ספריית $APIGEECTL_HOME/ בגרסה 1.3. לדוגמה:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.3-backup.tar.gz $APIGEECTL_HOME
  2. (מומלץ) מגבים את מסד הנתונים של Cassandra לפי ההוראות במאמר בנושא גיבוי ושחזור של Cassandra.
  3. כדי לשדרג את פלטפורמת Kubernetes, פועלים לפי השלבים הבאים. אם אתם צריכים עזרה, תוכלו להיעזר במאמרי העזרה של הפלטפורמה:
    פלטפורמה שדרוג לגרסה
    GKE ‫1.18.x
    GKE on-prem ‏ (Anthos) ‫1.5.x
    AKS ‫1.18.x באמצעות Anthos Attached Clusters
    EKS ‫1.18.x באמצעות Anthos Attached Clusters
  4. משדרגים את ASM לגרסה 1.6.x.
    1. מבצעים את השדרוג באמצעות מסמכי התיעוד של ASM:
    2. מציינים את יציאות הכניסה הבאות ומגדירים את המאפיין runAsRoot לערך true בקובץ istio-operator.yaml"
          … … …
                  ports:
                  - port: 15021
                    name: status-port
                    targetPort: 15021
                  - port: 80
                    name: http2
                    targetPort: 80
                  - port: 443
                    name: https
                    targetPort: 443
      
          … … …
          values:
            gateways:
              istio-ingressgateway:
                runAsRoot: true 
    3. יוצרים משאבי PeerAuthentication CR כדי להשבית את mTLS בקובץ istio-operator.yaml:
      ---
      apiVersion: security.istio.io/v1beta1
      kind: PeerAuthentication
      metadata:
        name: apigee-system
        namespace: apigee-system
      spec:
        mtls:
          mode: DISABLE
      ---
      apiVersion: security.istio.io/v1beta1
      kind: PeerAuthentication
      metadata:
        name: user-namespace
        namespace: user-namespace
      spec:
        mtls:
          mode: DISABLE
    4. מחילים את השינויים האלה באמצעות istioctl כמו שמתואר במסמכי ה-ASM:

התקנה של זמן הריצה ההיברידי 1.4.4

  1. שמירת מספר הגרסה האחרונה במשתנה:
    export VERSION=$(curl -s \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)
  2. בודקים שהמשתנה אוכלס במספר גרסה. אם רוצים להשתמש בגרסה אחרת, אפשר לשמור אותה במשתנה סביבה. לדוגמה:
    echo $VERSION
      1.4.4
  3. מורידים את חבילת הגרסה למערכת ההפעלה שלכם:

    ‫Mac 64 bit:

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

    ‫Linux 64 bit:

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

    Mac 32 bit:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_32.tar.gz

    ‫Linux‏ 32 ביט:

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_32.tar.gz
  4. משנים את השם של ספריית apigeectl/ הנוכחית לשם של ספריית גיבוי. לדוגמה:
    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.2/ 
  5. מחלצים את התוכן של קובץ ה-gzip שהורדתם לספריית הבסיס ההיברידית. לדוגמה:

    tar xvzf filename.tar.gz -C hybrid-base-directory
  6. ‫cd לספריית הבסיס.
  7. כברירת מחדל, התוכן של קובץ ה-tar מורחב לספרייה עם הגרסה והפלטפורמה בשם שלה. לדוגמה: ./apigeectl_1.4.4-xxx_linux_64. משנים את השם של הספרייה ל-apigeectl:

    mv apigeectl_1.4.5-xxx_linux_64 apigeectl
  8. בספרייה new apigeectl/, מריצים את הפקודות apigeectl init,‏ apigeectl apply ו-apigeectl check-ready:
    1. הפעלה של הגרסה ההיברידית 1.4.4:
      apigeectl init -f overrides.yaml

      כאשר overrides.yaml הוא קובץ ה-overrides.yaml הערוך.

    2. בודקים שהאתחול בוצע בצורה תקינה באמצעות הפקודות הבאות:
      apigeectl check-ready -f overrides.yaml
      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
      
    3. התחביר של הדגל apigeectl --dry-run תלוי בגרסה של kubectl שמופעלת. בודקים את הגרסה של kubectl:
      gcloud version
    4. כדי לבדוק אם יש שגיאות, מריצים הרצה יבשה באמצעות הפקודה שמתאימה לגרסה של kubectl:

      ‫kubectl גרסה 1.17 וגרסאות ישנות יותר:

      apigeectl apply -f overrides.yaml --dry-run=true

      ‫kubectl גרסה 1.18 ואילך:

      apigeectl apply -f overrides.yaml --dry-run=client
    5. מחילים את השינויים. בוחרים את ההוראות לסביבות ייצור או לסביבות הדגמה/ניסוי, בהתאם להתקנה.

      ייצור

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

      1. מחילים את השינויים כדי לשדרג את Cassandra:
        apigeectl apply -f overrides.yaml --datastore
      2. השלמת הבדיקה:
        kubectl -n namespace get pods
        apigeectl check-ready -f overrides.yaml

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

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

      3. מחילים את ההחלפות כדי לשדרג את רכיבי הטלמטריה ובודקים שהשדרוג הושלם:
        apigeectl apply -f overrides.yaml --telemetry
        kubectl -n namespace get pods
        apigeectl check-ready -f overrides.yaml
      4. מחילים את השינויים כדי לשדרג את הרכיבים ברמת הארגון (MART, ‏ Watcher ו-Apigee Connect) ובודקים שהשדרוג הושלם:
        apigeectl apply -f overrides.yaml --org
        kubectl -n namespace get pods
        apigeectl check-ready -f overrides.yaml
      5. כדי לשדרג את הסביבות, צריך להחיל את הגדרות הביטול. יש שתי אפשרויות:
        • סביבה אחרי סביבה: מחילים את השינויים על סביבה אחת בכל פעם ובודקים שהפעולה הושלמה. חוזרים על השלב הזה לכל סביבה:
          apigeectl apply -f overrides.yaml --env env_name
          kubectl -n namespace get pods
          apigeectl check-ready -f overrides.yaml

          כאשר env_name הוא שם הסביבה שמשדרגים.

        • כל הסביבות בבת אחת: כדי להחיל את שינויי ברירת המחדל על כל הסביבות בבת אחת ולבדוק שהפעולה הושלמה:
          apigeectl apply -f overrides.yaml --all-envs
          kubectl -n namespace get pods
          apigeectl check-ready -f overrides.yaml

      הדגמה/ניסוי

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

      1. apigeectl apply -f overrides.yaml
      2. בודקים את הסטטוס:
        apigeectl check-ready -f overrides.yaml

    מזל טוב! השדרוג לגרסה 1.4.4 של Apigee Hybrid בוצע בהצלחה.