Ingress pour l’accès externe
Configurez Ingress pour gérer l’accès externe aux services, avec le routage HTTP/S et l’équilibrage de charge.
Ingress pour l’accès externe est une leçon Kubernetes Basics gratuite sur CoddyKit. Ceci est la leçon 3 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 Kubernetes Basics, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kubernetes Basics comprend 4 leçons au total.
Au-delà de NodePort et LoadBalancer
Nous avons étudié différents types de services Kubernetes, comme NodePort et LoadBalancer, pour exposer des applications à l’extérieur.
Bien qu’ils soient utiles, ils peuvent devenir difficiles à gérer lorsque les exigences d’accès externe sont complexes, notamment lorsque vous devez héberger de nombreuses applications ou API sur une seule adresse IP avec des règles de routage précises.
C’est là qu’Ingress intervient, en proposant une solution plus puissante et plus flexible.
Présentation d’Ingress dans Kubernetes
Ingress est un objet d’API Kubernetes qui gère l’accès externe aux services d’un cluster, principalement pour le trafic HTTP et HTTPS.
- Il sert de point d’entrée unique pour les requêtes externes.
- Il permet le routage HTTP/S en fonction des noms d’hôte ou des chemins d’URL.
- Il peut également fournir des fonctionnalités telles que la terminaison SSL/TLS et la répartition de charge.
Considérez Ingress comme un contrôleur intelligent du trafic qui dirige le trafic web vers les bons services internes.
Le contrôleur Ingress
Une ressource Ingress n’est en elle-même qu’un ensemble de règles : elle ne gère pas directement le trafic. Pour rendre Ingress fonctionnel, vous devez exécuter un contrôleur Ingress dans votre cluster.
Le contrôleur Ingress surveille les ressources Ingress et configure un répartiteur de charge externe (ou un proxy inverse) conformément aux règles définies.
Parmi les contrôleurs Ingress populaires, on trouve Nginx, Traefik et des contrôleurs propres au cloud, comme GCE Ingress pour Google Cloud ou AWS Load Balancer Controller.
Fonctionnement des règles Ingress
Ingress définit des règles qui associent les requêtes externes entrantes à des services principaux précis au sein de votre cluster. Ces règles indiquent généralement :
- Hôte : le nom de domaine (par exemple
www.my-app.com). - Chemin : le chemin d’URL (par exemple
/api,/blog). - Service principal : le service Kubernetes et le port vers lesquels le trafic doit être transféré.
Le contrôleur Ingress évalue ces règles pour chaque requête entrante afin de déterminer la destination appropriée.
Créer un YAML Ingress
Comme les autres ressources Kubernetes, Ingress est défini à l’aide d’un manifeste YAML. Voici une structure de base présentant les champs essentiels :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-web-service
port:
number: 80Ingress simple fondé sur le chemin
Créons une ressource Ingress qui achemine tout le trafic du chemin racine (/) de myapp.example.com vers un service nommé my-web-service sur le port 80.
Avant d’appliquer cet Ingress, vérifiez qu’un Deployment et un service nommés my-web-service sont en cours d’exécution dans votre cluster.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: basic-app-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-web-service
port:
number: 80Déployer votre Ingress
Pour déployer votre ressource Ingress, enregistrez le YAML dans un fichier (par exemple basic-ingress.yaml), puis utilisez kubectl apply :
kubectl apply -f basic-ingress.yaml
Vous pouvez vérifier l’état de votre Ingress avec kubectl get ingress. Le contrôleur Ingress configurera ensuite le répartiteur de charge externe en fonction de ces règles.
Pour effectuer un test, vous devrez généralement mettre à jour votre fichier local /etc/hosts (ou le DNS) afin de faire pointer myapp.example.com vers l’adresse IP externe de votre contrôleur Ingress.
Exemple de routage fondé sur l’hôte
Ingress est idéal pour héberger plusieurs applications sur une seule adresse IP externe en utilisant différents noms d’hôte. Ici, app1.example.com est dirigé vers service-app1, et app2.example.com vers service-app2.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: host-routing-ingress
spec:
rules:
- host: app1.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service-app1
port:
number: 80
- host: app2.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service-app2
port:
number: 80Plusieurs chemins, un seul hôte
Vous pouvez également acheminer différents chemins d’URL d’un même nom d’hôte vers différents services principaux. Cette approche convient parfaitement aux architectures de microservices ou aux différentes sections d’une même application.
Par exemple, les requêtes vers api.example.com/users sont dirigées vers users-service, tandis que celles vers api.example.com/products sont dirigées vers products-service.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: path-routing-ingress
spec:
rules:
- host: api.example.com
http:
paths:
- path: /users
pathType: Prefix
backend:
service:
name: users-service
port:
number: 80
- path: /products
pathType: Prefix
backend:
service:
name: products-service
port:
number: 80Vérification de l’objectif d’Ingress
Lesquels des éléments suivants sont les principaux avantages de l’utilisation d’Ingress dans Kubernetes ?
Récapitulatif : le routage intelligent avec Ingress
Excellent travail ! Vous avez découvert Ingress dans Kubernetes, un composant essentiel pour gérer la manière dont les utilisateurs externes interagissent avec vos applications.
- Ingress fournit un routage HTTP/S flexible fondé sur les noms d’hôte et les chemins d’URL.
- Il nécessite un contrôleur Ingress (comme Nginx) pour surveiller les règles Ingress et configurer le routage.
- Il simplifie l’exposition de plusieurs services via une seule adresse IP externe, rendant votre cluster plus efficace et plus facile à gérer.
Maîtriser Ingress est essentiel pour créer des applications cloud natives robustes et accessibles !
Questions Fréquemment Posées
La leçon « Ingress pour l’accès externe » est-elle gratuite ?
Oui — le texte complet de « Ingress pour l’accès externe » 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 Kubernetes Basics, passe à CoddyKit PRO. Le cours Kubernetes Basics comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Ingress pour l’accès externe » ?
Configurez Ingress pour gérer l’accès externe aux services, avec le routage HTTP/S et l’équilibrage de charge. Tu pratiques Kubernetes Basics 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 Kubernetes Basics ?
Aucune expérience préalable n'est requise. Kubernetes Basics 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 3 sur 4.
Combien de temps prend la leçon « Ingress pour l’accès externe » ?
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 Kubernetes Basics ?
Oui. Chaque leçon Kubernetes Basics 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