Quiz Module 5 - Configuration et Secrets
Instructions
Ce quiz contient 30 questions à choix multiples.
Question 1
Qu'est-ce qu'un ConfigMap?
Voir l'explication
Réponse correcte: Un objet Kubernetes qui stocke des données de configuration non sensibles
Explication: Les ConfigMaps permettent de séparer la configuration du code applicatif.
Question 2
Qu'est-ce qu'un Secret dans Kubernetes?
Voir l'explication
Réponse correcte: Un objet Kubernetes qui stocke des données sensibles comme des mots de passe, tokens, ou clés
Explication: Les Secrets sont similaires aux ConfigMaps mais sont conçus pour stocker des données sensibles. Ils sont stockés en base64 (pas de chiffrement par défaut).
Question 3
Comment créer un ConfigMap depuis un fichier?
Voir l'explication
Réponse correcte: kubectl create configmap [name] --from-file=[file]
Explication: La commande --from-file permet de créer un ConfigMap depuis un fichier, où la clé sera le nom du fichier et la valeur sera le contenu du fichier.
Question 4
Quelle est la taille maximale d'une entrée dans un ConfigMap?
Voir l'explication
Réponse correcte: 1 MiB
Explication: Chaque entrée dans un ConfigMap ou Secret est limitée à 1 MiB. Pour des données plus grandes, utilisez des volumes.
Question 5
Comment injecter un ConfigMap comme variable d'environnement dans un Pod?
Voir l'explication
Réponse correcte: envFrom: - configMapRef: name: [configmap-name]
Explication: envFrom permet d'injecter toutes les clés d'un ConfigMap comme variables d'environnement. Pour une clé spécifique, utilisez env avec valueFrom.configMapKeyRef.
Question 6
Comment monter un ConfigMap comme volume dans un Pod?
Voir l'explication
Réponse correcte: volumes: - name: config configMap: name: [configmap-name]
Explication: Pour monter un ConfigMap comme volume, définissez-le dans la section volumes du Pod, puis utilisez volumeMounts pour le monter dans le conteneur.
Question 7
Quelle est la différence principale entre un ConfigMap et un Secret?
Voir l'explication
Réponse correcte: Les Secrets sont conçus pour les données sensibles et sont stockés en base64, les ConfigMaps pour les données non sensibles
Explication: Les Secrets sont destinés aux données sensibles mais ne sont pas chiffrés par défaut (juste encodés en base64). Les ConfigMaps sont pour les données non sensibles.
Question 8
Comment créer un Secret depuis des littéraux?
Voir l'explication
Réponse correcte: kubectl create secret generic [name] --from-literal=[key]=[value]
Explication: --from-literal permet de créer un Secret directement depuis des paires clé-valeur en ligne de commande.
Question 9
Quelle est la bonne pratique pour gérer les secrets en production?
Voir l'explication
Réponse correcte: Utiliser des outils de gestion de secrets externes (Vault, AWS Secrets Manager) avec External Secrets Operator
Explication: Les secrets ne doivent jamais être commités dans Git. Utilisez des outils externes comme Vault ou les services cloud avec External Secrets Operator pour une gestion sécurisée.
Question 10
Qu'est-ce que le chiffrement au repos (encryption at rest) pour les Secrets?
Voir l'explication
Réponse correcte: Une fonctionnalité qui chiffre les Secrets dans etcd en utilisant une EncryptionConfig
Explication: Le chiffrement au repos permet de chiffrer les Secrets dans etcd en configurant une EncryptionConfig avec des providers de chiffrement (AES, KMS, etc.).
Question 11
Quelle commande permet de voir le contenu d'un Secret (décodé)?
Voir l'explication
Réponse correcte: kubectl get secret [name] -o jsonpath='{.data.[key]}' | base64 -d
Explication: Les Secrets sont stockés en base64. Pour voir le contenu décodé, utilisez jsonpath pour extraire la valeur et base64 -d pour décoder.
Question 12
Qu'est-ce qu'External Secrets Operator?
Voir l'explication
Réponse correcte: Un opérateur Kubernetes qui synchronise les secrets depuis des systèmes externes (AWS Secrets Manager, Vault, etc.) vers Kubernetes
Explication: External Secrets Operator permet de gérer les secrets de manière centralisée dans des systèmes externes et de les synchroniser automatiquement vers Kubernetes.
Question 13
Quelle est la méthode recommandée pour injecter un Secret dans un Pod?
Voir l'explication
Réponse correcte: Utiliser envFrom avec secretRef ou env avec valueFrom.secretKeyRef
Explication: Les Secrets doivent être injectés via envFrom (toutes les clés) ou env avec valueFrom.secretKeyRef (une clé spécifique), jamais hardcodés.
Question 14
Quelle est la différence entre env et envFrom?
Voir l'explication
Réponse correcte: env permet d'injecter des variables individuelles, envFrom injecte toutes les clés d'un ConfigMap/Secret
Explication: env permet un contrôle précis sur chaque variable, tandis qu'envFrom injecte automatiquement toutes les clés comme variables d'environnement.
Question 15
Quelle est la bonne pratique pour les permissions d'un volume Secret?
Voir l'explication
Réponse correcte: 0400 (lecture seule pour le propriétaire)
Explication: Les volumes Secrets doivent être montés en lecture seule (readOnly: true) avec des permissions restrictives (defaultMode: 0400) pour la sécurité.
Question 16
Qu'est-ce qu'un ConfigMap immutable?
Voir l'explication
Réponse correcte: Un ConfigMap qui ne peut pas être modifié après sa création, améliorant les performances et la sécurité
Explication: Les ConfigMaps immutables (immutable: true) ne peuvent pas être modifiés, réduisant la charge sur l'API Server et améliorant la sécurité.
Question 17
Comment mettre à jour un ConfigMap utilisé par un Pod en cours d'exécution?
Voir l'explication
Réponse correcte: Si monté comme volume, il faut redémarrer le Pod. Si injecté comme env, il faut recréer le Pod
Explication: Les ConfigMaps montés comme volumes sont mis à jour périodiquement, mais les variables d'environnement injectées ne changent pas sans recréer le Pod.
Question 18
Quelle est la commande pour créer un Secret depuis un fichier?
Voir l'explication
Réponse correcte: kubectl create secret generic [name] --from-file=[key]=[file]
Explication: --from-file permet de créer un Secret depuis un fichier, où vous pouvez spécifier la clé et le fichier source.
Question 19
Qu'est-ce que la rotation des secrets?
Voir l'explication
Réponse correcte: Le processus de remplacement périodique des secrets par de nouvelles valeurs pour la sécurité
Explication: La rotation des secrets est une bonne pratique de sécurité qui consiste à changer régulièrement les mots de passe, tokens, et clés pour limiter l'impact d'une compromission.
Question 20
Quelle est la différence entre un Secret de type Opaque et un Secret de type TLS?
Voir l'explication
Réponse correcte: Opaque est pour les données arbitraires, TLS est spécifiquement pour les certificats TLS
Explication: Les Secrets de type TLS ont des clés spécifiques (tls.crt, tls.key) et sont utilisés par des outils comme cert-manager pour les certificats SSL/TLS.
Question 21
Comment organiser les ConfigMaps par environnement?
Voir l'explication
Réponse correcte: Créer des ConfigMaps séparés par environnement (dev, staging, prod) avec des noms différents
Explication: La meilleure pratique est de créer des ConfigMaps distincts pour chaque environnement, permettant une gestion claire et évitant les erreurs de configuration.
Question 22
Quelle est la limite de taille totale d'un ConfigMap ou Secret?
Voir l'explication
Réponse correcte: Limité par etcd (généralement 1.5 MiB par objet)
Explication: Bien que chaque entrée soit limitée à 1 MiB, la taille totale d'un ConfigMap ou Secret est limitée par etcd, généralement autour de 1.5 MiB.
Question 23
Qu'est-ce qu'un volume de type Secret?
Voir l'explication
Réponse correcte: Un volume qui monte les données d'un Secret comme fichiers dans un Pod
Explication: Les Secrets peuvent être montés comme volumes, où chaque clé devient un fichier avec la valeur décodée comme contenu.
Question 24
Quelle est la bonne pratique pour les secrets dans les YAML?
Voir l'explication
Réponse correcte: Ne jamais mettre les secrets en clair, utiliser des références (secretKeyRef) ou des outils externes
Explication: Les secrets ne doivent jamais être en clair dans les YAML, même en base64. Utilisez des références ou des outils de gestion de secrets.
Question 25
Comment utiliser un ConfigMap dans un Deployment?
Voir l'explication
Réponse correcte: Dans le template Pod du Deployment, via env, envFrom, ou volumes
Explication: Les ConfigMaps sont référencés dans le template Pod (spec.template.spec) d'un Deployment, via env/envFrom pour les variables d'environnement ou volumes pour les fichiers.
Question 26
Qu'est-ce qu'un Service Account dans le contexte des Secrets?
Voir l'explication
Réponse correcte: Une identité pour les Pods qui peut être associée à des Secrets pour l'accès à l'API Server
Explication: Les Service Accounts peuvent avoir des imagePullSecrets pour accéder aux registries privées, mais ne sont pas directement liés aux Secrets applicatifs.
Question 27
Quelle est la commande pour supprimer un ConfigMap?
Voir l'explication
Réponse correcte: kubectl delete configmap [name]
Explication: kubectl delete est la commande standard pour supprimer n'importe quelle ressource Kubernetes, y compris les ConfigMaps.
Question 28
Qu'est-ce qu'un Secret de type docker-registry?
Voir l'explication
Réponse correcte: Un Secret qui stocke les credentials pour accéder à un registre Docker privé
Explication: Les Secrets de type docker-registry sont utilisés comme imagePullSecrets pour permettre aux Pods de tirer des images depuis des registres privés.
Question 29
Quelle est la bonne pratique pour versionner les ConfigMaps?
Voir l'explication
Réponse correcte: Utiliser des labels avec des numéros de version et créer de nouveaux ConfigMaps pour chaque version
Explication: Versionner les ConfigMaps avec des labels permet de suivre les changements et facilite les rollbacks en référençant différentes versions.
Question 30
Quelle est la différence entre valueFrom.configMapKeyRef et valueFrom.secretKeyRef?
Voir l'explication
Réponse correcte: configMapKeyRef référence une clé d'un ConfigMap, secretKeyRef référence une clé d'un Secret
Explication: Ces deux références fonctionnent de la même manière mais pointent vers des types de ressources différents: ConfigMap pour les données non sensibles, Secret pour les données sensibles.
Résultat du Quiz
Félicitations pour avoir complété le quiz du Module 5!
Score:
- 25-30 bonnes réponses: Excellent! Vous maîtrisez la configuration et les secrets.
- 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 ConfigMaps et Secrets.
- Moins de 15: Recommandé de revoir le module avant de continuer.
Quiz créé le: Décembre 2024