Resolver problemas na criação de clusters

Usar a ferramenta gcpdiag

gcpdiag é uma ferramenta de código aberto. Não é um produto do Google Cloud oficialmente compatível. Use a ferramenta gcpdiag para identificar e corrigir problemas no projeto do Google Cloud. Para mais informações, consulte o projeto gcpdiag no GitHub.

A ferramenta gcpdiag ajuda a descobrir os seguintes dados do Dataproc problemas de criação de cluster realizando as seguintes verificações:

  • Erros de estoque esgotado:avalia os registros da Análise de registros para descobrir estoques em regiões e zonas.
  • Cota insuficiente: verifica a disponibilidade de cota no projeto do cluster do Dataproc.
  • Configuração de rede incompleta:realiza testes de conectividade de rede. incluindo verificações de regras de firewall e de IPs externos e internos configuração do Terraform. Se o cluster tiver sido excluído, a ferramenta gcpdiag não poderá realizar uma verificação de conectividade de rede.
  • Configuração incorreta entre projetos:verifica se há serviços entre projetos. e analisa a aplicação de políticas da organização e outros papéis.
  • Papéis do IAM da VPC compartilhada ausentes: se o cluster do Dataproc usar uma rede VPC compartilhada, verifique a adição de papéis de conta de serviço necessários.
  • Falhas na ação de inicialização: avalia a Análise de registros para descobrir falhas e tempos limite do script de ação de inicialização.

Para conferir uma lista de etapas de criação de cluster do gcpdiag, consulte Etapas potenciais.

Execute o comando gcpdiag.

É possível executar o comando gcpdiag no Cloud Shell no console do Google Cloud ou em um contêiner do Docker.

Console do Google Cloud

  1. Preencha e copie o comando a seguir.
  2. GOOGLE_AUTH_TOKEN=GOOGLE_AUTH_TOKEN \
      gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS \
        --auto --reason=REASON
  3. Abra o console do Google Cloud e ative o Cloud Shell.
  4. Abrir Console do Cloud
  5. Cole o comando copiado.
  6. Execute o comando gcpdiag, que faz o download da imagem Docker gcpdiag. e realiza verificações de diagnóstico. Se aplicável, siga as instruções de saída para corrigir verificações com falha.

Docker

Você pode executar gcpdiag usando um wrapper que inicia gcpdiag em um contêiner do Docker. Docker ou Podman precisa ser instalado.

  1. Copie e execute o seguinte comando na estação de trabalho local.
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. Execute o comando gcpdiag.
    ./gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS

Veja os parâmetros disponíveis para este runbook.

Substitua:

    • PROJECT_ID: o ID do projeto que contém o recurso
    • CLUSTER_NAME: o nome do destino Cluster do Dataproc no seu projeto
    • OPTIONAL_PARAMETERS: adicione um ou mais dos parâmetros opcionais a seguir. Esses parâmetros são obrigatórios se o cluster tiver sido excluído.
      • cluster_uuid: o UUID do Dataproc de destino no seu projeto
      • service_account: o cluster do Dataproc Conta de serviço de VM
      • subnetwork: a sub-rede do cluster do Dataproc caminho de URI completo
      • internal_ip_only: verdadeiro ou falso
      • cross_project: o ID entre projetos se o O cluster do Dataproc usa uma conta de serviço de VM em outro projeto

Flags úteis

Para conferir uma lista e descrição de todas as flags da ferramenta gcpdiag, consulte Instruções de uso do gcpdiag.

Entender e corrigir erros de criação de cluster

Esta seção lista as mensagens de erro do Dataproc e as causas e soluções comuns.

  • Tempo limite da operação atingido:apenas 0 de 2 gerenciadores de nós/nós de dados mínimos necessários em execução.

    Causa: o nó mestre não consegue criar o cluster porque não pode se comunicar com os nós de trabalho.

    Solução:

  • Permissão compute.subnetworks.use necessária para projects/{projectId}/regions/{region}/subnetworks/{subnetwork}

    Causa: esse erro pode ocorrer quando você tenta configurar um cluster do Dataproc usando uma rede VPC em outro projeto e a conta de serviço do agente de serviços do Dataproc não tem as permissões necessárias no projeto de VPC compartilhada que hospeda a rede.

    Solução: siga as etapas listadas em Criar um cluster que usa uma rede VPC em outro projeto.

  • A zona projects/zones/{zone} não tem recursos suficientes disponíveis para atender à solicitação (resource type:compute)

    Causa: a zona usada para criar o cluster não tem recursos suficientes.

    Solução:

  • Erros de cota excedida

    Cota insuficiente de CPUs/CPUS_ALL_REGIONS
    Cota insuficiente de "DISKS_TOTAL_GB"
    Cota insuficiente "IN_USE_ADDRESSES"

    Causa: sua solicitação de CPU, disco ou endereço IP excede a cota disponível.

    Solução: solicite mais cota no console do Google Cloud.

  • Falha na ação de inicialização

    Causa: a ação de inicialização fornecida durante a criação do cluster não foi instalada.

    Solução:

  • Falha ao inicializar o nó {cluster-name}: {component}

    Causa: um componente do Dataproc não foi inicializado.

    Solução: consulte:

  • Falha na criação do cluster: espaço de endereço IP esgotado

    Causa: o espaço de endereços IP necessário para provisionar os nós de cluster solicitados está indisponível.

    Solução:

    • Crie um cluster em uma sub-rede ou rede diferente.
    • Reduza o uso na rede para liberar espaço de endereço IP.
    • Aguarde até que haja espaço IP suficiente disponível na rede.
  • Mensagem de erro do script de inicialização: o repositório REPO_NAME não tem mais um arquivo de lançamento

    Causa: o repositório de backports antigos estáveis do Debian foi limpo.

    Solução:

    Adicione o código abaixo antes do código que executa apt-get no script de inicialização.

    oldstable=$(curl -s https://deb.debian.org/debian/dists/oldstable/Release | awk '/^Codename/ {print $2}');
    stable=$(curl -s https://deb.debian.org/debian/dists/stable/Release | awk '/^Codename/ {print $2}');
    
    matched_files="$(grep -rsil '\-backports' /etc/apt/sources.list*)"
    if [[ -n "$matched_files" ]]; then
      for filename in "$matched_files"; do
        grep -e "$oldstable-backports" -e "$stable-backports" "$filename" || \
          sed -i -e 's/^.*-backports.*$//' "$filename"
      done
    fi
    
  • A rede está inacessível: dataproccontrol-REGION.googleapis.com/...*

    Causa: a rede VPC do cluster do Dataproc pode não ter uma conexão rotear para a Internet. O agente do Dataproc em execução em VMs de cluster precisa de uma rota para a Internet para acessar a API de controle do Dataproc e receber jobs e status de relatório. A rota padrão gerada pelo sistema à Internet podem ter sido excluídas.

    Solução:

    Adicione uma rota para a Internet à rede VPC do cluster: 0.0.0.0/0 para IPv4 e ::/0 para IPv6 com --next-hop-gateway=default-internet-gateway. Adicione regras de firewall para o controle de acesso.