Pourquoi migrer vers K8s pour la data ?

Les clusters YARN on-premise ou EMR préprovisionnés gaspillent des ressources. Avec Kubernetes, vous avez de l'élasticité réelle : un job Spark peut demander 50 executors le temps de son exécution, et les pods disparaissent une fois le job terminé. Vous payez ce que vous consommez.

Spark on Kubernetes

Depuis Spark 3.1, le support natif K8s est stable en production. Le pattern recommandé :

  • Utiliser l'Operator Spark (Kubeflow Spark Operator) pour déclarer les jobs en YAML
  • Stocker les données sur S3/GCS/Azure Blob (pas de HDFS)
  • Utiliser des Spot/Preemptible nodes pour les executors (économie 60-80%)

Kafka avec Strimzi

Strimzi est l'operator Kafka officiel pour K8s. Il gère le cycle de vie complet : déploiement, rolling upgrades, TLS, monitoring Prometheus. Avec Cruise Control intégré, le rebalancing des partitions devient automatique.

Flink pour le streaming temps-réel

Apache Flink offre une garantie exactly-once en mode streaming avec une latence de quelques millisecondes. Sur K8s, le Flink Kubernetes Operator simplifie les déploiements en application mode ou session mode selon vos besoins.

Gestion des ressources GPU

Pour les workloads ML (feature extraction, inference batch), allouez des nodes GPU via des nodeSelector et tolerations spécifiques. Les Device Plugins NVIDIA permettent à K8s de scheduler intelligemment les GPU.