AMA Kubernetes - le cluster du futur!

Beaucoup des raisons du pourquoi sont listées ici sur le pad du reboot de libre.sh.

Mais pour reprendre les grandes lignes:

Pour faire court, leur système est très bien pensé, et c’est agréable de développer son infrastructure au-dessus.

Si vous voulez commencer avec, je vous recommande cet outils - hetzner-kube.

Si j’ai du temps, je ferai une vidéo de comment installer kubernetes sur hetzner (en français :slight_smile: ).

Si vous voulez rejoindre notre chat.

Je suis en train de monter un cluster de staging que je partage avec plaisir.

Et je réponds à toutes vos questions ici!

Pour être honnête, pour un débutant, c’est un peu difficile, mais je pense que le jeu en vaut la chandelle, et surtout, c’est des compétences qui ne sont pas perdues… Si vous voulez travailler dans ce domaines, des petites entreprises sont fortement intéressées!

Merci pour ta réponse. je viens de prendre le temps de lire le pad concernant le reboot je suis ok avec l’idée d’utiliser les standards de l’industrie et la vision de l’infra as code (ou déclarative). docker est un bon candidat, j’ai juste du mal à savoir si investir directement dans kubernetes vaut le cout.

Le ticket d’entrée de kubernetes est pas mal haut, maintenant de voir qu’indieHosters se lance est un bon signe que la solution vaut certainement l’investissement.

Maintenant il y a l’investissement tech, mais il faut aussi pouvoir investir financièrement dans du matos (achat ou location) et c’est pas forcément dispo pour l’ensemble des chatons (ou chatons en devenir). Idem pour investir du temps quand on est pas fulltime dans le hosting de service.

ça fait un an que je bosse sur kubernetes, du coup, je suis payé pour apprendre, et oui ça prends du temps à maîtriser. Mais si les personnes sont motivées, c’est comme tout! Mais je recommande d’avoir de bonnes bases linux et docker pour commencer. Ensuite, lire de la doc, souvent, et du code aussi! J’adore lire la doc de A à Z des logiciels que j’utilise, et dernièrement, je commence à lire du code, genre Nextcloud ou hetzner-kube.

Avec libre.sh on ne se lance que maintenant, car en gros, c’est possible que grace à:

Pour le prix du matos, avec hetzner-kube, tu peux avoir un cluster sympas pour 10€ par mois, je pense que c’est raisonnable :stuck_out_tongue: .

Je suis sysadmin GNU/Linux donc pour les bases GNU/Linux c’est pas le pire. J’utilise docker (c’est pas encore dans la philosophie de la boîte qui m’occupe) à titre privé depuis une petite année (j’ai commencé après avoir vu votre présentation au FOSDEM, merci à vous). J’ai pas peur de lire de la doc et du code :slight_smile:

VPN entre les machines? les machines de ton cluster, la je vois pas pourquoi, il y a certainement un truc qui me manque? kubernetes n’encapsule pas le trafic pour le faire transiter de façon transparente entre les nœuds de ton cluster? Il faut des composants en + ? Je n’ai pas le bagage mais merci pour les liens. Je vais gratter un peu +.

Je connais mal l’offre de hetzner… mais bon j’imagine que tu parles alors de solution cloud/vps. OVH, hetzner ou DigitalOcean… C’est le même ? Ou peux-tu me dire pourquoi vous avez décidé de choisir hetzner? La localisation de leurs DC a influencé votre choix?

j’oublie oui 10€ c’est pas insurmontable. Mais bon c’est pas toujours facile de sortir 10€ de son portefeuille pour expérimenter

On va avoir un cluster de staging, du coup, tu pourras tester gratos.
Et sinon, fais comme moi, tu montes le cluster, tu testes des trucs, et tu détruis le cluster! Ça coûte presque rien comme ça!

Si il le fait, mais comme c’est du cloud public, ben les paquets sont en clair… Du coup, il faut une surcouche VPN par dessus.

Oui c’est la même, on a choisit hetzner car c’est le moins cher, et ils viennent de lancer une offre cloud avec une API sympas et vraiment peu cher!

Ok je note la proposition. Maintenant je souhaite aussi assembler les briques dans mon coin pour bien comprendre la solution que j’utilise.

Zut c’est pas cool le manque de chiffrement par défaut.

Ok merci pour les informations.

C’est prévu pour des environements contrôlés en général, genre dans ton datacenter, avec tes switchs.

Oui je sais je remonte un très vieux sujet, mais le but était de ne pas forcément en créer un nouveau alors qu’il y a déjà certains éléments dans celui-ci.

Je vais probablement avoir à gérer dans le futur une infra à base de kubernetes et je suis à la recherche de vos retours d’expérience, de conseils pour les formations car quand j’ai fait une recherche on trouve vraiment de tout et difficile de choisir.

Mais également de savoir si avec 3 petits serveur chez moi, je peux me monter un environnement de tests justement pour expérimenter ou est-ce qu’il vaut utiliser une solution comme hetzner-kube si cela est toujours valable aujourd’hui ou autre similaire ?

Merci d’avance de vos conseils et retour.

1 « J'aime »

Hello @ManchotManosquin,

Si tu veux te faire la main sur kube depuis ton poste, rien de plus simple : installe Docker Desktop et depuis le dashboard, tu peux activer Kubernetes.

Après, la montée en compétence est très longue, c’est beaucoup de nouvelles notions à apprendre, mais le jeu en vaut la chandelle.

Je te conseille de tester en déployant un simple pod, tu vas déjà découvrir les notions de Deployment, Service, Ingress, etc…

Après dans un second temps, tu peux regarder Kustomize, Helm, pour templatiser tes applications kubernetes.

Dans un troisième temps, tu vas vouloir trouver des solutions pour faire de l’infra As Code. Perso je suis un fervent partisan de la méthodologie gitops, les solutions les plus connues sont fluxcd et argocd.

Bon courage !

1 « J'aime »

Bonjour @tms

Merci pour ce retour, je ne pensais pas que déployer docker desktop suffisait, je vais regarder de ce pas.

J’ai vu qu’il y avait effectivement beaucoup d’élément et de notion à apprendre, il faut de toute façon que je m’y mette et cela m’intéresse.

est-ce qu’il y a des tutos, formations ou autre conseillé plus que d’autre car dès que l’on fait une recherche on trouve bcp de chose ?

Dans tous les cas je vais effectivement déjà essayer de faire dans l’ordre des choses comme tu le mentionne.

Pour information, j’ai un peu chercher et déjà la documentation de base donne beaucoup d’information Getting started | Kubernetes

Mais j’ai aussi trouvé cette formation gratuite fait par la LinuxFoundation qui permet déjà de faire la prise en main et les premieres notions avec aussi des outils tel que MiniKube qui permet de se créer des environnements de tests facilement https://training.linuxfoundation.org/training/introduction-to-kubernetes/

1 « J'aime »

bonjour!

Est-ce que in fine, tu veux utiliser tes machines ou des machines d’un fournisseur?

Nous avons une formation en ligne sur https://k8s.libre.sh

Et si tu as des questions, tu peux venir sur notre matrix:

Et nous avons aussi un rdv mensuel le premier mardi du mois.

Une bonne soiree!

Bonjour Pierre et les autres CHATONS,

Je viens de découvrir ce thread et je me permets de le relancer, comme il me semble s’agir d’un sujet de grand intérêt pour les hébergeurs alternatifs qui souhaitent adapter leur infrastructure à une forte charge.

En 2021, nous avons testé Kubernetes pour voir si cette solution était adaptée à nos besoins d’hébergeurs CHATONS. L’idée d’avoir une infrastructure logicielle qui s’adapte en fonction de ses ressources pour parvenir à un état donné me semble particulièrement séduisante et pertinente, en particulier pour fournir des services en haute disponibilité.

Seulement, voilà notre infrastructure actuelle :

  • une machine principale, VPS à 8 vCPU et 8GB RAM ;
  • une machine de stockage, VPS à 2 vCPU et 2GB RAM ;
  • une machine de backup/monitoring, VPS à 2 vCPU et 2GB RAM.

On utilise Docker pour gérer les services installés sur ces trois machines.

Comme vous pouvez le constater, on aime bien « faire beaucoup avec peu », même si c’est parfois très contraignant. À l’instar de Deux Fleurs, on utilise plutôt des machines peu coûteuses et peu puissantes, quitte à en avoir plus.
À terme, pour « scayler », on partirait plutôt sur un ensemble de machines de 4 à 16 Go de RAM plutôt que quelques serveurs en rack à 64+ Go de RAM.

Kubernetes ne me semble malheureusement pas adapté à cet usage. Pour tester, nous avons effectué plusieurs tests sur une machine seule à 4GB de RAM :

  1. D’abord en installant la version complète de Kubernetes et en la démarrant (en tant que master node) : le logiciel a pris toute la RAM et tout le CPU, et semble avoir crash assez vite car il n’arrivait pas à interagir assez rapidement avec son registre (etcd), la latence augmentait progressivement en quelques minutes. Pour rappel : c’était un test à vide, sans aucune application installée dessus.
  2. Ensuite, en installant la version « allégée » k3s en master node également, le logiciel a pompé 1GB de RAM dès son démarrage, puis utilisait 25% à 40% du CPU de manière constante, toujours à vide.
    • Le démarrage de petits services (nginx/traefik) prenait plusieurs minutes.
  3. (On n’a pas testé microk8s car le logiciel semble impossible à utiliser sans installer snap.)

Je ne comprends pas pourquoi le logiciel a besoin d’autant de RAM et de CPU alors qu’il ne fait strictement rien. En comparaison, Docker pompe tout au plus 50 MB de RAM à vide (containerd et dockerd additionnés), et quasiment pas de CPU.

Pour cet usage, on s’orienterait plutôt vers Docker Swarm pour cette raison. On a encore besoin de tester sa consommation et ses performances, mais son usage me semble plus pertinent par rapport à notre infrastructure plutôt que cette usine à gaz que représente Kubernetes, qui semble plutôt fait pour tourner sur des machines de très grande taille où l’on se soucie peu des ressources disponibles.

Comment envisageriez-vous de faire tourner Kubernetes sur une machine de petite taille ? Peut-être qu’il est possible de modifier sa configuration par défaut pour l’adapter à notre toute petite infrastructure ? Ou alors, considérez-vous que faire tourner une infrastructure sur des petites machines est une idée incongrue ?

Bonne soirée :slight_smile:

~ neil

2 « J'aime »

Pas swarm :slight_smile: @tedomum recompile k8s pour des petites machines, faudrait en discuter avec elleux.

ce que tu racontes est assez bizarre… sur 4GB de ram, ça devrait passer quand meme, large meme, et avec k3s encore plus.

Regarde les graphs de notre cluster principal:


C’est le graph agrégé des 3 masters (3 VMs), pour un cluster d’environ 10 noeuds, et genre 200 applications… enfin, plus de 600 containers qui tournent quoi. Et nous sommes en approche assez naive, pas grand chose d’optimisé.

1 « J'aime »

Essaye avec kind peut-être, juste de le lancer a vide et regarder l’empreinte cpu/ram. J’ai un kind qui tourne avec peu de choses, j’essaye de regarder demain si j’y pense.

Merci pour ces infos détaillées.

À vrai dire, nous avons réalisé ces tests il y a deux ans, peut-être que cela vaudrait d’y consacrer du temps à nouveau de notre côté.
J’ai vu passer le projet Hepto de TeDomum, c’est effectivement une nouvelle piste que nous pourrions expérimenter.
Merci de tes conseils !

1 « J'aime »

Si jamais, ça se passe là le dév de hepto, le packaging Kube de Tedomum : #hepto:tedomum.net (matrix). Kaiyou, qui lead le développement, communique beaucoup sur l’avancement du projet.

Je suis le projet de loin, donc dur de vous dire exactement où ils en sont, mais ils ont déjà un truc qui tourne sur des clusters de test, et c’est prévu de passer à des tests plus typé production. Par rapport à K3S ou Kube, il y a une vraie volonté d’aller dans le fond du code de K8S. Par exemple récemment Kaiyou était embêté car chaque pod avait un overhead de 30Mo en RAM. Et bien en désactivant des trucs (« sans les cloud providers on tombe de 20Mo à 10Mo » ?!), ils ont descendus la conso. Et ils ont aussi sorti pprof pour voir où le reste était pris. C’est pour vous donner un petit aperçu de leur détermination x)

De ma compréhension, K3S c’est un repackaging un peu à l’arrache de Kube dans un binaire auto-extractible et sans etcd. Là où avec Hepto il y a vraiment la volonté d’avoir un seul binaire Go, cohérent, et très épuré de Kubernetes, avec pas mal de patchs.

Après Kube, c’est basé sur des boucles de contrôle (est-ce qu’il y a toujours le bon nombre de pod, est-ce que telle ou telle ressource est toujours là et bien configurée) et des abstractions un peu partout (sur ton réseau, sur ton stockage, etc.), donc de base ça va consommer plus qu’un déploiement linux basique. Ya qu’à voir les logs qui sortent en permanence.

Le deuxième point que je vois ce sont les applicatifs, la plupart sont pas vraiment conçus pour tirer pleinement parti d’un environnement à la Kube. La solution qui a été trouvé par le collectif CHATONS c’est de spawn une instance du logiciel par entité utilisatrice (un nextcloud par association par exemple) mais c’est pas très utile si tu veux de la haute dispo ou du passage à l’échelle.

(Vive Nomad même si ça répond pas aux critiques précédentes <3)

3 « J'aime »

Sur un kind, un tout petit peu utilisé, je lis:

  • kube-api-server: 523M et 5% de cpu
  • kube-controller-manager: 86M et 2%
  • kubelet: 77M et 3.5%
  • etcd: 73M et 3.4%

Ce kind tourne sur une VM et intéragit avec un cloud provider, en fait il est cluster manager avec cluster API :slight_smile:

Donc oui, cela consomme un peu, c’est vrai, mais quand tu dois manager une dizaine de nœuds et que tu arrives à une utilisation du cpu d’environ 50% par nœuds, je pense que le jeu en vaut la chandelle.

1 « J'aime »

Et derniere chose, on se reunit tous les premiers mardi du mois à 16H sur notre salon matrix, donc cette aprem!

Le moment parfait pour echanger sur k8s :slight_smile: