Aller au contenu principal
Version: 2.0.2

Référence API Kafka

Cette référence détaille la configuration et le fonctionnement des clusters Kafka sur Hikube, incluant la gestion des topics, la configuration des brokers Kafka, et la coordination via ZooKeeper.


Structure de Base

Ressource Kafka

Exemple de configuration YAML

apiVersion: apps.cozystack.io/v1alpha1
kind: Kafka
metadata:
name: kafka
namespace: tenant-x
spec:
external: false
kafka:
replicas: 3
resourcesPreset: small
size: 10Gi
topics: []
zookeeper:
replicas: 3
resourcesPreset: small
size: 5Gi

Paramètres

Paramètres Communs

ParamètreTypeDescriptionDéfautRequis
externalboolActive l’accès externe au cluster Kafka (exposition hors du cluster Kubernetes)falseNon

Exemple YAML

kafka.yaml
external: true

Paramètres Kafka

ParamètreTypeDescriptionDéfautRequis
kafkaobjectConfiguration du cluster Kafka{}Oui
kafka.replicasintNombre de réplicas Kafka (brokers)3Oui
kafka.resourcesobjectConfiguration explicite CPU et mémoire pour chaque broker. Si vide, kafka.resourcesPreset est utilisé.{}Non
kafka.resources.cpuquantityCPU disponible par brokernullNon
kafka.resources.memoryquantityRAM disponible par brokernullNon
kafka.resourcesPresetstringPreset de ressources par défaut (nano, micro, small, medium, large, xlarge, 2xlarge)"small"Oui
kafka.sizequantityTaille du volume persistant utilisé pour les données Kafka10GiOui
kafka.storageClassstringStorageClass utilisé pour stocker les données Kafka""Non

Exemple YAML

kafka.yaml
kafka:
replicas: 3
resources:
cpu: 2000m
memory: 2Gi
resourcesPreset: medium
size: 20Gi
storageClass: replicated

Paramètres ZooKeeper

ParamètreTypeDescriptionDéfautRequis
zookeeperobjectConfiguration du cluster ZooKeeper utilisé par Kafka{}Oui
zookeeper.replicasintNombre de réplicas ZooKeeper3Oui
zookeeper.resourcesobjectConfiguration explicite CPU et mémoire pour chaque réplique. Si vide, zookeeper.resourcesPreset est utilisé.{}Non
zookeeper.resources.cpuquantityCPU disponible par réplique ZooKeepernullNon
zookeeper.resources.memoryquantityRAM disponible par réplique ZooKeepernullNon
zookeeper.resourcesPresetstringPreset de ressources par défaut (nano, micro, small, medium, large, xlarge, 2xlarge)"small"Oui
zookeeper.sizequantityTaille du volume persistant pour ZooKeeper5GiOui
zookeeper.storageClassstringStorageClass utilisé pour stocker les données ZooKeeper""Non

Exemple YAML

kafka.yaml
zookeeper:
replicas: 3
resourcesPreset: small
size: 5Gi
storageClass: replicated

Paramètres Topics

ParamètreTypeDescriptionDéfautRequis
topics[]objectListe des topics à créer automatiquement[]Non
topics[i].namestringNom du topic""Oui
topics[i].partitionsintNombre de partitions du topic0Oui
topics[i].replicasintNombre de réplicas du topic0Oui
topics[i].configobjectConfiguration avancée du topic (nettoyage, rétention, etc.){}Non

Exemple YAML

kafka.yaml
topics:
- name: results
partitions: 1
replicas: 3
config:
min.insync.replicas: 2
- name: orders
partitions: 1
replicas: 3
config:
cleanup.policy: compact
segment.ms: 3600000
max.compaction.lag.ms: 5400000
min.insync.replicas: 2

resources et resourcesPreset

Le champ resources permet de définir explicitement la configuration CPU et mémoire de chaque broker ou nœud ZooKeeper. Si ce champ est laissé vide, la valeur du paramètre resourcesPreset est utilisée.

Exemple YAML

kafka.yaml
resources:
cpu: 4000m
memory: 4Gi

⚠️ Attention : si resources est défini, la valeur de resourcesPreset est ignorée.

Preset nameCPUMémoire
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi