Types de Service : ClusterIP, NodePort, LoadBalancer
Découvrez les différentes manières d’exposer des services à l’intérieur et à l’extérieur de votre cluster Kubernetes.
Types de Service : ClusterIP, NodePort, LoadBalancer est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.
Besoins d’exposition des services
Dans Kubernetes, les Pods sont éphémères et possèdent des adresses IP dynamiques. Les services fournissent un accès réseau stable à vos applications. Mais comment les exposer ?
Selon que votre application doit être accessible depuis l’intérieur ou l’extérieur de votre cluster, et selon la manière dont elle doit l’être, Kubernetes propose différents types de services. Explorons les trois principaux !
ClusterIP : accès interne
ClusterIP est le type de service par défaut. Il attribue à votre service une adresse IP interne stable, accessible uniquement depuis le cluster Kubernetes.
- Les Pods peuvent accéder à d’autres Pods en utilisant ces ClusterIPs et le nom du service.
- C’est idéal pour les services principaux qui n’ont pas besoin d’être directement exposés à l’extérieur.
- Considérez-le comme un répartiteur de charge interne pour vos Pods.
YAML d’un service ClusterIP
Voici comment définir un service de type ClusterIP. Remarquez le champ type: ClusterIP, bien qu’il soit facultatif puisqu’il s’agit de la valeur par défaut.
apiVersion: v1
kind: Service
metadata:
name: my-internal-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIPAccéder aux services ClusterIP
Une fois déployé, Kubernetes attribue automatiquement à ce service une adresse IP interne unique (la ClusterIP). Les autres Pods peuvent alors utiliser le nom du service (par exemple my-internal-service) ou son adresse IP pour se connecter.
Le service DNS de Kubernetes résout le nom du service vers sa ClusterIP, ce qui rend les communications internes simples et fiables.
NodePort : accès externe
Que faire si vous devez accéder à votre application depuis l’extérieur du cluster ? C’est là que NodePort intervient.
Un service NodePort expose votre application sur un port statique de l’adresse IP de chaque nœud du cluster. Tout trafic envoyé vers NodeIP:NodePort est acheminé vers votre service.
- Utile pour le développement et les petits déploiements.
- Le NodePort se situe généralement dans la plage 30000-32767.
YAML d’un service NodePort
Pour créer un service NodePort, vous définissez explicitement type: NodePort. Si vous n’en indiquez pas, Kubernetes choisit automatiquement un port disponible dans la plage NodePort.
apiVersion: v1
kind: Service
metadata:
name: my-nodeport-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
nodePort: 30080 # Optional: K8s picks if omitted
type: NodePortSe connecter via NodePort
Après avoir déployé un service NodePort, vous pouvez accéder à votre application depuis l’extérieur du cluster en utilisant <AnyNodeIP>:<NodePort>.
Par exemple, si l’adresse IP d’un nœud est 192.168.1.100 et que le NodePort attribué est 30080, vous pouvez accéder à votre application à l’adresse http://192.168.1.100:30080.
LoadBalancer : intégration au cloud
Pour les environnements de production chez des fournisseurs cloud (AWS, GCP, Azure), le type de service LoadBalancer est souvent privilégié. Il provisionne automatiquement un répartiteur de charge cloud externe.
Ce répartiteur de charge reçoit une adresse IP publique et distribue le trafic externe vers les Pods de votre service. Il prend en charge pour vous tout le routage complexe.
YAML d’un service LoadBalancer
La définition d’un service LoadBalancer est simple. Votre fournisseur cloud se charge du provisionnement du répartiteur de charge externe.
apiVersion: v1
kind: Service
metadata:
name: my-loadbalancer-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancerAccès externe avec LoadBalancer
Une fois le déploiement effectué, votre fournisseur cloud crée un répartiteur de charge dédié et lui attribue une adresse IP externe ou un nom d’hôte. Vous pouvez ensuite utiliser ce point d’accès public pour accéder à votre application.
Cette solution offre un moyen robuste, évolutif et hautement disponible d’exposer vos services sur Internet.
Vérification rapide : types de services
Quels types de services Kubernetes permettent un accès externe direct à votre application depuis l’extérieur du cluster ?
Récapitulatif : choisir votre service
Vous avez découvert les trois principaux types de services Kubernetes :
- ClusterIP : pour un accès uniquement interne au cluster.
- NodePort : expose les services sur un port statique de l’adresse IP de chaque nœud, ce qui permet un accès externe.
- LoadBalancer : s’intègre aux fournisseurs cloud pour provisionner un répartiteur de charge externe doté d’une adresse IP publique.
Choisissez le type approprié en fonction des besoins d’exposition de votre application et de votre environnement de déploiement !
Questions Fréquemment Posées
La leçon « Types de Service : ClusterIP, NodePort, LoadBalancer » est-elle gratuite ?
Oui — le texte complet de « Types de Service : ClusterIP, NodePort, LoadBalancer » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Types de Service : ClusterIP, NodePort, LoadBalancer » ?
Découvrez les différentes manières d’exposer des services à l’intérieur et à l’extérieur de votre cluster Kubernetes. Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?
Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Types de Service : ClusterIP, NodePort, LoadBalancer » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?
Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Exposer des applications avec des Services
- Types de Service : ClusterIP, NodePort, LoadBalancer
- Ingress pour l’accès externe
- DNS et découverte des services