重新创建和更新 Dataproc on GKE 虚拟集群

您可以复制现有 Dataproc on GKE 虚拟集群的配置,更新复制的配置,然后使用更新后的配置创建新的 Dataproc on GKE 集群。

重新创建和更新 Dataproc on GKE 集群的步骤

gcloud

1. 设置环境变量:

CLUSTER=existing Dataproc on GKE  cluster name \
  REGION=region
  

  1. 将现有的 Dataproc on GKE 集群配置导出到 YAML 文件。

    gcloud dataproc clusters export $CLUSTER \
        --region=$REGION > "${CLUSTER}-config.yaml"
    

  2. 更新配置。

    1. 移除 kubernetesNamespace 字段。必须移除此字段,以免在创建更新后的集群时发生命名空间冲突。

      移除 kubernetesNamespace 字段的示例 sed 命令:

      sed -E "s/kubernetesNamespace: .+$//g" ${CLUSTER}-config.yaml
      

    2. 进行其他更改以更新 Dataproc on GKE 虚拟集群配置设置,例如更改 Spark componentVersion

  3. 如果您要创建的集群与其更新的集群具有相同的名称(如果您要替换原始集群),请删除现有的 Dataproc on GKE 虚拟集群

  4. 等待之前的删除操作完成,然后导入更新后的集群配置,以使用更新后的配置设置创建新的 Dataproc on GKE 虚拟集群。

    gcloud dataproc clusters import $CLUSTER \
        --region=$REGION \
        --source="${CLUSTER}-config.yaml"

API

1. 设置环境变量:

CLUSTER=existing Dataproc on GKE  cluster name \
  REGION=region
  

  1. 将现有的 Dataproc on GKE 集群配置导出到 YAML 文件。

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)"  "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${CLUSTER}?alt=json" > "${CLUSTER}-config.json"

  2. 移除 kubernetesNamespace 字段。创建更新后的集群时,必须移除此字段以避免命名空间冲突。

    移除 kubernetesNamespace 字段的示例 jq 命令:

    jq 'del(.virtualClusterConfig.kubernetesClusterConfig.kubernetesNamespace)'
      

    1. 进行其他更改以更新 Dataproc on GKE 虚拟集群配置设置,例如更改 Spark componentVersion
  3. 如果您要创建的集群与所更新的集群同名(如果您要替换原始集群),请删除现有的 Dataproc on GKE 虚拟集群。

    curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${CLUSTER}"
    

  4. 等待之前的删除操作完成,然后导入更新后的集群配置,以使用更新后的设置创建新的 Dataproc on GKE 虚拟集群。

    curl -i -X POST  -H "Authorization: Bearer $(gcloud auth print-access-token)"  -H "Content-Type: application/json; charset=utf-8" -d "@${CLUSTER}-config.json" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters?alt=json"
    

控制台

Google Cloud 控制台不支持通过导入现有集群的配置来重新创建 Dataproc on GKE 虚拟集群。