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.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- 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 $$'affiche1. 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.