升級指南

本指南提供一般指引,說明如何使用 Terraform 升級現有的 Manufacturing Data Engine (MDE) 安裝項目。

如果您修改過 Terraform 指令碼,可能需要執行其他步驟。這是通用升級指南,因此請務必詳閱您部署的特定版本版本資訊,因為其中可能包含您需要考量的資訊。

事前準備

升級前,請先手動停止部分 Dataflow 工作。如要瞭解升級至特定版本時必須手動停止的作業,請參閱版本資訊

本指南需要下列必備條件:

  1. 您使用的是預設部署套件。
  2. 您的用戶端環境已安裝必要 CLI 工具的最新版本:

    您可以使用任何用戶端環境部署 MDE,但從 Cloud Shell 部署可節省時間,因為 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 部署專案 ID。

  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
    

    如果變更了預設名稱 (mde-gke),請將 CLUSTER_NAME 替換為叢集名稱。如果 kubeconfig 不在預設路徑上,請變更 KUBE_CONFIG_PATH

升級

本節提供使用 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_FOLDERMDE_FOLDER_BACKUP 替換為 MDE 資料夾和備份資料夾的名稱。

  3. 下載並解壓縮最新版 MDE 解決方案發布套件:

    1. 下載解決方案套件。
    2. 將套件解壓縮到用戶端環境。
    3. 使用 cd 指令移至新發布資料夾。
  4. 如要升級至 1.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. 如要從 v1.4.x 升級至 v1.5.x,或從 v1.5.0 升級至 v1.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 供應商,使用 providers.tf 檔案中的本機 kubeconfig,方法是執行下列指令:

    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 之前的版本升級,系統不會為建立的類型建立 Analytics 檢視畫面,因為這項功能是在 1.4.0 版中推出。您必須再次啟用現有類型,才能重新建立 Analytics 檢視畫面。您可以在隨版本發布的 Postman 套件中查看 /activate 端點。

GKE 叢集 Filestore 驅動程式

如果 GKE 叢集 Pod 啟動或停滯在 ContainerCreating 狀態,可能是因為 Filestore 驅動程式未啟用。如要啟用這項功能,請按照部署指南中的步驟操作。