Resolver problemas na criação de clusters

Usar a ferramenta gcpdiag

gcpdiag é uma ferramenta de código aberto. Ele não é um produto do Google Cloud com suporte oficial. Use a ferramenta gcpdiag para identificar e corrigir o Google Cloud problemas do projeto. Para mais informações, consulte a 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 da cota no Dataproc. em um projeto de cluster.
  • 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 de VPC compartilhada ausentes: se o cluster do Dataproc usa em uma rede VPC compartilhada, verifica se os serviços necessários funções de conta de serviço.
  • 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 Possíveis etapas:

Execute o comando gcpdiag.

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

Console do Google Cloud

  1. Preencha e copie o comando a seguir.
  2. gcpdiag runbook dataproc/cluster-creation \
      --project=PROJECT_ID \
      --parameter cluster_name=CLUSTER_NAME \
      --parameter OPTIONAL_FLAGS
  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 execute gcpdiag usando um wrapper (em inglês) que inicia gcpdiag em um contêiner do Docker. Docker ou O Podman precisa ser instalado.

  1. Copie e execute o comando a seguir 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 \
      --project=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 o cluster foi 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 o Instruções de uso do gcpdiag.

Entender e corrigir erros de criação de clusters

Nesta seção, listamos as mensagens de erro do Dataproc e as causas comuns delas e soluções.

  • 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: este erro pode ocorrer ao tentar configurar uma instância do Dataproc cluster usando uma rede VPC em outro projeto e o Dataproc Agente de serviço a conta de serviço não tem as permissões necessárias na VPC compartilhada o projeto 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: solicitar cota adicional do 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ço IP necessário para provisionar os nós do cluster solicitados é 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 oldstable 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 encaminhar para a Internet. O agente do Dataproc em execução nas VMs do cluster precisa de uma rota para a Internet para acessar a API Dataproc Control. para receber jobs e informar o status. 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 controle de acesso.