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