升级指南

本指南提供有关如何使用 Terraform 升级现有制造数据引擎 (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. 如果您要升级到 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 .
    

    如果您要升级到 v1.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 之前的版本升级,那么所创建的类型不会有为其创建的分析视图,因为此功能是在 1.4.0 中引入的。您需要再次激活现有类型,以触发分析视图重新创建。您可以在随版本一起提供的 Postman 工具包中查看 /activate 端点。

GKE 集群 Filestore 驱动程序

如果您遇到 GKE 集群 pod 启动或卡在 ContainerCreating 状态的问题,则可能是由于未启用 Filestore 驱动程序。您可以按照部署指南中的步骤启用该功能