升级指南
本指南提供有关如何使用 Terraform 升级现有制造数据引擎 (MDE) 安装的一般指导。
如果您修改了 Terraform 脚本,可能需要执行其他步骤。这是一份通用升级指南,因此请务必同时阅读您要部署的特定版本的完整版本说明,因为其中可能包含您需要考虑的信息。
准备工作
某些 Dataflow 作业需要在升级之前手动停止。版本说明中列出了您必须手动停止的作业,具体取决于您要升级到的版本。
本指南需要满足以下前提条件:
- 您使用的是默认部署软件包。
您的客户端环境已安装所需的 CLI 工具,且为最新版本:
Google Cloud CLI,并安装了以下附加组件:
- kubectl
- cbt
- Terraform CLI(1.9.x 或更高版本)
- Helm CLI(3.9.x 或更高版本)
您可以使用任何客户端环境来部署 MDE,但从 Cloud Shell 部署可以节省时间,因为 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 部署项目 ID。
- 服务账号 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如果您更改了默认名称 (
mde-gke),请将 CLUSTER_NAME 替换为集群的名称。如果您的 kubeconfig 不在默认路径中,请更改KUBE_CONFIG_PATH。
升级
本部分提供了有关如何使用 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 .如果您要升级到 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 备份文件夹名称。
如果您要从 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如果您要升级到 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 } }使用以下命令重新加载 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 中引入的。您需要再次激活现有类型,以触发分析视图重新创建。您可以在随版本一起提供的 Postman 工具包中查看 /activate 端点。
GKE 集群 Filestore 驱动程序
如果您遇到 GKE 集群 pod 启动或卡在 ContainerCreating 状态的问题,则可能是由于未启用 Filestore 驱动程序。您可以按照部署指南中的步骤启用该功能