Commit 20ec0e4d authored by Martin Souchal's avatar Martin Souchal
Browse files

landscape

parent 498cf727
Pipeline #127862 passed with stages
in 1 minute and 48 seconds
......@@ -53,17 +53,6 @@
- Conclusion
---
# Les conteneurs
### Un peu d'histoire...
- Technologie apparue dans Solaris via les jails
- Basé sur les kernel namespaces (kernel 2.4.19) et les cgroups (kernel 2.6.24)
- LXC/LXD en 2008, Docker en 2013
- Kubernetes en 2014 chez Google
- 2015 : Docker top 15 GitHub, création de l'[Open Container Initiative](https://opencontainers.org/) (OCI)
<img style="width:60%; float: right;" src="images/landscape.png" >
---
# Les conteneurs
### Principe de base
- A l'arrêt, un conteneur est un fichier (ou un ensemble de fichiers) qui est enregistré sur un disque.
......@@ -71,14 +60,31 @@
- Un appel API au noyau déclenche une isolation supplémentaire (si nécessaire) et monte une copie des fichiers de l'image du conteneur.
- Une fois lancés, les conteneurs sont un processus Linux comme un autre.
- Un conteneur est immuable (modifier un conteneur = créer un nouveau)
---
# Les conteneurs
### Un peu d'histoire...
- 1979 : chroot
- 1999 : jails (Solaris/BSD)
- 2005 : OpenVZ
- Ajout dans le noyau linux des namespaces (kernel 2.4.19) et des cgroups (kernel 2.6.24)
- LXC/LXD en 2008
- Docker en 2013, début du DevOps
- Kubernetes en 2014 chez Google, Nomad chez HashiCorp
- 2015 : Docker top 15 GitHub, création de l'[Open Container Initiative](https://opencontainers.org/) (OCI)
<img style="width:60%; float: right;" src="images/landscape.png" >
---
<img style="width:100%;" src="images/landscape-full.png" >
---
# Open Container initiative (OCI)
*Le processus de démarrage des conteneurs, ainsi que le format de l'image sur le disque, sont définis et régis par des normes.*
- Gouvernance ouverte chapeautée par la Linux Foundation
- Standard pour les runtimes et les images de conteneurs (pas les manifestes !)
- Gouvernance ouverte chapeautée par la Linux Foundation pour répondre à la volonté d'avoir un écosystème hétérogène dans K8S.
- Standard pour les runtimes (CRI) et les images de conteneurs (pas les manifestes !)
- Ligne de commande unifiée
```bash
......@@ -92,7 +98,7 @@
---
# Vocabulaire
- Runtime : moteur chargé d'executer le conteneur
- Runtime : logiciel chargé d'executer le conteneur (docker, lxd, runc, containerd, cri-o, singularity....)
- Image : fichier (ou un ensemble de fichiers) enregistré sur un disque
- Manifeste : Fichier texte, "recette" du conteneur
- Registre : un serveur abritant des images de conteneurs
......@@ -131,10 +137,13 @@
---
# Runtimes
- Runtimes bas niveau : runc (docker), LXC/LXD, crun, conmon (RedHat), nvidia-docker (Nvidia)
- Runtimes haut niveau : Docker, Singularity, Podman (RedHat), containerd (Docker), CR-IO (Kubernetes), enroot (Nvidia), SmartOs (Samsung)
- Runtimes bas niveau (proche du kernel) : runc (docker), LXC/LXD, crun, conmon (RedHat), nvidia-docker (Nvidia)
- Runtimes haut niveau (réseau, etc...) : containerd (Docker), CR-IO (Kubernetes), enroot (Nvidia), SmartOs (Samsung), Singularity CRI
- Outils : Docker, Singularity, Podman (RedHat)
- MicroVms : KataContainer (INTEL), Firecracker (AWS), gVisor (google)
- Image builder : buildah, img, orca-build...
*Toutes ces solutions sont interopérables grâce à OCI.*
<img style="width:30%;" src="images/runtime-architecture.png" >
<img style="width:20%;" src="images/docker-runtime.png" >
......@@ -328,9 +337,9 @@
# Docker et le calcul
### Un écosystème pas très adapté...
- Docker est adapté pour les micro services (un conteneur, un service), pas très facile de gérer des chaines de calcul
- Docker est adapté pour les micro services (un conteneur, un service), pas très facile de gérer des chaînes de calcul
- Network namespace et compatibilité matériel réseau pour cluster (Intel OmniPath, Infiniband...)
- Aucun support MPI
- Aucun support MPI, support GPU non natif
- Image docker : superpositions de couches, pas très portable dans un cluster
- Sécurité :
- daemon root à installer sur tous les noeuds de calculs...
......@@ -461,7 +470,7 @@
* Infrastructure Cloud (Container Library, Remote Builder, et Keystore)
* Possibilité d’exécuter des images Docker et OCI
* Support/isolation réseau (plugins CNI / root uniquement)
* Libre et gratuit / Version pro payante
* Libre et gratuit (version CE) / Version pro payante
---
background-image: url(images/singu.png)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment