Recriar e atualizar um Dataproc no cluster virtual do GKE

É possível copiar um Dataproc existente na configuração do cluster virtual do GKE, atualizar a configuração copiada e criar um novo Dataproc no cluster do GKE usando a configuração atualizada.

Etapas para recriar e atualizar um Dataproc no cluster do GKE

gcloud

1. Defina as variáveis de ambiente:

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

  1. Exporte a configuração atual do cluster do Dataproc no GKE para um arquivo YAML.

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

  2. Atualizar a configuração.

    1. Remova o campo kubernetesNamespace. A remoção desse campo é necessária para evitar um conflito de namespace ao criar o cluster atualizado.

      Exemplo de comando sed para remover o campo kubernetesNamespace:

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

    2. Faça outras alterações para atualizar o Dataproc nas definições de configuração do cluster virtual do GKE, como a alteração do componentVersion do Spark.

  3. Exclua o cluster atual do Dataproc no GKE se criar um cluster com o mesmo nome do que está sendo atualizado (se você estiver substituindo o cluster original).

  4. Aguarde a conclusão da operação de exclusão anterior e importe a configuração do cluster atualizada para criar um novo cluster virtual do Dataproc no GKE com as definições de configuração atualizadas.

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

API

1. Defina as variáveis de ambiente:

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

  1. Exporte a configuração atual do cluster do Dataproc no GKE para um arquivo 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. Remova o campo kubernetesNamespace. A remoção desse campo é necessária para evitar um conflito de namespace ao criar o cluster atualizado.

    Exemplo de comando jq para remover o campo kubernetesNamespace:

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

    1. Faça outras alterações para atualizar o Dataproc nas definições de configuração do cluster virtual do GKE, como a alteração do componentVersion do Spark.
  3. Exclua o cluster virtual do Dataproc no GKE se você criar um cluster com o mesmo nome do cluster que está atualizando (se você estiver substituindo o cluster original).

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

  4. Aguarde a conclusão da operação de exclusão anterior e, em seguida, importe a configuração do cluster atualizado para criar um novo cluster virtual do Dataproc no GKE com as configurações atualizadas.

    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"
    

Console

O Console do Cloud não oferece suporte para a recriação de um Dataproc no cluster virtual do GKE ao importar uma configuração de cluster atual.