Passer au contenu

Comment résoudre les problèmes liés à la mise à niveau de mon cluster Amazon MSK ?

Lecture de 5 minute(s)
0

Je dois résoudre les problèmes liés à la mise à niveau de mon cluster Amazon Managed Streaming for Apache Kafka (Amazon MSK).

Résolution

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.

Considérations et bonnes pratiques

Avant de mettre à niveau votre cluster Amazon MSK, consultez les bonnes pratiques suivantes :

  • Définissez le facteur de réplication du cluster sur 3 ou plus. La définition d'un facteur de réplication de 1 peut entraîner la création de partitions hors ligne lors d'une mise à jour continue. La définition d'un facteur de réplication de 2 peut entraîner une perte de données.
  • Définissez le nombre minimum de réplicas synchronisés (minISR) sur une valeur inférieure ou égale à (facteur de réplication - 1). Si la valeur de MinISR est égale au facteur de réplication, la production de clusters peut être bloquée lors d'une mise à jour continue. Une valeur de minISR de 2 permet de mettre à disposition des rubriques répliquées en trois directions lorsqu'un réplica est hors ligne.
  • Avant de mettre à jour la configuration d'un cluster, assurez-vous que celui-ci est à l'état ACTIF.
  • Utilisez la version recommandée d'Apache Kafka lorsque vous créez de nouveaux clusters Amazon MSK.
  • Incluez au moins un agent de chaque zone de disponibilité dans les chaînes de client. La présence de plusieurs agents dans la chaîne de connexion d'un client permet les basculements lorsqu'un agent spécifique est hors ligne pour une mise à jour.
  • Utilisez Apache Kafka AdminClient version 2.8.0 ou supérieure pour la gestion des rubriques.
  • Mettez à niveau les clients connectés vers la version recommandée ou supérieure. Les mises à niveau des clients ne sont pas soumises à la date de fin de vie (EOL) de la version Kafka de votre cluster Amazon MSK.
    Remarque : Apache Kafka fournit une politique de compatibilité client bidirectionnelle qui permet aux anciens clients d’utiliser des clusters plus récents et aux nouveaux clients d’utiliser des clusters plus anciens. Pour plus d'informations, consultez la page Compatibilité sur le site Web d'Apache Kafka.
  • Mettez à niveau votre cluster pendant les périodes de faible trafic. Le temps nécessaire à la mise à niveau de la version Apache Kafka dépend du nombre d’agents de votre cluster.
    Remarque : Lorsque vous mettez à niveau la version du cluster, vous ne pouvez pas effectuer d'autres mises à jour tant que la mise à niveau de la version n'est pas terminée. Cependant, vous pouvez toujours produire et utiliser des ressources à partir du cluster pendant la mise à niveau.

Remarque : Lorsque vous mettez à jour le type d'instance, vous ne mettez pas automatiquement à niveau la version du cluster.

Pour plus d'informations, consultez la section Bonnes pratiques relatives aux mises à niveau de version.

Surveiller la mise à niveau

Lorsque vous créez un cluster Amazon MSK, vous spécifiez la version d'Apache Kafka dont vous avez besoin sur le cluster. Vous pouvez également mettre à jour le cluster vers une version plus récente d'Apache Kafka après l'avoir créé.

Vous pouvez suivre la progression de la mise à jour dans l'onglet Opérations du cluster de la console Amazon MSK Une fois que la mise à niveau atteint 17 %, plusieurs heures peuvent être nécessaires pour qu'elle se termine.

Remarque : Amazon MSK effectue la mise à niveau selon un processus de redémarrage continu. Amazon MSK retire un agent du cluster à la fois et met à niveau sa version Kafka. L’agent mis à niveau rejoint le cluster et Amazon MSK retire l’agent suivant. Ce processus se poursuit jusqu'à ce qu'Amazon MSK mette à niveau le dernier agent avec la nouvelle version de Kafka.

Pour suivre la progression de la mise à niveau sur votre cluster, via l'AWS CLI, exécutez la commande describe-cluster-operations :

aws kafka describe-cluster-operation —cluster-operation-arn ClusterOperationArn

Si l'opération est à l’état incomplet ou Échec, contactez AWS Support.

Résoudre les erreurs

Les opérations de partitionnement sur un agent consomment de grandes quantités de ressources système. Si vous disposez d'un nombre de partitions supérieur à la limite recommandée, vous pourriez mettre à rude épreuve les ressources disponibles dans le cluster. Lorsque les ressources du cluster sont sollicitées, vous ne pouvez pas mettre à jour la configuration du cluster, la version d'Apache Kafka pour le cluster, ou le mettre à jour vers un type d’agent de plus petite taille. Lorsque le nombre de partitions par agent dépasse la valeur recommandée, l'une des erreurs suivantes s'affiche :

« Error updating cluster configuration There was a problem updating cluster configuration. If the problem persists, contact AWS Support. The number of partitions per broker is above the recommended limit. Add more brokers and rearrange the partitions per broker to be below the recommended limit, then retry the request. »

-ou-

« Upgrade is stuck in the stage 'Initializing upgrade »

Pour résoudre les erreurs précédentes, procédez comme suit :

  • Augmentez le nombre d’agents au sein du cluster. Puis, réattribuez des partitions pour réduire le nombre de partitions par agent. Utilisez les métriques Amazon CloudWatch pour connaître le nombre de partitions par agent. Pour plus d'informations, consultez la section Configuration par défaut d'Amazon MSK.
  • Supprimez les rubriques non utilisées. Pour voir toutes les rubriques sur le cluster et le nombre de partitions, exécutez la commande suivante :
    KAFKA_ROOT/bin/kafka-topics.sh --bootstrap-server
    BOOTSTRAP_SERVER --describe --topic Topic_name
    **Remarque :**Remplacez Topic_name par le nom de la rubrique.
    Avant d'exécuter la commande précédente, configurez un client Apache Kafka sur une machine Amazon Elastic Compute Cloud (Amazon EC2)
  • Modifiez le type d'instance en un type d'instance supérieur.
AWS OFFICIELA mis à jour il y a 5 mois