Résoudre les erreurs liées aux clusters Kafka

Cette page vous explique comment résoudre les problèmes liés à la création ou à la configuration d'un cluster Managed Service pour Apache Kafka.

Erreurs de création de cluster Kafka

Cette section liste les erreurs que vous pouvez rencontrer lors de la création d'un cluster Kafka.

Le service n'est pas autorisé à accéder à la clé Cloud KMS

Le problème suivant se produit lorsque l'agent de service Managed Service pour Apache Kafka ne dispose pas de l'autorisation requise pour accéder à la clé Cloud KMS.

Service agent service-${PROJECT_NUMBER}@gcp-sa-managedkafka.iam.gserviceaccount.com
has not been granted the required role cloudkms.cryptoKeyEncrypterDecrypter to
encrypt data using the KMS key.`

Pour résoudre ce problème, attribuez au compte de service le rôle Chiffreur/Déchiffreur de CryptoKeys Cloud KMS sur la clé Cloud KMS. Pour en savoir plus, consultez Rôles requis pour configurer les CMEK.

Le service n'est pas autorisé à récupérer le sous-réseau

Le problème suivant se produit lorsque l'agent de service Managed Service pour Apache Kafka ne dispose pas du rôle requis pour configurer la mise en réseau dans le réseau VPC dans lequel les clients Kafka s'exécutent.

Service does not have permission to retrieve subnet. Please grant
service-${PROJECT_NUMBER}@gcp-sa-managedkafka.iam.gserviceaccount.com the
managedkafka.serviceAgent role in the IAM policy of the project
${SUBNET_PROJECT} and ensure the Compute Engine API is enabled in project
${SUBNET_PROJECT}`

Pour résoudre ce problème, attribuez au compte de service le rôle Agent de service Kafka géré. Pour en savoir plus, consultez Connecter un cluster entre plusieurs projets.

Erreurs Mise en réseau

Cette section liste les erreurs que vous pouvez rencontrer lors de la configuration de la mise en réseau d'un cluster Kafka.

Échec de la configuration du réseau par le service

Le problème suivant se produit lorsque Managed Service pour Apache Kafka ne parvient pas à connecter le cluster Kafka à votre sous-réseau de cloud privé virtuel.

Managed Service for Apache Kafka failed to set up networking in VPC subnet.

Pour résoudre ce problème, procédez comme suit :

  • Activez les API Compute Engine et Cloud DNS dans le projet parent du réseau VPC client.

  • Si le cluster Managed Service pour Apache Kafka et le réseau VPC client se trouvent dans des projets différents, configurez les autorisations requises. Consultez Connecter un cluster entre plusieurs projets.

  • Assurez-vous qu'aucune contrainte de règle d'administration n'empêche le service de créer les ressources nécessaires dans le projet du réseau VPC client.

Pour en savoir plus, consultez Configurer la mise en réseau pour Managed Service pour Apache Kafka.

Les applications clientes ne peuvent pas se connecter

Si vos applications clientes ne parviennent pas à se connecter à votre cluster, vérifiez les problèmes suivants :

  • Assurez-vous que les clients utilisent la bonne adresse d'amorçage.

  • Assurez-vous que les clients Kafka s'exécutent dans un réseau VPC configuré pour accéder au cluster Managed Service pour Apache Kafka.

  • Si vous exécutez le client Kafka sur un ordinateur ou un ordinateur portable, vous pouvez configurer une instance Compute Engine à utiliser comme proxy pour accéder au cluster Managed Service pour Apache Kafka. Pour en savoir plus, consultez Configurer une machine cliente.

Erreurs d'authentification

Cette section liste les erreurs que vous pouvez rencontrer lorsque des applications clientes s'authentifient auprès de votre cluster Kafka.

Échec de l'authentification SASL

Le problème suivant se produit lorsqu'un client ne peut pas se connecter au cluster à l'aide de l'authentification SASL.

Exception in thread "main" java.util.concurrent.ExecutionException:
org.apache.kafka.common.errors.SaslAuthenticationException:
Authentication failed: Invalid username or password

Pour résoudre le problème, vérifiez les causes suivantes :

  • Le mot de passe est incorrect et ne représente pas un blob JSON de clé de compte de service valide lorsqu'il est décodé en base64, ni un jeton d'accès valide.

  • Le compte principal d'authentification ne dispose pas de l'autorisation managedkafka.clusters.connect sur le cluster.

  • Le nom d'utilisateur fourni ne correspond pas au compte principal de l'identifiant.

Si un client subit des déconnexions fréquentes toutes les 30 minutes, cela peut être dû au fait qu'il n'est pas compatible avec la réauthentification périodique. Les agents Managed Service pour Apache Kafka exigent que les clients se réauthentifient toutes les 30 minutes, ce qui est appliqué par la propriété d'agent connections.max.reauth.ms. Vérifiez que la version de votre bibliothèque cliente Kafka est la version 2.2.0 ou une version ultérieure, et qu'elle est compatible avec la réauthentification.

Pour en savoir plus, consultez Configurer l'authentification SASL.

Erreurs opérationnelles

Cette section liste les erreurs qui peuvent se produire pendant l'exécution de vos charges de travail Kafka.

Erreurs d'espace disque insuffisant

Si un agent manque d'espace disque, il ne peut pas effectuer de rotation des segments actifs ni écrire de nouveaux segments, ce qui empêche les clients de produire ou de consommer des messages. Les symptômes sont les suivants :

  • Les performances du client se dégradent de manière inattendue. Par exemple, les producteurs rencontrent des erreurs de délai avant expiration et le décalage augmente régulièrement chez les consommateurs.

  • L'utilisation du disque du courtier est très élevée (> 85 %).

  • Le nombre d'instances répliquées synchronisées (ISR) est inférieur au facteur de réplication.

  • Les journaux du cluster affichent des erreurs semblables à celles-ci :

    Error processing append operation on partition PARTITION_ID.
    org.apache.kafka.common.errors.NotEnoughReplicasException: The size of the current ISR Set(10)
    is insufficient to satisfy the min.isr requirement of 2 for partition PARTITION_ID
    

Pour éviter les erreurs de disque plein, surveillez la capacité du cluster et la réplication des partitions. Pour en savoir plus, consultez Surveiller la fiabilité des clusters Kafka.

Si un agent manque d'espace disque, augmentez la taille du disque de l'agent. Envisagez également d'effectuer un scaling à la hausse du cluster pour ajouter des agents.

La compaction des journaux combinée à un espace de clés très volumineux peut entraîner des erreurs de disque saturé. Lorsque la compression des journaux est activée, Kafka stocke le dernier message de chaque clé dans l'espace de stockage local. L'utilisation du disque de l'agent augmente donc avec le nombre de clés uniques.

Les clients subissent des déconnexions temporaires

Managed Service pour Apache Kafka peut effectuer des mises à jour qui nécessitent des redémarrages progressifs sur les agents. Pendant ce processus, les requêtes adressées à des agents individuels peuvent échouer, mais ces échecs sont temporaires. Pour en savoir plus, consultez Mises à niveau et correctifs.

Vous n'avez rien à faire lors des redémarrages de l'agent. Toutefois, vous pouvez observer les points suivants :

  • Pauses dans le traitement pendant que les leaders de partition et les coordinateurs de groupe de consommateurs basculent vers d'autres agents.

  • Rééquilibrage des groupes de consommateurs, en interrompant temporairement la consommation.

  • Erreurs de connexion temporaires ou délais d'attente lors de la validation des décalages. Les bibliothèques clientes couramment utilisées gèrent automatiquement ces erreurs.

  • Un pic temporaire du nombre de partitions sous-répliquées (broker/under_replicated_partitions) sur les agents restants lorsqu'un agent redémarre.

  • Une valeur temporaire de 1 dans la métrique Partitions hors connexion (offline_partitions) lorsqu'un agent est indisponible. Cette valeur correspond à un sujet de surveillance interne qui possède une seule instance répliquée sur l'agent en cours de redémarrage. Il s'agit du comportement attendu. Une valeur supérieure à 1 peut indiquer un problème au niveau des thèmes de données ou de métadonnées.

    La métrique Partitions Under-MinISR (broker/under_min_isr_partitions) n'est pas affectée par le sujet de surveillance interne et reste à 0 lors d'un redémarrage progressif si vos sujets utilisent le facteur de réplication par défaut de 3 et min.insync.replicas de 2. Une valeur supérieure à 0 signifie que plusieurs instances répliquées d'une partition ne sont pas disponibles, ce qui peut indiquer un problème.

La mise à jour manuelle de certaines propriétés du cluster, telles que le nombre de vCPU et la mémoire, peut également entraîner un redémarrage progressif du service. Consultez Mettre à jour un cluster Managed Service pour Apache Kafka.

Étapes suivantes

Apache Kafka® est une marque déposée d'Apache Software Foundation ou de ses filiales aux États-Unis et/ou dans d'autres pays.