Aller au contenu principal
Version: 2.0.2

Déployer Kafka en 5 minutes

Ce guide vous accompagne dans le déploiement de votre premier cluster Kafka sur Hikube en quelques minutes !


Objectifs

À la fin de ce guide, vous aurez :

  • Un cluster Kafka déployé et opérationnel sur Hikube
  • Une configuration avec 3 brokers Kafka et 3 nœuds ZooKeeper
  • Un topic prêt à recevoir des messages
  • Un stockage persistant pour vos données Kafka et ZooKeeper

Prérequis

Avant de commencer, assurez-vous d’avoir :

  • kubectl configuré avec votre kubeconfig Hikube
  • Les droits administrateur sur votre tenant

Étape 1 : Créer le manifeste Kafka

Préparez le fichier kafka.yaml

Créez un fichier kafka.yaml comme ci-dessous :

kafka.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: Kafka
metadata:
name: example
namespace: tenant-x
spec:
kafka:
replicas: 3
resourcesPreset: small
size: 10Gi
storageClass: replicated
zookeeper:
replicas: 3
resourcesPreset: small
size: 5Gi
storageClass: replicated
topics:
- name: my-topic
partitions: 3
replicas: 3
config:
retention.ms: "604800000"
cleanup.policy: "delete"

Déployez le manifest Kafka

# Appliquer le fichier yaml
kubectl apply -f kafka.yaml

Étape 2 : Vérification du déploiement

Attendez quelques minutes que les pods soient créés, puis vérifiez leur état :

# Vérifier le statut de la ressource Kafka
kubectl get kafka
NAME READY AGE VERSION
example True 2m 0.13.0

# Vérifier les pods Kafka et ZooKeeper
kubectl get pods | grep kafka
kafka-example-kafka-0 1/1 Running 0 2m
kafka-example-kafka-1 1/1 Running 0 2m
kafka-example-kafka-2 1/1 Running 0 2m
kafka-example-zookeeper-0 1/1 Running 0 2m
kafka-example-zookeeper-1 1/1 Running 0 2m
kafka-example-zookeeper-2 1/1 Running 0 2m

Étape 3 : Connexion et test du cluster

Port-forward du service Kafka

kubectl port-forward svc/kafka-default-kafka-bootstrap 9092:9092

Publier et consommer un message en local

Installez le client Kafka si nécessaire :

# Sur votre machine locale
sudo apt install kafkacat -y # ou kafka-console-producer/kafka-console-consumer

Puis testez la communication :

# Envoyer un message
kafkacat -b localhost:9092 -t my-topic -P
Hello Hikube!
Ctrl+D

# Consommer le message
kafkacat -b localhost:9092 -t my-topic -C -o beginning
Hello Hikube!

Étape 4 : Gestion des topics

Vous pouvez créer de nouveaux topics directement via kubectl :

kubectl patch kafka example --type='merge' -p '{
"spec": {
"topics": [
{
"name": "events",
"partitions": 5,
"replicas": 3,
"config": {
"retention.ms": "259200000",
"cleanup.policy": "compact"
}
}
]
}
}'

Vérifiez ensuite dans les logs du broker que le topic a bien été créé.


📋 Résumé

Vous avez déployé :

  • Un cluster Kafka complet sur votre tenant Hikube
  • 3 brokers Kafka et 3 serveurs ZooKeeper
  • Un topic par défaut prêt à recevoir des messages
  • Un stockage persistant pour Kafka et ZooKeeper
  • Un accès local via port-forward pour tester la production et la consommation de messages