Aujourd’hui, la quasi-totalité de Datadog tourne sur Kubernetes, cependant nous avons longtemps eu besoin d’instances dédiées à la création d’images Docker en dehors de Kubernetes.
Nous avons récemment migré la création d’images pour nos conteneurs vers Kubernetes et le chemin pour y arriver fut instructif ! Le principal défi pour créer des images Docker dans Kubernetes est de le faire sans privilèges.
Dans cette présentation, nous expliquerons pourquoi nous avons choisi d’utiliser Buildkit en mode rootless. Nous décrirons l’architecture que nous avons fini par utiliser, ainsi que les défis auxquels nous avons été confrontés. La création d’images de conteneurs avec Buildkit en mode rootless a fonctionné sans problème pour plus de 90 % de nos images, mais pour les 10 % restants, nous avons rencontré des problèmes complexes et intéressants.
Nous allons plonger dans ces problèmes et expliquer en détail comment la création d’images Docker dans l’espace utilisateur fonctionne et pourquoi elle se comporte parfois différemment.
Nous expliquerons également comment nous avons résolu ces problèmes en collaboration avec la communauté.