📝 Objectifs de conception#
Je reviendrai sur ce sujet plus tard, mais à ma connaissance, il n’existe pas de consensus sur l’apparence exacte d’un cluster Kubernetes, ni sur ce qui devrait se trouver à l’extérieur, comme les équilibreurs de charge ou le stockage. Cependant, si vous utilisez OpenShift officiel de Red Hat, vous avez prédéfini à peu près tout. Considérez donc toute cette configuration comme l’une des nombreuses versions. Mon objectif est de contenir autant de choses que possible dans un seul cluster.
🎯 Objectifs#
Gardez tout à l’intérieur du cluster, essayez d’éviter autant que possible les composants externes.
Utiliser un système d’exploitation 64 bits – Dans notre cas, il s’agit de DietPi (je suis passé d’Ubuntu, il est plus petit et beaucoup plus facile à démarrer à partir d’un seul fichier au premier démarrage). Je voulais arm64 car les solutions de stockage pour Kubernetes ne prennent pas en charge arm32 (plus d’informations à ce sujet plus tard).
Utilisez le stockage en blocs distribué pour le stockage persistant des pods.
Terminez avec la plateforme FaaS (Function as a Service) pour Python (et d’autres langages).

🚨 Haute disponibilité (Problème)#
À l’origine, j’avais 3 nœuds de contrôle, mais j’ai décidé de n’en utiliser qu’un seul. Après quelques tests, j’ai rencontré de sérieux problèmes de performances avec la synchronisation ETCD dans les nouvelles versions de K3s. Peut-être qu’il serait préférable d’utiliser une base de données externe, mais cela nécessiterait des dépendances externes. Un seul nœud de contrôle devra donc fonctionner, mais il s’agit d’un point de défaillance unique pour nous.
🗃️ Problèmes de ressources#
Un autre point que l’on oublie souvent de discuter est la limitation des ressources. Vous devez garder à l’esprit que les pods nécessitent de l’espace disque pour exister. Oui, ils existent temporairement sur des nœuds de travail, sans être liés à un serveur spécifique. Pourtant, ils consomment de l’espace. Plus vous exécutez de pods, plus vous aurez besoin d’espace. Même chose pour la RAM. Si vous avez des pods qui consomment plus de RAM que les nœuds de travail, il se peut qu’ils ne fonctionnent pas du tout… Gardez cela à l’esprit lors de la conception de votre cluster/applications. Assurez-vous que les travailleurs disposent de suffisamment de ressources. Les serveurs de contrôle peuvent être aussi simples que possible car ils ne font pas grand-chose, à part garder les travailleurs sous contrôle.