מדריך לביצוע שדרוג

במדריך הזה מוסבר באופן כללי איך לשדרג התקנה קיימת של Manufacturing Data Engine ‏ (MDE) באמצעות Terraform.

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

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

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

כדי להשתמש במדריך הזה, אתם צריכים:

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

    אפשר להשתמש בכל סביבת לקוח כדי לפרוס את MDE, אבל אפשר לחסוך זמן אם פורסים מ-Cloud Shell, כי רוב הכלים הנדרשים כבר מותקנים בו.

    הפעלת Cloud Shell

  3. יש לכם גישה מלאה לפרויקט MDE Google Cloud וגישה לקובצי ההגדרות ששימשו לפריסה המקורית:

    • קובץ מפתח JSON של חשבון שירות: mde-imgs-service-account-key.json.
    • ‫Terraform: input.tfvars.
    • ‫Terraform: backend.conf.

    כל הפקודות של gcloud במדריך הזה מניחות שפרויקט ברירת המחדל מוגדר כפרויקט הפריסה של MDE. אפשר להגדיר את פרויקט ברירת המחדל באמצעות הפקודה הבאה:

    gcloud config set project PROJECT_ID
    

    מחליפים את PROJECT_ID במזהה הפרויקט של פריסת MDE.

  4. קיבלת את פרטי הכניסה לאשכול MDE GKE. אם עדיין לא עשיתם זאת, משתמשים בפקודה הבאה:

    export CLUSTER_NAME="mde-gke"
    export CLUSTER_LOCATION=$(gcloud container clusters list --filter="name:$CLUSTER_NAME" --format="value(LOCATION)" )
    
    # when upgrading to 1.5.2 we need to enable DNS endpoint on GKE cluster to allow Terraform connect to it
    gcloud container clusters update $CLUSTER_NAME --region $CLUSTER_LOCATION --enable-dns-access
    
    export KUBE_CONFIG_PATH=~/.kube/config
    gcloud container clusters get-credentials $CLUSTER_NAME --region $CLUSTER_LOCATION --dns-endpoint
    

    מחליפים את CLUSTER_NAME בשם האשכול אם שיניתם את שם ברירת המחדל (mde-gke). משנים את KUBE_CONFIG_PATH אם קובץ ה-kubeconfig לא נמצא בנתיב ברירת המחדל.

שדרוג

בקטע הזה מוסבר איך לבצע את השדרוג באמצעות Terraform.

  1. מעדכנים את ההרשאות של חשבון השירות של Terraform כדי להוסיף את ההרשאות הנדרשות החדשות מ-MDE 1.4.0 ומגרסאות חדשות יותר. אפשר להוסיף אותם באמצעות הפקודות הבאות:

    export PROJECT_ID=$(gcloud config get-value project)
    export SA_TERRAFORM="mde-tf"
    
    gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="serviceAccount:$SA_TERRAFORM@$PROJECT_ID.iam.gserviceaccount.com" \
    --role='roles/file.editor'
    
  2. מגבים את תיקיית הפריסה הישנה באמצעות הפקודה הבאה:

    cp -r MDE_FOLDER MDE_FOLDER_BACKUP
    

    מחליפים את MDE_FOLDER ואת MDE_FOLDER_BACKUP בשם של תיקיית MDE ותיקיית הגיבוי.

  3. מורידים את חבילת הפתרון העדכנית ביותר של MDE ומחלצים אותה:

    1. מורידים את חבילת הפתרון.
    2. מחלקים את החבילה לסביבת הלקוח.
    3. עוברים לתיקיית הגרסה החדשה באמצעות הפקודה cd.
  4. אם אתם משדרגים לגרסה v1.4.x, אתם צריכים להעתיק את הקבצים הבאים מהגיבוי לתיקייה החדשה באמצעות הפקודות הבאות (נתיבי הקבצים עשויים להיות שונים):

    cp ../MDE_FOLDER_BACKUP/mde-imgs-service-account-key.json .
    cd deployment/terraform
    cp ../../../MDE_FOLDER_BACKUP/deployment/terraform/input.tfvars .
    cp ../../../MDE_FOLDER_BACKUP/deployment/terraform/backend.conf .
    

    אם משדרגים לגרסה 1.5.1, מעתיקים רק את הקבצים הבאים:

    cd deployment/terraform
    cp ../../../MDE_FOLDER_BACKUP/deployment/terraform/input.tfvars .
    cp ../../../MDE_FOLDER_BACKUP/deployment/terraform/backend.conf .
    

    מחליפים את MDE_FOLDER_BACKUP בשם של תיקיית הגיבוי של MDE.

  5. אם אתם משדרגים מגרסה 1.4.x לגרסה 1.5.x או מגרסה 1.5.0 לגרסה 1.5.1, מריצים את סקריפט טרום-השדרוג שכלול בחבילת הגרסה:

    # Execute script from the upgrade/1.5 directory and return to the terraform directory
    cd ../../upgrade/1.5
    export BQ_PROJECT_ID=$(gcloud config get-value project)
    export PUBSUB_PROJECT_ID=$(gcloud config get-value project)
    sh migrate-metadata-instance-bq-table.sh "$BQ_PROJECT_ID" "$PUBSUB_PROJECT_ID"
    cd ../../deployment/terraform
    
  6. אם אתם משדרגים לגרסה 1.5.2, אתם צריכים להחליף את ספקי Kubernetes כדי להשתמש ב-kubeconfig המקומי בקובץ providers.tf באמצעות הפקודה הבאה:

    provider "kubernetes" {
    config_path            = "~/.kube/config"
    # host                   = "https://${local.gke_host}"
    # token                  = data...
    # cluster_ca_certificate = local.gke_ca_cert
    }
    
    provider "helm" {
    kubernetes {
        config_path            = "~/.kube/config"
        # host                   = "https://${local.gke_host}"
        # token                  = data...
        # cluster_ca_certificate = local.gke_ca_cert
    }
    }
    
  7. טוענים מחדש את קובץ המצב של Terraform באמצעות הפקודה הבאה:

    terraform init -backend-config=backend.conf -reconfigure
    
  8. יוצרים תוכנית ב-Terraform.

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

    terraform plan -var-file=./input.tfvars -out=./tfplan
    

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

    terraform show -no-color ./tfplan > tfplan.txt
    more tfplan.txt
    
  9. מחילים את תוכנית Terraform באמצעות הפקודה הבאה:

    terraform apply ./tfplan
    
  10. מוודאים שהפריסה הצליחה.

    אחרי שהפקודה terraform apply מסיימת לפעול, אמורה להופיע הודעת הצלחה שדומה להודעה הבאה (המספר בפועל יהיה תלוי באפשרויות הפריסה ובגרסה הספציפיות):

    Apply complete! Resources: 1 added, 34 changed, 0 destroyed.
    

אחרי השדרוג

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

תצוגות של BigQuery לסוגים קיימים

אם אתם משדרגים מגרסה שקדמה לגרסה 1.4.x, לא תיווצר תצוגת ניתוח לסוגים שנוצרו, כי התכונה הזו הושקה בגרסה 1.4.0. כדי ליצור מחדש את תצוגת הניתוח, צריך להפעיל מחדש את הסוגים הקיימים. אפשר לבדוק את נקודת הקצה /activate בערכת Postman שמצורפת לגרסה.

‫דרייבר Filestore של אשכול GKE

אם נתקלתם בבעיה שבה הפודים של אשכול GKE מתחילים או נתקעים במצב ContainerCreating, יכול להיות שהסיבה לכך היא שהדרייבר של filestore לא הופעל. כדי להפעיל את התכונה, פועלים לפי השלבים במדריך הפריסה.