Kubernetes : configuration et stockage

Les namespaces, ConfigMap et Secret en variables ou en fichiers montés, les volumes d'un pod, PersistentVolume, PersistentVolumeClaim et StorageClass, modes d'accès, et ce qu'un StatefulSet ajoute.

  • 28 cartes
  • 4 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation

Quelques cartes du deck

  • Namespace : de quoi s'agit-il ?

    Voir la réponse

    Cloison logique du cluster qui sépare les noms des objets et sur laquelle on applique des droits et des quotas.

    Il ne coupe pas le réseau : sans NetworkPolicy, un pod d'un namespace joint ceux d'un autre.

  • Quelle valeur faut-il écrire dans le champ data d'un Secret pour le mot de passe s3cret ?

    ```bash
    echo -n 's3cret' | base64
    `

    • czNjcmV0
    • s3cret
    • UzNjcmV0
    • czNjcmV0Cg==
    Voir la réponse

    czNjcmV0

    La commande affiche czNjcmV0. Sans l'option -n, echo ajoute un retour à la ligne qui serait encodé aussi (czNjcmV0Cg==) et rendrait le mot de passe faux. La valeur en clair irait dans stringData.

  • Une valeur de ConfigMap injectée comme … n'est lue qu'au démarrage du conteneur ; montée comme …, elle finit par être mise à jour dans le pod.

    Voir la réponse

    Une valeur de ConfigMap injectée comme variable d'environnement n'est lue qu'au démarrage du conteneur ; montée comme fichier, elle finit par être mise à jour dans le pod.

    Les variables d'un processus sont figées à son lancement. Pour qu'une application relise un fichier modifié, elle doit aussi le surveiller ou être relancée.

  • ConfigMap : de quoi s'agit-il ?

    Voir la réponse

    Objet qui contient de la configuration non secrète, sous forme de paires clé-valeur ou de fichiers, injectée dans les pods sans toucher à l'image.

    La même image sert en développement et en production : seule la ConfigMap change, ce qui évite de reconstruire l'image.

  • On corrige une ConfigMap mais l'application garde l'ancienne valeur, lue par variable d'environnement. Quelle est la cause et la solution ?

    • Le serveur d'API n'a pas enregistré la ConfigMap ; la recréer dans un autre namespace, puis recommencer
    • La ConfigMap est mise en cache dans l'image ; reconstruire l'image avec la nouvelle valeur puis la pousser
    • Les variables se mettent à jour d'elles-mêmes au bout d'une heure ; il suffit d'attendre sans rien faire
    • Les variables ne sont lues qu'au démarrage ; relancer le déploiement avec kubectl rollout restart
    Voir la réponse

    Les variables ne sont lues qu'au démarrage ; relancer le déploiement avec kubectl rollout restart

    L'environnement d'un processus est copié à son lancement. Un fichier monté peut se mettre à jour, pas une variable : il faut remplacer les pods pour qu'ils relisent la ConfigMap.