Configuration d’un pipeline Kafka Connect sur Kubernetes – étape par étape

Récemment, j’ai installé et configuré Kafka Connect sur GKE (à l’aide de graphiques Helm) et créé un pipeline de bout en bout pour transférer des données d’une base de données MySQL vers un fichier texte à l’aide du connecteur JDBC et du connecteur de fichier.

Dans cet article, je vais vous guider à travers les étapes et également souligner les modifications de configuration que j’ai dû apporter pour que cela fonctionne correctement sur Kubernetes. Les fichiers sont disponibles dans le référentiel https://github.com/sumantrana/kafka-connect-pipeline.

Kafka Connect

Kafka Connect est un framework permettant de déplacer des données vers et depuis d’autres systèmes utilisant Kafka comme intermédiaire. Kafka Connect est livré avec une variété de connecteurs intégrés qui permettent de se connecter aux systèmes existants pour transférer des données vers et depuis Kafka. Kafka Connect peut être mis à l’échelle selon les besoins. Il a une version autonome ainsi qu’une version distribuée.

Cet article ne prétend pas expliquer en détail Kafka Connect, son architecture et ses avantages mais se concentre davantage sur son installation et sa configuration sur Kubernetes et le fait fonctionner de bout en bout dans un environnement autonome. Pour en savoir plus sur Kafka Connect, veuillez visiter le site officiel ici.

Dans cet article, nous allons créer un pipeline de bout en bout avec MySQL comme source de données et un fichier texte comme récepteur. Le diagramme suivant illustre le flux de données:

Prérequis:

J’ai commencé avec un cluster à 3 nœuds («n1-standard-1»), mais j’ai fini par manquer de CPU. J’ai donc dû augmenter la taille du pool de nœuds à 4.

Pour pouvoir installer Kafka Connect et MySQL à l’aide de graphiques de barre.

Pour pouvoir se connecter au serveur MySQL et créer des tables et insérer des données.

Installez Kafka Connect

Cloner le référentiel de graphiques de barre de Kafka Connect

Modifier les valeurs par défaut

Le fichier values.yaml par défaut est configuré pour installer un cluster Kafka à 3 nœuds. Cela nécessiterait beaucoup plus de CPU et un pool de nœuds plus grand ou meilleur. Par conséquent, pour le bien de cet exercice, nous allons réduire Kafka à un cluster à un seul nœud. Les modifications de configuration suivantes sont requises:

Installer le diagramme de barre de Kafka Connect

& lt; nom-de-version-de-connexion & gt; peut être n’importe quel nom donné à l’installation. Cela sera préfixé à tous les artefacts Kubernetes déployés dans le cadre de l’installation.

Attendez que tous les artefacts soient déployés. Ceci montre l’exemple de sortie de la commande kubectl get pods lorsque le graphique de barre a été installé avec kafkaconnect comme & lt; connect-release-name & gt ;:

Installer et configurer MySQL

Ajouter un référentiel helm (google repo pour MySQL)

Installer le graphique MySQL

Similaire à Kafka Connect, & lt; mysql-release-name & gt; peut être n’importe quelle chaîne pour identifier de manière unique cette installation. J’ai utilisé mysql comme nom de version pour cette installation.

Connectez-vous à MySQL

Configurer la connexion autonome

Configurer le connecteur source JDBC

Exécuter et vérifier le connecteur source JDBC

Remplacez par <%<connect-release-name>-cp-schema-registry

La sortie doit ressembler à ceci:

Cela garantit que le connecteur source jdbc a bien fonctionné et que les données sont chargées dans la rubrique kafka "test-étudiants"

Si nous utilisons le consommateur générique kafka-console-consumer, nous pourrons toujours voir la sortie. Mais il ne sera pas structuré / formaté et peut également contenir des caractères supplémentaires. Un exemple:

Configurer le connecteur du récepteur de fichiers

Exécuter et vérifier le connecteur du récepteur de fichiers

Si le processus se plaint du port REST "Adresse déjà utilisée", mettez à jour le fichier " /etc/schema-registry/connect-avro-standalone.properties ", modifiez rest .port vers 9084 et réexécutez.

La sortie doit afficher les enregistrements présents dans la table de la base de données

Vérifier les mises à jour en direct

Connectez-vous au serveur Kafka connect en utilisant trois shells différents.

Ajouter de nouvelles données

Vérifier les résultats