Aller au contenu principal

Quiz Module 8 - Ingress et Load Balancing

Instructions​

Ce quiz contient 30 questions à choix multiples.


Question 1​

Qu'est-ce qu'Ingress dans Kubernetes?

Voir l'explication

Réponse correcte: Une ressource qui expose les Services HTTP/HTTPS depuis l'extérieur du cluster

Explication: Ingress permet le routage HTTP/HTTPS basé sur le chemin ou le hostname, avec support TLS/SSL.


Question 2​

Qu'est-ce qu'un Ingress Controller?

Voir l'explication

Réponse correcte: Un Pod qui surveille les ressources Ingress et configure un load balancer pour les exposer

Explication: Un Ingress Controller (comme NGINX Ingress, Traefik) surveille les ressources Ingress et configure un reverse proxy/load balancer pour exposer les Services.


Question 3​

Quel est l'Ingress Controller le plus populaire?

Voir l'explication

Réponse correcte: NGINX Ingress Controller

Explication: NGINX Ingress Controller est le plus populaire et largement utilisé, maintenu par la communauté Kubernetes et NGINX.


Question 4​

Qu'est-ce qu'ingressClassName dans une ressource Ingress?

Voir l'explication

Réponse correcte: La classe d'Ingress qui spécifie quel Ingress Controller doit gérer cette ressource

Explication: ingressClassName permet de spécifier quel Ingress Controller doit gérer cette ressource Ingress, utile quand plusieurs Ingress Controllers sont installés.


Question 5​

Comment configurer TLS/SSL pour un Ingress?

Voir l'explication

Réponse correcte: Via la section tls avec un Secret contenant le certificat et la clé privée

Explication: La section tls dans un Ingress référence un Secret de type kubernetes.io/tls contenant tls.crt (certificat) et tls.key (clé privée).


Question 6​

Qu'est-ce que cert-manager?

Voir l'explication

Réponse correcte: Un opérateur Kubernetes qui gère automatiquement les certificats TLS/SSL

Explication: cert-manager obtient, renouvelle et gère automatiquement les certificats TLS depuis Let's Encrypt ou d'autres autorités de certification.


Question 7​

Quelle est la différence entre un Ingress et un Service LoadBalancer?

Voir l'explication

Réponse correcte: Ingress permet le routage HTTP/HTTPS basé sur le chemin/hostname, LoadBalancer expose un Service directement

Explication: Ingress offre un routage avancé (plusieurs Services via un seul point d'entrée), tandis que LoadBalancer expose un seul Service directement.


Question 8​

Qu'est-ce qu'un pathType dans une règle Ingress?

Voir l'explication

Réponse correcte: La façon dont le chemin est interprété: Exact, Prefix, ou ImplementationSpecific

Explication: pathType détermine comment le chemin est matché: Exact (correspondance exacte), Prefix (correspondance de préfixe), ou ImplementationSpecific (dépend de l'implémentation).


Question 9​

Quelle est la commande pour voir les Ingress?

Voir l'explication

Réponse correcte: kubectl get ingress

Explication: kubectl get ingress (ou ing) affiche tous les Ingress et leur statut, y compris les adresses IP assignées.


Question 10​

Qu'est-ce qu'une annotation dans un Ingress?

Voir l'explication

Réponse correcte: Des métadonnées qui configurent le comportement de l'Ingress Controller

Explication: Les annotations permettent de configurer des fonctionnalités spécifiques de l'Ingress Controller (rewrite rules, SSL redirect, etc.).


Question 11​

Qu'est-ce qu'un Ingress avec plusieurs règles?

Voir l'explication

Réponse correcte: Un Ingress qui peut router vers plusieurs Services basé sur différents hostnames ou chemins

Explication: Un Ingress peut avoir plusieurs règles, chacune définissant un routage différent basé sur le hostname ou le chemin, permettant d'exposer plusieurs Services via un seul point d'entrée.


Question 12​

Quelle est la commande pour installer NGINX Ingress Controller?

Voir l'explication

Réponse correcte: kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml

Explication: NGINX Ingress Controller peut être installé via kubectl apply avec le manifest officiel, ou via Helm.


Question 13​

Qu'est-ce qu'un Ingress avec rewrite-target?

Voir l'explication

Réponse correcte: Un Ingress qui réécrit le chemin de l'URL avant de le transmettre au Service backend

Explication: L'annotation nginx.ingress.kubernetes.io/rewrite-target permet de modifier le chemin de l'URL, utile quand le Service backend attend un chemin différent.


Question 14​

Quelle est la différence entre un Ingress et un Service NodePort pour exposer une application?

Voir l'explication

Réponse correcte: Ingress offre le routage HTTP/HTTPS et TLS, NodePort expose directement sur un port

Explication: Ingress permet le routage basé sur le chemin/hostname avec support TLS, tandis que NodePort expose simplement un Service sur un port statique.


Question 15​

Qu'est-ce qu'un Ingress avec pathType: Prefix?

Voir l'explication

Réponse correcte: Un Ingress où le chemin correspond si l'URL commence par le préfixe spécifié

Explication: pathType: Prefix signifie que le chemin correspond si l'URL commence par le préfixe (par exemple: /api correspond à /api/v1/users).


Question 16​

Quelle est la commande pour voir les Pods de l'Ingress Controller?

Voir l'explication

Réponse correcte: kubectl get pods -n ingress-nginx (ou le namespace où l'Ingress Controller est installé)

Explication: Les Ingress Controllers s'exécutent généralement dans un namespace dédié (comme ingress-nginx). Utilisez -n pour spécifier le namespace.


Question 17​

Qu'est-ce qu'un Ingress avec plusieurs hostnames?

Voir l'explication

Réponse correcte: Un Ingress qui peut router vers différents Services basé sur le hostname de la requête

Explication: Un Ingress peut avoir plusieurs règles avec différents hostnames, permettant de router vers différents Services selon le domaine de la requête (ex: app1.example.com, app2.example.com).


Question 18​

Quelle est la bonne pratique pour exposer plusieurs applications via Ingress?

Voir l'explication

Réponse correcte: Utiliser un Ingress avec plusieurs règles basées sur le hostname ou le chemin

Explication: Un seul Ingress avec plusieurs règles est plus efficace et plus facile à gérer que plusieurs Ingress, permettant d'exposer plusieurs Services via un seul point d'entrée.


Question 19​

Qu'est-ce qu'un Ingress avec annotation ssl-redirect?

Voir l'explication

Réponse correcte: Un Ingress qui redirige automatiquement le trafic HTTP vers HTTPS

Explication: L'annotation nginx.ingress.kubernetes.io/ssl-redirect: "true" force la redirection de HTTP vers HTTPS pour améliorer la sécurité.


Question 20​

Quelle est la différence entre un Ingress et un Service Mesh?

Voir l'explication

Réponse correcte: Ingress gère le trafic entrant HTTP/HTTPS, Service Mesh gère la communication inter-services avec observabilité et sécurité

Explication: Ingress est pour le trafic entrant externe, tandis qu'un Service Mesh (comme Istio) gère la communication entre microservices avec mTLS, observabilité, et contrôle du trafic.


Question 21​

Qu'est-ce qu'un Ingress avec backend service?

Voir l'explication

Réponse correcte: Un Ingress qui route le trafic vers un Service Kubernetes spécifié

Explication: Chaque règle dans un Ingress spécifie un backend service qui reçoit le trafic correspondant au hostname/chemin de la règle.


Question 22​

Quelle est la commande pour tester un Ingress localement?

Voir l'explication

Réponse correcte: curl -H "Host: [hostname]" http://[ingress-ip] ou utiliser port-forward vers l'Ingress Controller

Explication: Pour tester un Ingress, utilisez curl avec le header Host pour spécifier le hostname, ou utilisez kubectl port-forward pour accéder à l'Ingress Controller localement.


Question 23​

Qu'est-ce qu'un Ingress avec defaultBackend?

Voir l'explication

Réponse correcte: Un Ingress qui spécifie un Service par défaut pour les requêtes qui ne correspondent à aucune règle

Explication: defaultBackend permet de définir un Service qui reçoit le trafic ne correspondant à aucune règle, utile pour une page 404 personnalisée.


Question 24​

Quelle est la bonne pratique pour gérer les certificats TLS avec Ingress?

Voir l'explication

Réponse correcte: Utiliser cert-manager pour la gestion automatique des certificats avec Let's Encrypt

Explication: cert-manager automatise l'obtention, le renouvellement et la gestion des certificats TLS, éliminant le travail manuel et garantissant des certificats valides.


Question 25​

Qu'est-ce qu'un Ingress avec CORS (Cross-Origin Resource Sharing)?

Voir l'explication

Réponse correcte: Un Ingress configuré avec des annotations pour permettre les requêtes cross-origin

Explication: Les annotations CORS (comme nginx.ingress.kubernetes.io/enable-cors) permettent de configurer les en-têtes CORS pour permettre les requêtes depuis différents domaines.


Question 26​

Quelle est la différence entre un Ingress et un API Gateway?

Voir l'explication

Réponse correcte: Ingress est pour le routage HTTP/HTTPS basique, API Gateway offre des fonctionnalités avancées (rate limiting, authentication, transformation)

Explication: Ingress offre un routage basique, tandis qu'un API Gateway (comme Kong, Ambassador) offre des fonctionnalités avancées comme rate limiting, authentification, transformation de requêtes, etc.


Question 27​

Qu'est-ce qu'un Ingress avec rate limiting?

Voir l'explication

Réponse correcte: Un Ingress configuré avec des annotations pour limiter le nombre de requêtes par client

Explication: Les annotations de rate limiting (comme nginx.ingress.kubernetes.io/limit-rps) permettent de limiter le nombre de requêtes par seconde pour protéger les backends.


Question 28​

Quelle est la commande pour voir les logs de l'Ingress Controller?

Voir l'explication

Réponse correcte: kubectl logs -n ingress-nginx [ingress-controller-pod-name]

Explication: Les logs de l'Ingress Controller sont dans les Pods de l'Ingress Controller. Utilisez kubectl logs avec le namespace et le nom du Pod.


Question 29​

Qu'est-ce qu'un Ingress avec session affinity?

Voir l'explication

Réponse correcte: Un Ingress configuré pour diriger les requêtes d'un même client vers le même Pod backend

Explication: La session affinity (sticky sessions) garantit que les requêtes d'un même client vont toujours au même Pod backend, utile pour les sessions d'application.


Question 30​

Quelle est la bonne pratique pour exposer une application en production avec Ingress?

Voir l'explication

Réponse correcte: Utiliser HTTPS avec cert-manager, configurer ssl-redirect, et utiliser des annotations pour la sécurité

Explication: En production, utilisez toujours HTTPS avec cert-manager pour les certificats automatiques, activez ssl-redirect, et configurez les annotations de sécurité appropriées.


Résultat du Quiz​

Félicitations pour avoir complété le quiz du Module 8!

Score:

  • 25-30 bonnes réponses: Excellent! Vous maîtrisez Ingress et Load Balancing.
  • 20-24 bonnes réponses: Très bien! Revoyez les concepts où vous avez eu des difficultés.
  • 15-19 bonnes réponses: Bien! Revoyez les chapitres sur Ingress et Ingress Controllers.
  • Moins de 15: Recommandé de revoir le module avant de continuer.

Quiz créé le: Décembre 2024