מדריך לביצוע שדרוג
במדריך הזה מוסבר באופן כללי איך לשדרג התקנה קיימת של Manufacturing Data Engine (MDE) באמצעות Terraform.
אם שיניתם סקריפטים של Terraform, יכול להיות שתצטרכו לבצע שלבים נוספים. זהו מדריך כללי לשדרוג, לכן חשוב תמיד לקרוא גם את הערות הגרסה המלאות של הגרסה הספציפית שאתם פורסים, כי יכול להיות שהן יכללו מידע שחשוב לקחת בחשבון.
לפני שמתחילים
לפני השדרוג, צריך לעצור ידנית חלק מעבודות Dataflow. בהערות לגבי הגרסה מפורטות המשימות שצריך להפסיק באופן ידני עבור הגרסה הספציפית שמשדרגים אליה.
כדי להשתמש במדריך הזה, אתם צריכים:
- אתם משתמשים בחבילת הפריסה שמוגדרת כברירת מחדל.
בסביבת הלקוח מותקנים כלי ה-CLI הנדרשים בגרסה העדכנית ביותר:
Google Cloud CLI עם הרכיבים הנוספים הבאים:
- kubectl
- cbt
- Terraform CLI (גרסה 1.9.x ואילך)
- Helm CLI (גרסה 3.9.x ואילך)
אפשר להשתמש בכל סביבת לקוח כדי לפרוס את MDE, אבל אפשר לחסוך זמן אם פורסים מ-Cloud Shell, כי רוב הכלים הנדרשים כבר מותקנים בו.
יש לכם גישה מלאה לפרויקט 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.
- קובץ מפתח JSON של חשבון שירות:
קיבלת את פרטי הכניסה לאשכול 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.
מעדכנים את ההרשאות של חשבון השירות של 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'מגבים את תיקיית הפריסה הישנה באמצעות הפקודה הבאה:
cp -r MDE_FOLDER MDE_FOLDER_BACKUPמחליפים את MDE_FOLDER ואת MDE_FOLDER_BACKUP בשם של תיקיית MDE ותיקיית הגיבוי.
מורידים את חבילת הפתרון העדכנית ביותר של MDE ומחלצים אותה:
- מורידים את חבילת הפתרון.
- מחלקים את החבילה לסביבת הלקוח.
- עוברים לתיקיית הגרסה החדשה באמצעות הפקודה
cd.
אם אתם משדרגים לגרסה 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.
אם אתם משדרגים מגרסה 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אם אתם משדרגים לגרסה 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 } }טוענים מחדש את קובץ המצב של Terraform באמצעות הפקודה הבאה:
terraform init -backend-config=backend.conf -reconfigureיוצרים תוכנית ב-Terraform.
אחרי שהפרמטרים של הקלט מוכנים, צריך ליצור תוכנית Terraform באמצעות הפקודה הבאה. אפשר להשתמש בתוכנית כדי לוודא אילו ארטיפקטים והגדרות ייצרו בפרויקט.
terraform plan -var-file=./input.tfvars -out=./tfplanאפשר לעיין בשינויים המתוכננים באמצעות הפקודה הבאה:
terraform show -no-color ./tfplan > tfplan.txt more tfplan.txtמחילים את תוכנית Terraform באמצעות הפקודה הבאה:
terraform apply ./tfplanמוודאים שהפריסה הצליחה.
אחרי שהפקודה
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 לא הופעל. כדי להפעיל את התכונה, פועלים לפי השלבים במדריך הפריסה.