Information sur l'article
Categorie: kubernetes, kafka, docker, devops, streaming, distributed-systems
Mise à jour: 2025-12-23
Temps de lecture: 25 min
Déployer Kafka sur Kubernetes : guide complet avec Zookeeper et Kafka-UI
Mise à jour: 2025-12-23
Déployer Kafka sur Kubernetes
Kafka est une plateforme de streaming distribuée très populaire. Kubernetes offre une excellente plateforme pour déployer Kafka en production avec haute disponibilité et scalabilité. Ce tutoriel vous montre comment déployer Zookeeper, Kafka et Kafka-UI sur Kubernetes.
Prérequis
- Un cluster Kubernetes fonctionnel (local avec Minikube, Docker Desktop ou un cluster cloud)
- kubectl installé et configuré
- Helm (optionnel mais recommandé)
- Au moins 4GB de RAM disponible dans le cluster
Architecture générale
L'architecture sera composée de :
- Zookeeper : coordination distribuée pour Kafka
- Kafka Broker : le système de messaging
- Kafka-UI : interface web pour gérer Kafka
Étape 1 : Créer un namespace
Commençons par créer un namespace dédié pour Kafka :
Étape 2 : Déployer Zookeeper
Zookeeper est nécessaire pour la coordination de Kafka. Créez un fichier zookeeper-deployment.yaml :
Déployez Zookeeper :
Étape 3 : Déployer Kafka Broker
Créez un fichier kafka-deployment.yaml :
Déployez Kafka :
Explication des variables d'environnement Kafka
- KAFKA_BROKER_ID : identifiant unique du broker
- KAFKA_ZOOKEEPER_CONNECT : adresse de Zookeeper
- KAFKA_ADVERTISED_LISTENERS : adresses accessibles de l'extérieur
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR : facteur de réplication (1 pour un seul broker)
Étape 4 : Déployer Kafka-UI
Kafka-UI est une interface graphique pour gérer Kafka. Créez un fichier kafka-ui-deployment.yaml :
Déployez Kafka-UI :
Accéder à Kafka-UI
Selon votre environnement :
- Minikube : minikube service kafka-ui -n kafka
- Port forward : kubectl port-forward svc/kafka-ui 8080:8080 -n kafka
Accédez à http://localhost:8080
Étape 5 : Tester Kafka
Pour tester Kafka, connectez-vous au pod Kafka et créez un topic :
À l'intérieur du pod :
Étape 6 : Configuration avancée avec StatefulSet
Pour une production avec haute disponibilité, utilisez StatefulSet pour Kafka et Zookeeper. Créez un fichier kafka-statefulset.yaml :
Étape 7 : Monitoring et Logs
Visualisez les logs :
Points clés à retenir
✅ Zookeeper est essentiel pour la coordination de Kafka
✅ Utilisez StatefulSet en production pour la persistance
✅ Kafka-UI offre une interface puissante pour gérer les topics et les partitions
✅ Configurez les ressources (CPU, mémoire) selon votre charge
✅ Utilisez les PersistentVolume pour les données critiques
Sommaire
- Déployer Kafka sur Kubernetes
- Prérequis
- Architecture générale
- Étape 1 : Créer un namespace
- Étape 2 : Déployer Zookeeper
- Étape 3 : Déployer Kafka Broker
- Explication des variables d'environnement Kafka
- Étape 4 : Déployer Kafka-UI
- Accéder à Kafka-UI
- Étape 5 : Tester Kafka
- Étape 6 : Configuration avancée avec StatefulSet
- Étape 7 : Monitoring et Logs
- Points clés à retenir
- Conclusion