Soluciona problemas de creación de clústeres

Usa la herramienta gcpdiag

gcpdiag es una herramienta de código abierto. No es un producto de Google Cloud compatible oficialmente. Puedes usar la herramienta gcpdiag para identificar y corregir problemas del proyecto de Google Cloud. Para obtener más información, consulta el proyecto en GitHub.

La herramienta gcpdiag te ayuda a descubrir los siguientes problemas de creación de clústeres de Dataproc realizando las siguientes verificaciones:

  • Errores de falta de existencias: Evalúa los registros del Explorador de registros para descubrir faltantes en las regiones y zonas.
  • Cuota insuficiente: Verifica la disponibilidad de la cuota en el proyecto del clúster de Dataproc.
  • Configuración de red incompleta: Realiza pruebas de conectividad de red, incluidas verificaciones de las reglas de firewall necesarias y la configuración de IP interna y externa. Si se borró el clúster, la herramienta gcpdiag no puede realizar una verificación de conectividad de red.
  • Configuración incorrecta entre proyectos: Busca cuentas de servicio entre proyectos y revisa los roles adicionales y la aplicación forzosa de las políticas de la organización.
  • Faltan roles de IAM de VPC compartida: Si el clúster de Dataproc usa una red de VPC compartida, verifica si se agregaron los roles de cuenta de servicio necesarios.
  • Fallas de la acción de inicialización: Evalúa los registros del Explorador de registros para descubrir fallas y tiempos de espera de la secuencia de comandos de la acción de inicialización.

Para obtener una lista de los pasos de creación de clústeres de gcpdiag, consulta Pasos potenciales.

Ejecuta el comando gcpdiag

Puedes ejecutar el comando gcpdiag desde Cloud Shell en la consola de Google Cloud o dentro de un contenedor de Docker.

Consola de Google Cloud

  1. Completa y, luego, copia el siguiente comando.
  2. gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS
  3. Abre la consola de Google Cloud y activa Cloud Shell.
  4. Abre la consola de Cloud
  5. Pega el comando copiado.
  6. Ejecuta el comando gcpdiag, que descarga la imagen de Docker gcpdiag y, luego, realiza verificaciones de diagnóstico. Si corresponde, sigue las instrucciones de salida para corregir las verificaciones que fallaron.

Docker

Puedes ejecutar gcpdiag con un wrapper que inicie gcpdiag en un contenedor de Docker. Se debe instalar Docker o Podman.

  1. Copia y ejecuta el siguiente comando en tu estación de trabajo local.
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. Ejecuta el comando gcpdiag.
    ./gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS

Consulta los parámetros disponibles para este runbook.

Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene el recurso.
    • CLUSTER_NAME: Es el nombre del clúster de Dataproc de destino en tu proyecto.
    • OPTIONAL_PARAMETERS: Agrega uno o más de los siguientes parámetros opcionales. Estos parámetros son obligatorios si se borró el clúster.
      • cluster_uuid: Es el UUID del clúster de Dataproc de destino en tu proyecto.
      • service_account: La cuenta de servicio de VM del clúster de Dataproc
      • subnetwork: Es la ruta de acceso URI completa de la subred del clúster de Dataproc.
      • internal_ip_only: Verdadero o falso
      • cross_project: Es el ID entre proyectos si el clúster de Dataproc usa una cuenta de servicio de VM en otro proyecto.

Marcas útiles:

Para obtener una lista y una descripción de todas las marcas de la herramienta gcpdiag, consulta las instrucciones de uso de gcpdiag.

Comprende y corrige los errores de creación de clústeres

En esta sección, se enumeran los mensajes de error de Dataproc, y sus causas comunes y soluciones.

  • Se agotó el tiempo de espera de la operación: Solo se ejecutan 0 de cada 2 nodos de datos o nodos mínimos necesarios.

    Causa: El nodo principal no puede crear el clúster porque no puede comunicarse con los nodos trabajadores.

    Solución:

  • Permiso compute.subnetworks.use obligatorio para projects/{projectId}/regions/{region}/subnetworks/{subnetwork}

    Causa: Este error puede ocurrir cuando intentas configurar un clúster de Dataproc mediante una red de VPC en otro proyecto y la cuenta de servicio del agente de servicio de Dataproc no tiene los permisos necesarios en el proyecto de VPC compartida que aloja la red.

    Solución: Sigue los pasos que se indican en Crea un clúster que use una red de VPC en otro proyecto.

  • La zona projects/zones/{zone} no tiene suficientes recursos disponibles para completar la solicitud (resource type:compute)

    Causa: La zona que se usa para crear el clúster no tiene suficientes recursos.

    Solución:

  • Errores de cuota excedida

    Cuota insuficiente de CPUS/CPUS_ALL_REGIONS
    Cuota insuficiente “DISKS_TOTAL_GB”
    Cuota insuficiente “IN_USE_ADDRESSES”

    Causa: La solicitud de CPU, disco o dirección IP supera la cuota disponible.

    Solución: Solicita una cuota adicional en la consola de Google Cloud.

  • No se pudo realizar la acción de inicialización

    Causa: No se pudo instalar la acción de inicialización proporcionada durante la creación del clúster.

    Solución:

  • No se pudo inicializar el nodo {cluster-name}: {component}

    Causa: No se pudo inicializar un componente de Dataproc.

    Solución: Consulta los siguientes vínculos:

  • No se pudo crear el clúster: Se agotó el espacio de direcciones IP

    Causa: El espacio de direcciones IP necesario para aprovisionar los nodos del clúster solicitados no está disponible.

    Solución:

    • Crea un clúster en una subred o red diferente.
    • Reduce el uso en la red para liberar espacio de direcciones IP.
    • Espera hasta que haya suficiente espacio de IP disponible en la red.
  • Mensaje de error de la secuencia de comandos de inicialización: El repositorio REPO_NAME ya no tiene un archivo de lanzamiento

    Causa: Se borró el repositorio de portabilidad a versiones anteriores de Debian oldstable.

    Solución:

    Agrega el siguiente código antes del código que ejecuta apt-get en tu secuencia de comandos de inicialización.

    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
    
  • No se puede acceder a la red: dataproccontrol-REGION.googleapis.com/…*

    Causa: Es posible que la red de VPC del clúster de Dataproc no tenga una ruta a Internet requerida. El agente de Dataproc que se ejecuta en las VMs del clúster necesita una ruta a Internet para acceder a la API de control de Dataproc y obtener trabajos y estados de informes. Es posible que se haya borrado la ruta predeterminada generada por el sistema a Internet.

    Solución:

    Agrega una ruta a Internet a la red de VPC del clúster: 0.0.0.0/0 para IPv4 y ::/0 para IPv6 con --next-hop-gateway=default-internet-gateway. Agrega reglas de firewall para el control de acceso.