Quiz Module 4 - Services et Networking
Instructions
Ce quiz contient 30 questions à choix multiples pour valider votre compréhension du Module 4.
Conseil: Répondez à chaque question avant de révéler la réponse.
Question 1
Quel est le rôle principal d'un Service dans Kubernetes?
Voir l'explication
Réponse correcte: Exposer un ensemble de Pods comme un service réseau avec une IP stable
Explication: Un Service fournit une IP stable et un nom DNS pour accéder à un groupe de Pods, même si les IPs des Pods changent.
Question 2
Quel type de Service est utilisé par défaut et n'est accessible que depuis l'intérieur du cluster?
Voir l'explication
Réponse correcte: ClusterIP
Explication: ClusterIP est le type par défaut. Il expose le Service sur une IP interne du cluster, accessible uniquement depuis l'intérieur.
Question 3
Quel type de Service expose l'application sur un port statique de chaque node?
Voir l'explication
Réponse correcte: NodePort
Explication: NodePort expose le Service sur un port statique (30000-32767) de chaque node, permettant d'accéder au Service depuis l'extérieur du cluster via [NodeIP]:[NodePort].
Question 4
Quel type de Service crée automatiquement un load balancer externe dans les environnements cloud?
Voir l'explication
Réponse correcte: LoadBalancer
Explication: LoadBalancer étend NodePort et crée automatiquement un load balancer externe dans les environnements cloud (AWS ELB, Azure Load Balancer, GCP Load Balancer).
Question 5
Quel est le format DNS d'un Service dans Kubernetes?
Voir l'explication
Réponse correcte: [service-name].[namespace].svc.cluster.local
Explication: Les Services ont un nom DNS complet qui inclut le nom du Service, le namespace, et le domaine du cluster, permettant la résolution DNS dans tout le cluster.
Question 6
Quel composant Kubernetes gère la résolution DNS des Services?
Voir l'explication
Réponse correcte: CoreDNS
Explication: CoreDNS est le service DNS qui résout les noms de Services et permet la découverte de services via DNS dans le cluster.
Question 7
Qu'est-ce qu'un Endpoint dans Kubernetes?
Voir l'explication
Réponse correcte: Une ressource qui liste les adresses IP des Pods qui correspondent aux sélecteurs d'un Service
Explication: Les Endpoints sont créés automatiquement pour chaque Service et contiennent les adresses IP des Pods backend qui correspondent aux sélecteurs du Service.
Question 8
Qu'est-ce qu'un EndpointSlice?
Voir l'explication
Réponse correcte: Une version améliorée d'Endpoint qui permet de gérer de grandes quantités de backends de manière plus efficace
Explication: EndpointSlice est une alternative moderne à Endpoint qui divise les endpoints en plusieurs slices, améliorant les performances pour les Services avec de nombreux backends.
Question 9
Quel est le mode de load balancing par défaut pour un Service ClusterIP?
Voir l'explication
Réponse correcte: Round-robin via iptables ou IPVS (selon la configuration de kube-proxy)
Explication: kube-proxy utilise iptables (par défaut) ou IPVS pour distribuer le trafic entre les Pods backend de manière round-robin.
Question 10
Qu'est-ce qu'un Service headless?
Voir l'explication
Réponse correcte: Un Service avec clusterIP: None qui retourne directement les IPs des Pods
Explication: Un Service headless (clusterIP: None) permet d'obtenir directement les adresses IP des Pods via DNS, utile pour StatefulSets et la découverte de services.
Question 11
Qu'est-ce qu'une Network Policy?
Voir l'explication
Réponse correcte: Une ressource qui définit les règles de communication réseau entre les Pods
Explication: Les Network Policies permettent de contrôler le trafic réseau entre les Pods, agissant comme un pare-feu au niveau du cluster.
Question 12
Quel plugin CNI est nécessaire pour utiliser les Network Policies?
Voir l'explication
Réponse correcte: Un plugin CNI qui supporte les Network Policies (Calico, Cilium, Weave, etc.)
Explication: Tous les plugins CNI ne supportent pas les Network Policies. Il faut utiliser un plugin compatible comme Calico, Cilium, ou Weave.
Question 13
Quel est le port par défaut d'un Service si non spécifié?
Voir l'explication
Réponse correcte: Le port doit être spécifié explicitement
Explication: Kubernetes ne définit pas de port par défaut pour les Services. Le port doit être spécifié dans la définition du Service.
Question 14
Qu'est-ce qu'un Service de type ExternalName?
Voir l'explication
Réponse correcte: Un Service qui mappe un Service à un nom DNS externe
Explication: ExternalName mappe un Service Kubernetes à un nom DNS externe, permettant d'accéder à des services externes comme s'ils étaient internes au cluster.
Question 15
Quelle est la plage de ports pour NodePort?
Voir l'explication
Réponse correcte: 30000-32767
Explication: Les ports NodePort sont assignés dans la plage 30000-32767 par défaut, bien que cette plage puisse être configurée.
Question 16
Qu'est-ce que le sessionAffinity dans un Service?
Voir l'explication
Réponse correcte: Une configuration qui garantit que les requêtes d'un client vont toujours au même Pod backend
Explication: sessionAffinity: ClientIP garantit que toutes les requêtes provenant de la même IP client sont dirigées vers le même Pod backend, utile pour les sessions.
Question 17
Quel est le rôle de kube-proxy dans le networking Kubernetes?
Voir l'explication
Réponse correcte: Maintenir les règles de réseau (iptables/IPVS) pour les Services et effectuer le load balancing
Explication: kube-proxy surveille les Services et les Endpoints, et met à jour les règles iptables ou IPVS pour diriger le trafic vers les Pods backend appropriés.
Question 18
Qu'est-ce qu'un Service sans sélecteur?
Voir l'explication
Réponse correcte: Un Service qui pointe vers des endpoints externes définis manuellement
Explication: Un Service sans sélecteur permet de créer un Service qui pointe vers des endpoints externes au cluster en créant manuellement un objet Endpoints.
Question 19
Quel est l'avantage d'utiliser IPVS au lieu d'iptables pour kube-proxy?
Voir l'explication
Réponse correcte: IPVS offre de meilleures performances et plus d'options de load balancing pour de nombreux Services
Explication: IPVS utilise des tables de hachage au lieu de longues chaînes iptables, offrant de meilleures performances et plus d'algorithmes de load balancing (rr, lc, dh, sh, sed, nq).
Question 20
Qu'est-ce que le cluster.local dans le DNS Kubernetes?
Voir l'explication
Réponse correcte: Le domaine DNS par défaut du cluster
Explication: cluster.local est le domaine DNS par défaut utilisé par CoreDNS pour résoudre les noms de Services dans le cluster (peut être configuré différemment).
Question 21
Quelle est la différence entre un Service ClusterIP et un Service NodePort?
Voir l'explication
Réponse correcte: ClusterIP est accessible uniquement dans le cluster, NodePort expose également un port sur chaque node
Explication: Un Service ClusterIP est accessible uniquement depuis l'intérieur du cluster, tandis qu'un NodePort étend ClusterIP en exposant également un port statique sur chaque node.
Question 22
Qu'est-ce qu'un Service Account dans le contexte du networking?
Voir l'explication
Réponse correcte: Une identité pour les Pods, utilisée pour l'authentification avec l'API Server
Explication: Un Service Account fournit une identité pour les Pods, permettant l'authentification et l'autorisation lors de l'accès à l'API Server, mais n'est pas directement lié au networking des Services.
Question 23
Quel est le rôle d'un Ingress dans Kubernetes?
Voir l'explication
Réponse correcte: Exposer les Services HTTP/HTTPS depuis l'extérieur du cluster avec routage basé sur le chemin ou le hostname
Explication: Ingress permet d'exposer plusieurs Services via un seul point d'entrée avec routage basé sur le chemin URL ou le hostname, avec support TLS/SSL.
Question 24
Qu'est-ce qu'un CNI plugin?
Voir l'explication
Réponse correcte: Un plugin réseau qui configure le networking des Pods dans Kubernetes
Explication: CNI (Container Network Interface) est une interface standard qui permet aux plugins réseau (Calico, Flannel, Weave, etc.) de configurer le networking des Pods.
Question 25
Quelle est la commande pour voir les Endpoints d'un Service?
Voir l'explication
Réponse correcte: kubectl get endpoints
Explication: Cette commande affiche les Endpoints qui listent les adresses IP des Pods backend pour chaque Service.
Question 26
Qu'est-ce qu'un Service mesh?
Voir l'explication
Réponse correcte: Une infrastructure dédiée qui gère la communication entre les microservices avec observabilité, sécurité et contrôle du trafic
Explication: Un Service mesh (comme Istio, Linkerd) ajoute une couche de networking qui gère la communication entre services avec des fonctionnalités avancées comme le mTLS, le circuit breaking, et l'observabilité.
Question 27
Quelle est la différence entre un Service et un Ingress?
Voir l'explication
Réponse correcte: Un Service expose un ensemble de Pods, un Ingress expose des Services HTTP/HTTPS avec routage avancé
Explication: Un Service expose des Pods avec une IP stable et du load balancing. Un Ingress est une couche au-dessus qui permet le routage HTTP/HTTPS basé sur le chemin ou le hostname vers plusieurs Services.
Question 28
Qu'est-ce qu'un ExternalIP dans un Service?
Voir l'explication
Réponse correcte: Une adresse IP externe qui peut être utilisée pour accéder au Service depuis l'extérieur du cluster
Explication: externalIPs permet de spécifier des adresses IP externes qui seront routées vers le Service, permettant l'accès externe sans LoadBalancer.
Question 29
Quelle est la commande pour tester la résolution DNS d'un Service?
Voir l'explication
Réponse correcte: nslookup [service-name].[namespace].svc.cluster.local depuis un Pod
Explication: Vous pouvez tester la résolution DNS en exécutant nslookup ou dig depuis un Pod pour vérifier que CoreDNS résout correctement le nom du Service.
Question 30
Qu'est-ce qu'un Service sans port targetPort spécifié?
Voir l'explication
Réponse correcte: Le targetPort utilise la même valeur que le port
Explication: Si targetPort n'est pas spécifié dans un Service, il utilise la même valeur que le port, ce qui signifie que le trafic vers le port du Service est dirigé vers le même port sur les Pods backend.
Résultat du Quiz
Félicitations pour avoir complété le quiz du Module 4!
Score:
- 25-30 bonnes réponses: Excellent!
- 20-24 bonnes réponses: Très bien!
- 15-19 bonnes réponses: Bien!
- Moins de 15: Recommandé de revoir le module.
Quiz créé le: Décembre 2024