Résoudre les problèmes de création de clusters

Utiliser l'outil gcpdiag

gcpdiag est un outil Open Source. Il ne s'agit pas d'un produit Google Cloud faisant l'objet d'une assistance officielle. Vous pouvez utiliser l'outil gcpdiag pour vous aider à identifier et à résoudre les problèmes liés au projet Google Cloud. Pour plus d'informations, consultez le projet gcpdiag sur GitHub.

L'outil gcpdiag vous aide à découvrir les problèmes de création de clusters Dataproc suivants en effectuant les vérifications suivantes:

  • Erreurs de rupture de stock:évalue les journaux de l'explorateur de journaux pour détecter les ruptures de stock dans les régions et les zones.
  • Quota insuffisant:vérifie la disponibilité des quotas dans le projet de cluster Dataproc.
  • Configuration réseau incomplète:effectue des tests de connectivité réseau, y compris des vérifications des règles de pare-feu nécessaires et de la configuration des adresses IP externes et internes. Si le cluster a été supprimé, l'outil gcpdiag ne peut pas effectuer de vérification de la connectivité réseau.
  • Configuration interprojet incorrecte:recherche des comptes de service interprojets et examine l'application des rôles et des règles d'administration supplémentaires.
  • Rôles IAM VPC partagés manquants:si le cluster Dataproc utilise un réseau VPC partagé, vérifiez l'ajout des rôles de compte de service requis.
  • Échecs d'action d'initialisation: évalue les journaux de l'explorateur de journaux pour détecter les échecs et les délais avant expiration des scripts d'action d'initialisation.

Pour obtenir la liste des étapes de création de clusters gcpdiag, consultez la section Étapes potentielles.

Exécuter la commande gcpdiag

Vous pouvez exécuter la commande gcpdiag à partir de Cloud Shell dans la console Google Cloud ou dans un conteneur Docker.

console Google Cloud

  1. Terminez l'exécution, puis copiez la commande suivante.
  2. gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS
  3. Ouvrez la console Google Cloud et activez Cloud Shell.
  4. Ouvrir la console Cloud
  5. Collez la commande copiée.
  6. Exécutez la commande gcpdiag, qui télécharge l'image Docker gcpdiag, puis effectue des vérifications de diagnostic. Le cas échéant, suivez les instructions de sortie pour corriger les échecs de vérification.

Docker

Vous pouvez exécuter gcpdiag à l'aide d'un wrapper qui démarre gcpdiag dans un conteneur Docker. Docker ou Podman doivent être installés.

  1. Copiez et exécutez la commande suivante sur votre station de travail locale :
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. Exécutez la commande gcpdiag.
    ./gcpdiag runbook dataproc/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS

Affichez les paramètres disponibles pour ce runbook.

Remplacez les éléments suivants :

    • PROJECT_ID: ID du projet contenant la ressource
    • CLUSTER_NAME: nom du cluster Dataproc cible de votre projet
    • OPTIONAL_PARAMETERS: ajoutez un ou plusieurs des paramètres facultatifs suivants. Ces paramètres sont obligatoires si le cluster a été supprimé.
      • cluster_uuid: UUID du cluster Dataproc cible de votre projet
      • service_account: compte de service de VM du cluster Dataproc
      • subnetwork: chemin d'accès complet de l'URI du sous-réseau du cluster Dataproc
      • internal_ip_only: vrai ou faux
      • cross_project: ID interprojet si le cluster Dataproc utilise un compte de service de VM dans un autre projet

Options utiles :

Pour obtenir la liste et la description de toutes les options de l'outil gcpdiag, consultez les instructions d'utilisation de gcpdiag.

Comprendre et corriger les erreurs de création de cluster

Cette section répertorie les messages d'erreur Dataproc, ainsi que leurs causes et solutions courantes.

  • L'opération a expiré:seuls 0 des deux gestionnaires de nœuds/nœuds de données minimum requis sont en cours d'exécution.

    Cause: Le nœud maître ne peut pas créer le cluster, car il ne peut pas communiquer avec les nœuds de calcul.

    Solution :

  • Autorisation compute.subnetworks.use requise pour projects/{projectId}/regions/{region}/subnetworks/{subnetwork}

    Cause: cette erreur peut se produire lorsque vous essayez de configurer un cluster Dataproc à l'aide d'un réseau VPC dans un autre projet et que le compte de service de l'agent de service Dataproc ne dispose pas des autorisations nécessaires. sur le projet VPC partagé qui héberge le réseau.

    Solution: suivez la procédure décrite dans la section Créer un cluster utilisant un réseau VPC dans un autre projet.

  • La zone projects/zones/{zone} ne dispose pas de suffisamment de ressources pour répondre à la requête (resource type:compute).

    Cause: La zone utilisée pour créer le cluster ne dispose pas de ressources suffisantes.

    Solution :

  • Erreurs de dépassement de quota

    Quota de CPUS/CPUS_ALL_REGIONS insuffisant
    Quota insuffisant pour "DISKS_TOTAL_GB"
    Quota insuffisant pour "IN_USE_ADDRESSES"

    Cause: votre requête de processeur, de disque ou d'adresse IP dépasse votre quota disponible.

    Solution: demandez des quotas supplémentaires à partir de la console Google Cloud.

  • Échec de l'action d'initialisation

    Cause: l'installation de l'action d'initialisation fournie lors de la création du cluster a échoué.

    Solution :

  • Échec de l'initialisation du nœud {cluster-name}: {component}

    Cause: L'initialisation d'un composant Dataproc a échoué.

    Solution: voir:

  • Échec de la création du cluster: espace d'adresses IP épuisé

    Cause: L'espace d'adresses IP nécessaire pour provisionner les nœuds de cluster demandés n'est pas disponible.

    Solution :

    • Créez un cluster sur un sous-réseau ou un réseau différent.
    • Réduire l'utilisation du réseau pour libérer de l'espace d'adresses IP
    • Attendez qu'un espace IP suffisant soit disponible sur le réseau.
  • Message d'erreur du script d'initialisation: le dépôt REPO_NAME ne contient plus de fichier de version

    Cause: Le dépôt de rétroportages Debian oldstable a été purgé.

    Solution :

    Ajoutez le code suivant avant le code qui exécute apt-get dans votre script d'initialisation.

    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
    
  • Le réseau est inaccessible: dataproccontrol-REGION.googleapis.com/...*

    Cause: Le réseau VPC du cluster Dataproc ne dispose peut-être pas de la route Internet requise. L'agent Dataproc exécuté sur les VM du cluster a besoin d'un chemin d'accès à Internet pour accéder à l'API de contrôle Dataproc afin d'obtenir des tâches et de signaler l'état. La route par défaut générée par le système vers Internet a peut-être été supprimée.

    Solution :

    Ajoutez une route vers Internet à votre réseau VPC de cluster : 0.0.0.0/0 pour IPv4 et ::/0 pour IPv6 avec --next-hop-gateway=default-internet-gateway. Ajoutez des règles de pare-feu pour le contrôle des accès.