Skip to main content
  1. Docs/
  2. K3s Kubernetes/

Design goal

·2 mins· loading · loading · ·
K3s Kubernetes
Blowfish
Author
Blowfish
A powerful, lightweight theme for Hugo.
Table of Contents

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.

Related

Matériel
·2 mins· loading · loading
K3s Kubernetes
Résumé de l’article Matériel
Noeuds
·6 mins· loading · loading
K3s Kubernetes
Résumé de l’article Noeuds
Argocd
·8 mins· loading · loading
Devops K3s Kubernetes ArgoCD
Premiers pas avec ArgoCD et déploiement d’une App
Conf noeuds
·4 mins· loading · loading
K3s Kubernetes
Résumé de l’article Conf noeuds
Docker registry setup
·11 mins· loading · loading
K3s Kubernetes
Résumé de l’article Docker registry setup
Docker setup
·2 mins· loading · loading
K3s Kubernetes
Résumé de l’article Docker setup
Helm arkade
·2 mins· loading · loading
K3s Kubernetes
Résumé de l’article Helm arkade
Kube install
·4 mins· loading · loading
K3s Kubernetes
Résumé de l’article Kube install
Network settings
·4 mins· loading · loading
K3s Kubernetes
Résumé de l’article Network settings