Stockage persistent sur kubernetes, oui mais lequel?

Salut à tous.

Je n’avais pour le moment pas vraiment besoin de stockage persistent avec mon kubernetes mais cela vient de changer.

Il me faudrait du stockage filesystem pour pouvoir faire un /mount depuis plusieurs pods d’un même service (Essentiellement pour Redis et d’autres micro-services metier).

Avez vous des conseils sur les outils existants, la fiabilités/latence et si ils sont faciles à installer sur le kubernetes managé de Scaleway ?

PS : J’ai posé la question à un employé de Scaleway et voici la réponse :

  • rien d’officiel chez Scaleway mais beaucoup utilisent un NFS, voire un Ceph

Et en regardant cette doc (https://kubernetes.io/fr/docs/concepts/storage/persistent-volumes/), pour faire du WriteMany, j’ai apparement comme choix : GlusterFS, CephFS, Quobyte, NFS et Portworx.

Merci à tous.
De mon côté je me lance dans les lectures et ferai des retours ;p
Bonne journée.
Baptiste.

Je pense en effet que beaucoup font du NFS et du Ceph. De notre coté, nos microservices exploitent S3 don on a pas besoin de volumes persistantes, néanmoins, pour certaines outils tiers sans importance j’ai testé la solution Longhorn de Rancher, cela m’a semblé fonctionner correctement si tu as pas des IO de fou.

1 J'aime

Ha oui c’est vrai, j’avais oublié Longhorn, j’avais vu une présentation à sa sortie, je vais re-regarder.
Merci.

J’aurais dit du bon vieux NFS, et pour Ceph regarde du côté de rook.io qui facilite la gestion (jamais testé)

1 J'aime

Tu veux faire des volumes ou monter directement dans le pod un FS ?
Dans le dernier cas je ne te le conseil pas.

Pour les Volumes tu veu faire du ReadWriteMany.
Et là tu n’a pas 36 possibilités :

  • AzureFile
  • CephFS
  • Glusterfs
  • Quobyte
  • NFS (attention c’est pas super rapide)
  • PortworxVolume

Pour les volumes Kapsule il y a la classe par défaut qui utilise le Block Storage de Scaleway (SBS) mais je ne mense pas que tu puisse faire du ReadWriteMany.

How can I have data persistence on my cluster?
Kapsule is a managed Kubernetes engine. By definition, the nodes of your clusters can be deleted, replaced, or restarted if the applications running on it require it or if a node suddenly stops responding. It means that Kubernetes clusters’ nodes are to be considered stateless. If you require a stateful application, you can use Persistent Volumes. The storageClass for Scaleway Block Storage volumes is set by default, so it does not need to be specified.

Source : https://www.scaleway.com/en/kubernetes-kapsule/

Après tu peu peut-être installer Rook dans kapsule en utilisant du SBS derière mais je n’ai jamais testé.

1 J'aime

Hello, il y a quelques années j’avais utilisé GlusterFS sur K8s avec Heketi. C’était pas mal mais la version de l’époque d’Heketi (v8) n’était pas vraiment sèche. Mais depuis la v9 (avril 2019) ils ont introduit un système d’auto-cleanup vraiment pratique.

Aujourd’hui, rook.io + CEPH semblent plus répandus. Surtout que Redhat a remplacé GlusterFS par CEPH à partir d’Openshift v4…

1 J'aime

Après, j’avais constaté que - si le déploiement n’est pas forcément très très complexe - faire le run d’un système de stockage distribué comme Ceph n’est vraiment pas anodin! ça peut vite devenir très chronophage. Pour que ça tienne la route, il faut prévoir pas mal de choses (PRA, remplacement de noeuds en cas de panne, backups par exemple). Dans certaines boîtes, ils ont une voire plusieurs équipes dédiées. Cela a peut-être changé en deux ans (je n’ai pas fait de stockage depuis), je serai curieux d’avoir vos avis sur la question.

Salut à tous.

Merci pour vos réponses, j’avais en effet noté aussi Rook.io dans la liste à étudier.

Pour l’instant en regardant vite fait les docs, ça à l’air pas très simple d’installer un systeme (je suis dev à la base ;p).
Sauf pour Longhorn qui propose les fichiers tout nickel sur le papier en tout cas.

Mais je vais continuer mes recherches, lectures, tests.

Merci encore et si vous avez des compléments n’hésitez pas ;p

Vous serez combien à gérer le bouzin ?

Bha je suis seul évidemment avec un poste de Dev a la base à faire du dev de l’ops, etc… :wink:
Mais je ne suis pas payé plus.

C’est pour ça qu’il faut que se soit simple et robuste et c’est pour cela que sur gcp, je prenais que du managé et que de ne pas avoir à gérer la persistance des données jusqu’à présent m’allait très bien.

Au final pour Redis, j’ai monté le Redis en mode cluster qui m’évite d’avoir besoin de la persistance car c’est répliqué sur 3 master / 3 replicas Refis. De plus les jobs Redis sont aussi répliqués dans une db managé et on peut donc voir si la tâche et bloqué le client peut relancer la tâche.

Maintient reste à voir si j’ai besoin de persistence pour les metrics logs ou si je peux avoir quelque chose de managé et/ ou connecté à cela.
Puis voir si les devis vont me demander de la persistance autre que de l’object storage qui lui est possible ‘facilement’ chez Scaleway.

Franchement su tu es tout seul et n’a pas l’expérience du stockage, part sur le plus simple, à savoir NFS.

CephFS, à travers Rook ou pas, tu vas te lancer dans quelque chose de beaucoup plus complexe à prendre en main.

La question qu’il faut que tu te poses c’est aussi la question de la sauvegarde. De la réplication de données bête et méchante, ce n’est pas suffisant pour assurer un haut niveau d’engagement sur tes données.

4 J'aime

Je serai de l’avis de Sebastien aussi. Fais au plus simple (peut-être que glusterfs est pas mal ?). J’ai joué un peu avec rook (avec peu d’expérience sur k8s), ça doit prendre un peu de temps pour dompter la bête et j’aimerai pas à avoir à gérer les mises à jour.

2 J'aime

Merci pour vos messages, sur gcp un prestataire m’avait installé un glusterFS et ça n’avait pas l’air très simple à installer.

Cette installation avec GlusterFS date de presque 3 ans du coup je voulais faire un petit tour d’horizon pour voir si il n’y avait pas mieux et plus facile d’installation maintenant.

Je pense que je vais faire un test avec Longhorn pour voir ce que ça vaut et si c’est aussi simple que sur le papier pour l’installation.
Si ce n’est pas concluant re-regarder GlusterFS.
L’inconvénient que je vois dans Longhorn c’est le même qu’un redis en cluster, ça a l’air d’être assez gourmand en ressources system.

A suivre et merci encore.

Question subsidiaire : installez vous votre SSO et votre Prometheus/Grafana sur le même cluster que vos micros-services métiers (apps) ?

Salut,

Pour le monitoring, je privilégie quand cela est possible des outils SaaS comme Newrelic ou Dynatrace, cela permet de réduire la maintenance et de bénéficier d’un monitoring complet en dehors de l’infra.

Sinon avec Prometheus, je fais une integration en remote write histoire de pas avoir à stocker mes données sur le cluster.

Pour le SSO, j’utilise l’intégration LDAP proposée par Rancher.

Pour ce qui est de GlusterFS, l’installation n’est pas compliquée, les performances en NFS ne sont, par contre, pas fulgurante de mémoire, surtout avec beaucoup de petits fichiers.

1 J'aime

@aselkim merci pour ces conseils effectivement j’aurais aimé à la base utiliser un datadog malheureusement ils ne sont pas FR, je vais regarder tes deux solutions pour voir si un des deux est en EU et voir l’intégration du service.

Merci encore.

Les deux ont l’air d’avoir leur qg aux US, ça m’embête de migrer tous les serveurs en FR pour au final envoyer des logs aux US…

1 J'aime

Newrelic propose une infra basée en Europe lorsque tu fais ton inscription, par exemple, ça reste une boite US.

Même chose pour Dynatrace je crois.

Yes pardon, je n’ai pas été très clair : d’envoyer mes logs chez une boîte US :wink:

J’ai un peu regardé les alternatives, je ne vois aucune alternative FR ou EU.
Dommage ;(

oui pas d’alternative sérieuse européenne, je me suis toujours dis que ça ferait un bon business.

1 J'aime

@aselkim on se lance ? :wink:

1 J'aime