Partitionner et isoler : namespaces et cgroups

Ce que cachent les espaces de noms de Linux, ce que limitent les groupes de contrôle, le rôle de chroot et des capacités, et le tueur de processus : comprendre ce qu'est vraiment un conteneur et lire un arrêt à 137.

  • 32 cartes
  • 5 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. Les chiffres
  5. Mises en situation

Quelques cartes du deck

  • Espace de noms (namespace) : de quoi s'agit-il ?

    Voir la réponse

    Mécanisme du noyau Linux qui donne à un groupe de processus sa propre vue d'une ressource globale (processus, réseau, points de montage, nom de machine, utilisateurs, communications entre processus).

    Il borne ce qu'un processus voit, pas ce qu'il consomme. Les conteneurs en combinent sept : pid, net, mnt, uts, ipc, user et cgroup ; Linux y a ajouté time en 2020.

  • Deux conteneurs d'une même machine écoutent chacun sur le port 80 de leur réseau, sans publier de port. Pourquoi aucun ne signale que le port est pris ?

    • Chacun a son espace de noms réseau, donc ses ports
    • Docker renumérote le port de l'un des deux à son démarrage
    • Un groupe de contrôle réseau donne à chacun sa plage de ports
    • Le noyau laisse partager un port aux conteneurs d'une même image
    Voir la réponse

    Chacun a son espace de noms réseau, donc ses ports

    Les interfaces, les routes et les ports appartiennent à l'espace de noms net. Deux espaces de noms distincts, deux tables de ports indépendantes. Il n'existe pas de groupe de contrôle réseau : les groupes plafonnent des quantités.

  • Dans un conteneur, le premier processus porte le numéro … : l'espace de noms … lui donne sa propre numérotation.

    Voir la réponse

    Dans un conteneur, le premier processus porte le numéro 1 : l'espace de noms pid lui donne sa propre numérotation.

    docker run --rm alpine sh -c 'echo $$' affiche 1. Sur l'hôte, le même processus porte un autre numéro, que seul l'hôte voit.

  • Groupe de contrôle (cgroup) : de quoi s'agit-il ?

    Voir la réponse

    Mécanisme du noyau Linux qui regroupe des processus pour mesurer et plafonner ce qu'ils consomment : processeur, mémoire, nombre de processus, débit disque.

    Il borne ce qu'un processus consomme, pas ce qu'il voit. Un conteneur combine les deux : des espaces de noms pour la vue, des groupes de contrôle pour les quantités.