Service Kubernetes

 

 

Illustration d’un cluster Kubernetes avec plusieurs nœuds connectés

Comprendre les Services Kubernetes : ClusterIP et NodePort

Kubernetes : une introduction aux services réseaux

Kubernetes est une plateforme open-source d’orchestration de conteneurs qui facilite le déploiement, la mise à l’échelle et la gestion d’applications conteneurisées. Au cœur de Kubernetes, les services permettent de rendre accessible un ensemble de pods via une interface réseau stable et abstraite.

Service ClusterIP

Le type ClusterIP est le type par défaut d’un service Kubernetes. Il attribue une adresse IP interne au cluster qui rend un service accessible uniquement au sein du cluster Kubernetes.

C’est idéal pour la communication entre pods d’applications, comme un backend accessible à des frontend à l’intérieur du cluster.

Schéma d’un Service ClusterIP avec pods communiquant via une IP unique interne

Service NodePort

Le service NodePort permet d’exposer un service sur un port statique sur chaque nœud du cluster. Cela rend le service accessible depuis l’extérieur du cluster via l’adresse IP de n’importe quel nœud et ce port.

Cela est particulièrement utile pour les tests, ou les scénarios où un équilibre de charge externe n’est pas configuré.

Diagramme du Service NodePort exposé sur chaque nœud, accessible de l’extérieur

Exemples concrets d’utilisation

Exemple de ClusterIP : Service interne Redis

Imaginons un service Redis ne devant être accessible que par les applications backend IRL.

  • Déploiement d’un pod Redis.
  • Service ClusterIP nommé redis qui précise un sélecteur sur ce pod.
  • Les autres pods utilisent redis:6379 pour communiquer en réseau Kubernetes.

Exemple NodePort : exposer une application web

Pour un accès externe rapide sans configurer de LoadBalancer :

  • Déployer un pod avec une app web sur le port 80.
  • Créer un Service NodePort sur un port, par exemple 30080.
  • Accéder à l’app via http://IP_du_nœud:30080 depuis l’extérieur.

Note : dans un cluster cloud managé (ex: GKE, AKS), NodePort sert souvent en backend de LoadBalancer.

Conclusion et bons usages

Le choix entre ClusterIP et NodePort dépend de votre besoin d’accès réseau :

  • ClusterIP : accès interne, communication interne. Plus sécurisé et recommandé pour les services privés.
  • NodePort : accès direct externe sur chaque nœud, simple mais limité et demande plus d’attention à la sécurisation.

Pour une exposition externe professionnelle, mieux vaut privilégier une combinaison avec un LoadBalancer ou un Ingress controller.