עדכון ותיקון של המכשיר

בדף הזה מוסבר איך לעדכן ולתקן את מכשיר ה-appliance של Google Distributed Cloud ‏ (GDC) שמוגדר ללא חיבור לאינטרנט.

הכנה לשדרוג

לפני השדרוג, חשוב לוודא שאתם עומדים בדרישות שמפורטות בקטע הזה.

לפני שמתחילים

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

קודם צריך לבצע את הפעולות הבאות לגבי כלי ממשק שורת הפקודה (CLI) של gdcloud:

  1. מורידים את כלי ה-CLI‏ gdcloud.
  2. מתקינים את כלי ה-CLI של gdcloud.
  3. משדרגים את כלי ה-CLI gdcloud לפי הצורך.
  4. מוודאים שהרכיב docker-credential-gdcloud קיים.

העברת פריטי ה-Artifact למכונת השדרוג

צריכה להיות לכם גישה לקטגוריה של Cloud Storage.

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

  1. הורדת החבילה על סמך גרסת התיקון שנבחרה:

    VERSION=<x.x.x-gdch.yyy>
    RELEASE_SUFFIX="_te"
    DOWNLOADER=gdch-downloader-prod${RELEASE_SUFFIX}-$VERSION.sh
    gcloud storage cp "gs://$GCS_BUCKET/$VERSION/$DOWNLOADER" .
    gcloud storage cp "gs://$GCS_BUCKET/$VERSION/${DOWNLOADER}.sig" .
    
    PUBLIC_KEY=$(cat <<-PUBEND
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEn46iVSyFXsvuKLZ4dVOr2AqlXDnR
    5cKztkpraexHDxn/ozq03EvrdkRmZkSACFfcaEFyitpraidgAx8sPjvzXQ==
    -----END PUBLIC KEY-----
    PUBEND
    )
    echo "${PUBLIC_KEY}" > "key.pub"
    DOWNLOADER=gdch-downloader-${PRODUCT}-$VERSION.sh
    
    gcloud storage cp "gs://${GCS_BUCKET:-private-cloud-release}/$VERSION/$DOWNLOADER*" .
       openssl dgst -sha256 -verify "key.pub" -signature "${DOWNLOADER}.sig" ${DOWNLOADER} && chmod +x $DOWNLOADER && ./$DOWNLOADER --skip-unzip
    

    הפקודה הזו מאחזרת את חבילת העדכון ואת סקריפט ההורדה לספרייה הנוכחית, לדוגמה, /home/download.

  2. מריצים את tree -L 3 /home/download.

    פלט לדוגמה:

    /home/download
    ├── gdch
    │   └── x.x.x-gdch.x
    │       ├── bootstrapper
    │       │   ├── bootstrapper.iso
    │       │   └── bootstrapper.iso.sig
    │       ├── gdch-prod_te-x.x.x-gdch.x-sbom.tar.gz
    │       ├── gdch-prod_te-x.x.x-gdch.x-sbom.tar.gz.sig
    │       ├── prod_te_gdch.tar.gz
    │       └── prod_te_gdch.tar.gz.sig
    ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh
    ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh.1.sig
    ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh.sig
       └── key.pub
    
  3. מעתיקים את העדכון לסביבה עם פער אוויר באמצעות כונן ה-USB.

    מעתיקים את סקריפט ההורדה ואת ספריית gdch שהורדתם לכונן ה-USB בשלב 1 למחשב השדרוג בסביבה עם פער אבטחה.

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

    פורקים את החבילה:

    VERSION=x.x.x-gdch.x
    PRODUCT=prod_te
    DOWNLOADER=gdch-downloader-${PRODUCT}-$VERSION.sh
    openssl dgst -sha256 -verify "key.pub" -signature "${DOWNLOADER}.sig" ${DOWNLOADER} && chmod +x $DOWNLOADER && ./$DOWNLOADER --skip-download
    

    החבילה נפרקת בנתיב /root/gdch/full-release-x.x.x-gdch.x.

  5. מוודאים שהגרסה זהה לגרסה שהגדרתם ב-VERSION:

    /root/gdch/full-release-x.x.x-gdch.x/gdcloud version
    

    פלט לדוגמה:

    gdcloud version: 1.14.4-gdch.0
    

אמת

כדי לבצע אימות באמצעות ספק הזהויות שהגדרתם ולבקש קובץ kubeconfig עבור זהות המשתמש והאשכול, אפשר לעיין במאמר בנושא אימות.

  1. נכנסים לחשבון ויוצרים את קבצי kubeconfig.

  2. מגדירים את קובצי ה-kubeconfig כמשתני סביבה:

      export KUBECONFIG=ROOT_ADMIN_KUBECONFIG
      export MANAGEMENT_KUBECONFIG=MANAGEMENT_API_KUBECONFIG
    
  3. שליחת בקשה לתפקידים הבאים:

    • שדרוג של Appliance Admin:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding upgrade-admin-te-initial-user --clusterrole=upgrade-admin-te --user=keycloak-oidc-initial-user@example.com
      kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create clusterrolebinding upgrade-admin-te-initial-user --clusterrole=upgrade-admin-te --user=keycloak-oidc-initial-user@example.com
      
    • אדמין לניהול ארטיפקטים של המערכת:

       kubectl --kubeconfig=$KUBECONFIG create rolebinding system-artifact-management-admin-initial-user --role=system-artifact-management-admin --user=keycloak-oidc-initial-user@example.com -n gpc-system
       kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create rolebinding system-artifact-management-admin-initial-user --role=system-artifact-management-admin --user=keycloak-oidc-initial-user@example.com -n gpc-system
      
    • אדמין של סודות לניהול ארטיפקטים במערכת:

       kubectl --kubeconfig=$KUBECONFIG create rolebinding system-artifact-management-secrets-admin-initial-user --role=system-artifact-management-secrets-admin --user=keycloak-oidc-initial-user@example.com -n anthos-creds
      
    • כלי לצפייה בסיומת DNS:

       kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create rolebinding dnssuffix-viewer-initial-user --role=dnssuffix-viewer --user=keycloak-oidc-initial-user@example.com -n gpc-system
      
    • כלי תקינות המערכת של Artifact Registry:

       kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding sar-monitor-initial-user --clusterrole=sar-monitor --user=keycloak-oidc-initial-user@example.com
       kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create clusterrolebinding sar-monitor-initial-user --clusterrole=sar-monitor --user=keycloak-oidc-initial-user@example.com
      
    • שדרוג הכלי לניפוי באגים:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding upgrade-debugger-initial-user --clusterrole=upgrade-debugger --user=keycloak-oidc-initial-user@example.com
      
    • כלי לניפוי באגים ב-Artifact Registry של המערכת:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding sar-debugger-initial-user --clusterrole=sar-debugger --user=keycloak-oidc-initial-user@example.com
      
  4. מגדירים את Docker:

    gdcloud auth configure-docker --config-cert=true
    

התחלת השדרוג

כדי להתחיל בשדרוג של ה-appliance:

gdcloud appliance upgrade 

מידע נוסף זמין בכתובת gdcloud appliance upgrade.

הפקודה מריצה את השלבים הבאים:

  1. מריצים את הבדיקות המקדימות במחשב השדרוג.
  2. הרצת בדיקות קדם הפעלה לאחסון OTS
  3. העלאת הארטיפקטים למאגר הארטיפקטים.
  4. שדרוג התוכנה והקושחה של המכשיר, כולל:
    1. אשכול GDC root-admin.
    2. שירותי GDC.
    3. מערכות ההפעלה (OS) של צמתים פיזיים ווירטואליים.
    4. המתג.
    5. אחסון

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

The GDC appliance upgrade completed successfully