0Pricing
DevOps Bootcamp · Leçon

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 DevOps Bootcamp 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 DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp 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: 80

Ingress 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: 80

Dé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: 80

Plusieurs 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: 80

Vé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 DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp 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 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 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 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

  1. Exposer des applications avec des Services
  2. Types de Service : ClusterIP, NodePort, LoadBalancer
  3. Ingress pour l’accès externe
  4. DNS et découverte des services
← Retour à DevOps Bootcamp