Services pour l’accès réseau
Exposez vos applications à l’intérieur et à l’extérieur du cluster grâce aux différents types de Service Kubernetes.
Services pour l’accès réseau est une leçon Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Docker & DevOps Fundamentals comprend 4 leçons au total.
Qu'est-ce qu'un service Kubernetes ?
Dans Kubernetes, les pods sont les plus petites unités déployables. Ils sont conçus pour être éphémères : ils peuvent être créés, supprimés ou remplacés à tout moment et reçoivent souvent de nouvelles adresses IP.
Cette nature dynamique complique la recherche et la communication fiables avec ces pods pour les autres applications. C'est là que les services interviennent !

Fournir un accès réseau stable
Un service Kubernetes sert de point de terminaison réseau stable pour un ensemble de pods. Considérez-le comme une adresse permanente qui ne change pas, même si les pods qui se trouvent derrière lui changent.
- Les services fournissent une adresse IP et un nom DNS cohérents.
- Ils peuvent répartir le trafic entre plusieurs pods.
- Ils garantissent une disponibilité continue lorsque les pods sont mis à l'échelle ou redémarrés.
Connecter des pods aux services
Comment un service sait-il vers quels pods acheminer le trafic ? Il utilise des étiquettes et des sélecteurs.
Lorsque vous créez des pods, vous leur attribuez des étiquettes (des paires clé-valeur telles que app: my-app). Un service définit ensuite un sélecteur qui correspond à ces étiquettes, créant ainsi un lien dynamique.
Accès interne avec ClusterIP
ClusterIP est le type de service par défaut et le plus courant. Il attribue une adresse IP interne stable au sein du cluster Kubernetes. Cette adresse IP n'est accessible que depuis d'autres pods ou nœuds à l'intérieur du cluster.
Il convient parfaitement aux services principaux (comme une base de données ou une API) qui doivent uniquement communiquer avec d'autres services de votre application.
Définir un service ClusterIP
Voici une définition YAML simple pour un service ClusterIP. Remarquez le selector qui correspond à l'étiquette app: my-backend, ainsi que la façon dont port fait correspondre le port à targetPort.
apiVersion: v1
kind: Service
metadata:
name: my-backend-service
spec:
selector:
app: my-backend
ports:
- protocol: TCP
port: 80
targetPort: 8080 # Port your application listens on
type: ClusterIPAccès externe avec NodePort
Un service NodePort expose votre application sur un port statique de l'adresse IP de chaque nœud. Votre service devient ainsi accessible depuis l'extérieur du cluster en utilisant l'adresse IP de n'importe quel nœud et le port indiqué.
La valeur nodePort se situe généralement dans la plage 30000-32767. Cette solution est utile pour un accès externe simple ou dans les environnements de développement.
Définir un service NodePort
Pour exposer votre service à l'extérieur via un NodePort, définissez type: NodePort. Vous pouvez éventuellement indiquer un nodePort, sinon Kubernetes en choisira un pour vous.
apiVersion: v1
kind: Service
metadata:
name: my-frontend-service
spec:
selector:
app: my-frontend
ports:
- protocol: TCP
port: 80
targetPort: 80 # Port your application listens on
nodePort: 30080 # Optional: specific port on the Node
type: NodePortRépartiteurs de charge dans le cloud
Le type de service LoadBalancer est conçu pour les environnements cloud. Lorsque vous créez ce type de service, votre fournisseur cloud (comme AWS, GCP ou Azure) met automatiquement en place un répartiteur de charge externe.
Ce répartiteur de charge reçoit une adresse IP publique et achemine directement le trafic externe vers vos pods, souvent avec des fonctionnalités avancées comme la terminaison SSL.
Définir un service LoadBalancer
Pour les applications accessibles publiquement dans un cluster Kubernetes cloud, LoadBalancer est le choix privilégié. Il simplifie considérablement la gestion de l'accès externe.
apiVersion: v1
kind: Service
metadata:
name: my-web-app-lb
spec:
selector:
app: my-web-app
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancerChoisir le bon service
Votre équipe déploie une nouvelle application sur Kubernetes. Examinez les scénarios suivants :
- Une API principale à laquelle seuls les autres services du cluster doivent accéder.
- Un serveur web frontal qui doit être accessible depuis Internet, et que vous déployez auprès d'un fournisseur cloud (AWS, GCP ou Azure).
Quel type de service convient le mieux au serveur web frontal ?
Récapitulatif : les services pour l'accès réseau
Nous avons appris que les services Kubernetes fournissent un accès réseau stable à des pods dynamiques. Ils sont indispensables pour permettre à vos applications de communiquer de manière fiable.
- ClusterIP : réservé aux communications internes au cluster.
- NodePort : expose un service sur un port statique de l'adresse IP de chaque nœud, avec un accès externe pour certains cas d'utilisation.
- LoadBalancer : s'intègre aux fournisseurs cloud pour mettre en place un répartiteur de charge externe offrant un accès public.
Choisir le bon type de service est essentiel pour contrôler la manière dont vos applications sont exposées.
Questions Fréquemment Posées
La leçon « Services pour l’accès réseau » est-elle gratuite ?
Oui — le texte complet de « Services pour l’accès réseau » 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 Docker & DevOps Fundamentals, passe à CoddyKit PRO. Le cours Docker & DevOps Fundamentals comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Services pour l’accès réseau » ?
Exposez vos applications à l’intérieur et à l’extérieur du cluster grâce aux différents types de Service Kubernetes. Tu pratiques Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals ?
Aucune expérience préalable n'est requise. Docker & DevOps Fundamentals 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 « Services pour l’accès réseau » ?
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 Docker & DevOps Fundamentals ?
Oui. Chaque leçon Docker & DevOps Fundamentals 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
- Déploiements pour applications sans état
- Services pour l’accès réseau
- ConfigMaps et Secrets
- Ingress et routage externe