Aller au contenu
  1. Docs/
  2. K3s Kubernetes/

Design goal

·Temps de lecture : 2 minutes· loading · loading · ·
K3s Kubernetes Ansible Raspberry Pi Homelab SSH Automation Cluster Infra-as-Code
ksh2177
Auteur
ksh2177
Ingénieur DevOps passionné par l’automatisation, la fiabilité et le design système.
Table des matières

📝 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).

Architecture du Cluster
Architecture du Cluster

🚨 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.

Articles connexes

Conf noeuds
·Temps de lecture : 4 minutes· loading · loading
K3s Kubernetes Ansible Raspberry Pi Homelab SSH Inventory Automation DevOps
Préparer les nœuds Raspberry Pi pour le cluster K3s : connectivité, SSH sans mot de passe, configuration d’Ansible et inventaire dynamique.
Noeuds
·Temps de lecture : 6 minutes· loading · loading
K3s Kubernetes DietPi Raspberry Pi Homelab Automation Headless SSH OS Boot
Installation et configuration automatisée de DietPi sur Raspberry Pi : headless boot, firmware, SSH, IP statique et premiers réglages système.
Matériel
·Temps de lecture : 2 minutes· loading · loading
K3s Kubernetes Raspberry Pi Homelab Hardware Cluster Storage Network
Liste complète du matériel utilisé pour construire un cluster K3s sur Raspberry Pi : compute, stockage, réseau et tests de performance.
Mentions légales
·Temps de lecture : 2 minutes· loading · loading
📄 Mentions légales # 👤 1. Éditeur du site # Ce site est édité à titre personnel et non commercial par :