Les services

Les services

Qu’est-ce qu’un Service (SVC) dans Kubernetes ?

Un Service dans Kubernetes est une abstraction qui permet d’exposer un ou plusieurs Pods via une adresse IP stable et un nom DNS. Cela permet de gérer le routage du trafic vers un ensemble de Pods sans se soucier de leurs adresses IP, qui peuvent changer à chaque redémarrage ou mise à jour.

Les commandes service

Lister les services

kubectl get svc

kubectl get svc -n <nom_du_namespace>

Obtenir les Endpoints d’un Service

Pour obtenir les endpoints associés à un Service donné :

kubectl get endpoints svc my-service

Supprimer un service

kubectl get delete svc my-service

Exemple d’un Service ClusterIP

Voici un exemple de Service de type ClusterIP, qui expose une application en interne dans le cluster :

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP

Explication :

  • selector : Sélectionne les Pods qui correspondent au label app: my-app.
  • ports : Le Service écoute sur le port 80 et redirige le trafic vers le port 8080 des Pods.

Exemple d’un Service NodePort

Voici un exemple de Service de type NodePort, qui expose l’application sur un port spécifique sur chaque nœud du cluster :

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
      nodePort: 30007
  type: NodePort

Explication :

  • nodePort: 30007 : Le Service sera exposé sur le port 30007 de chaque nœud du cluster, ce qui permet d’y accéder depuis l’extérieur du cluster.

Exemple d’un Service LoadBalancer

Voici un exemple de Service de type LoadBalancer, utilisé pour exposer un service via un Load Balancer externe :

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: LoadBalancer

Explication :

  • type: LoadBalancer : Le Service sera exposé à l’extérieur via un Load Balancer (si le cluster est hébergé dans un fournisseur cloud qui supporte cette fonctionnalité).
Dernière modification