Formation DevOps | Formation kubernetes : Ingress
Ingress dans Kubernetes: Une Exploration Approfondie
L’architecture moderne des applications s’appuie de plus en plus sur des microservices déployés dans des containers, et Kubernetes est le leader dans l’orchestration de ces containers. Dans ce contexte, la gestion des accès externes à ces services devient cruciale. C’est ici qu’interviennent les objets Ingress. Cet article offre une exploration en profondeur des Ingress dans Kubernetes, couvrant leur but, leur fonctionnement, et des exemples pratiques d’implémentation.
Qu’est-ce qu’un Ingress ?
Un Ingress est un objet Kubernetes qui configure l’accès externe aux services déployés dans un cluster. Plus précisément, il gestionne typiquement le trafic HTTP/HTTPS. Un Ingress permet non seulement de diriger le trafic vers des services spécifiques en fonction de l’URL demandée, mais il fournit également d’autres fonctionnalités comme la terminaison TLS, le routage basé sur des règles, et la manipulation du trafic (par exemple, via des réécritures d’URL).
Ingress
Un Ingress est un objet Kubernetes qui gère l’accès externe aux services dans un cluster, généralement du trafic HTTP.
Les Ingress permettent d’avoir un LoadBalancer de niveau 7 automatisé capable de faire du routage basé sur les noms d’hôtes.
Les Ingress nécessitent l’utilisation d’un LoadBalancer piloté par un Ingress Controller. L’Ingress Controller est un logiciel à déployer par les administrateurs du cluster.

Plus de shemas pour meiux comprendre :
Principales Caractéristiques des Ingress
-
Routage Basé sur le Nom d’Hôte et le Chemin: Les Ingress vous permettent de router le trafic basé sur les en-têtes HTTP, tels que le nom d’hôte ou le chemin de l’URL. Cela signifie qu’un seul point d’entrée (load balancer) peut gérer plusieurs services.
-
Terminaison TLS: Les Ingress permettent de gérer les certificats SSL/TLS pour sécuriser les communications entre l’utilisateur et le service.
-
Simplification de la Configuration: Au lieu de déployer des Load Balancers individuels pour chaque service, les Ingress centralisent la gestion des accès.

Cette image illustre la façon dont un Ingress Controller interagit avec les services et gère le trafic entrant vers ces services.
Ingress et Ingress Controller
Pour que les Ingress soient opérationnels, un composant appelé Ingress Controller doit être déployé dans le cluster. L’Ingress Controller est responsable de lire les ressources Ingress et de programmer le routage du trafic au sein du cluster. Kubernetes ne fournit pas de contrôleur Ingress par défaut; les deux options les plus populaires sont NGINX et Traefik. Chacun a ses propres caractéristiques et avantages en termes de performance, de simplicité d’utilisation et de fonctionnalités.
YAML pour Configurer un Ingress
La configuration d’un Ingress se fait par le biais de fichiers YAML, qui définissent les règles et les comportements souhaités. Voici un exemple simple :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx-example
rules:
- http:
paths:
- path: /testpath
pathType: Prefix
backend:
service:
name: test
port:
number: 80
Dans cet exemple :
apiVersion: indique la version de l’API Kubernetes utilisée.
kind: spécifie le type de ressource, ici un Ingress.
metadata: contient des informations supplémentaires comme le nom et des annotations.
spec: définit la configuration spécifique de l’Ingress, incluant les règles de routage.
Les règles définies ici font que toute requête HTTP adressée à /testpath est routée vers le service nommé test sur le port 80.
Ingress avec TLS
Un scénario courant implique la sécurisation des communications à l’aide de la terminaison TLS. Pour ce faire, nous devons créer un secret contenant le certificat et la clé privés.
Voici comment cela fonctionne :
Création d’un certificat et d’une clé:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /tmp/tls.key -out /tmp/tls.crt -subj “/CN=demo-formation.k8s”
Création d’un secret dans Kubernetes:
kubectl create secret tls demo-formation-tls --key /tmp/tls.key --cert /tmp/tls.crt
Une fois que le certificat est créé, nous pouvons l’inclure dans la configuration de l’Ingress :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tls-example-ingress
spec:
tls:
- hosts:
- demo-formation.k8s
secretName: demo-formation-tls
rules:
- host: demo-formation.k8s
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service1
port:
number: 80
Dans cet exemple, nous spécifions que pour le nom d’hôte demo-formation.k8s, le trafic sera sécurisé à l’aide du secret demo-formation-tls, et tout le trafic sera dirigé vers le service service1 sur le port 80.
Avantages des Ingress
Centralisation: En utilisant un Ingress, vous évitez la complexité de déployer des load balancers pour chaque service individuel.
Routage Avancé: Grâce à la capacité de routage basée sur les en-têtes et les chemins, vous pouvez facilement diriger le trafic de manière granulaire.
SSL/TLS: La gestion des certificats devient plus simple et robuste, unifiant la terminaison TLS à travers plusieurs services.
Scalabilité: Les Ingress sont conçus pour fonctionner avec des clusters de grande taille et pour gérer un volume élevé de requêtes.
Limitations et Considérations
Malgré ses nombreux atouts, l’utilisation des Ingress a aussi certaines limitations. Par exemple, certains contrôleurs peuvent ne pas prendre en charge les fonctionnalités les plus avancées ou peuvent nécessiter une configuration spécifique pour fonctionner correctement. De plus, la dépendance à un Ingress Controller signifie que la disponibilité de ce composant est cruciale pour l’accès à vos services.
Conclusion
Les Ingress dans Kubernetes jouent un rôle fondamental dans la gestion de l’accès externe aux services. En fournissant une interface unique et flexible pour le routage du trafic HTTP/HTTPS, les Ingress permettent un meilleur contrôle, une sécurité accrue, et une optimisation générale de l’architecture des applications modernes. Il est essentiel pour les administrateurs et les développeurs de comprendre et de maîtriser les Ingress pour tirer pleinement parti des capacités de Kubernetes. Avec les bonnes configurations et pratiques, les Ingress peuvent transformer la façon dont les applications sont accessibles sur Internet.
1. Nous contactez
- Description: Besoin de Formation et des Solutions cloud complètes pour vos applications
- Links:
2. Infra as a Service
- Description: Infrastructure cloud évolutive et sécurisée
- Links:
3. Projets Développeurs
- Description: Découvrez des opportunités passionnantes pour les développeurs
- Links:
4. Développeurs
- Description: Rejoignez notre communauté de développeurs
- Links:
5. Formations Complètes
- Description: Accédez à des formations professionnelles de haute qualité
- Links:
6. Marketplace
- Description: Découvrez notre place de marché de services
- Links:
7. Blogs
- Description: Découvrez nos blogs
- Links:
- comment creer une application mobile ?
- Comment monitorer un site web ?
- Command Checkout in git ?
- Comment git checkout to commit ?
- supprimer une branche git
- dockercoin
- kubernetes c est quoi
- architecture kubernetes
- Installer Gitlab Runner ?
- .gitlab-ci.yml exemples
- CI/CD
- svelte 5 vs solid
- svelte vs lit
- solidjs vs qwik
- alpine vs vue
- Plateform Freelance 2025
- Creation d’un site Web gratuitement
This website is powered by ItGalaxy.io