Kubernetes stockage persistant est un problème, quelles solutions?

  • Auteur: Gokhan Simsek

  • Traducteur: Tan Lu

Comme les outils Kubernetes de mise en page de conteneurs sont en train de révolutionner le développement d'applications et le mode de déploiement. Avec la montée de l'architecture micro-services, ainsi que l'infrastructure et la logique applicative découpler du point de vue des développeurs, les développeurs de logiciels sont de plus en plus concentrés sur la construction et la livraison de valeur.

Kubernetes abstraite physique de gestion de la machine. Utilisez Kubernetes, vous pouvez obtenir la quantité requise de mémoire et de puissance de calcul par la description, sans se soucier de l'infrastructure sous-jacente.

Dans la gestion de miroir Docker, Kubernetes permet également l'application de devenir portable. En utilisant Kubernetes développer l'architecture de conteneurs, ils peuvent être déployés partout - clouds publics, les nuages hybrides, locaux - pas besoin d'apporter des modifications au code sous-jacent.

Bien que Kubernetes très utile à bien des égards, comme des capacités d'évolutivité, de portabilité et de gestion, mais il ne supporte pas l'état de stockage. La quasi-totalité des applications de production sont stateful, qui ont besoin d'une sorte de stockage externe.

l'architecture Kubernetes est en constante évolution. Conteneur de création et de destruction, selon les spécifications de la charge et les développeurs. Conteneur et groupes de conteneurs peuvent se auto-réparation et de réplication. Essentiellement, leur cycle de vie est courte.

Cependant, une solution de stockage persistante qui ne peuvent pas se permettre un tel comportement dynamique. Le stockage persistant ne peut pas être lié aux règles créées dynamiquement et détruites.

Lorsque les applications stateful doivent être déployées dans d'autres infrastructures peut être un autre fournisseur de nuage, tandis que sur un modèle local ou hybride, ils font face à des défis en termes de portabilité. Les solutions de stockage persistants seront liés à un fournisseur de nuage particulier.

En outre, le stockage en nuage de territoire des applications natives ne sont pas faciles à comprendre. la terminologie de stockage Kubernetes peut être source de confusion, parce que la plupart des termes ont le sens des changements complexes et subtils. En outre, avant de prendre une décision, les développeurs doivent prendre en compte un certain nombre d'options, y compris Kubernetes natifs, frameworks open source, ou d'un service d'hébergement payés.

Sur le territoire CNCF suivant peut être vu dans les solutions de stockage en nuage natif répertoriés:

Première pensée pourrait être déployée dans la base de données Kubernetes: choisir la base de données dont vous avez besoin des solutions à conteneurisation et exécuter sur un disque local, puis une autre que la charge de travail déployée dans un cluster. Cependant, en raison des propriétés intrinsèques de la base de données, cette méthode est particulièrement bonne.

Le conteneur est construit sur la base des principes des apatrides. Cela rend très facile à étirer le récipient. Il n'y a pas besoin d'enregistrer et de données Migrer, en général, n'a pas besoin de traiter groupe très dense de disque lit et écrit.

Utilisez la base de données, vous devez enregistrer l'état. Si la base de données est déployée sur le conteneur de cluster, sans migration ou fréquente étirement, le stockage de données réelles fonctionnera. Idéalement, le conteneur et la base de données en utilisant les données dans le même conteneur.

Cela ne veut pas dire que le déploiement de la base de données est une mauvaise idée dans le récipient - dans certains cas d'utilisation, cette approche peut être suffisante. Dans un environnement de test, ou la quantité de données qui ne nécessitent pas la tâche au niveau de la production, en raison de la petite taille des données enregistrées, de sorte que la base de données de cluster pourrait être logique.

Dans la production, les développeurs comptent souvent sur le stockage externe.

Kubernetes comment communiquer avec le stockage? Il utilise l'interface de plan de contrôle. Les Kubernetes d'interface de mémoire externe associée. Les solutions de stockage externes et connexion enfichable Kubernetes est appelé le rouleau. stockage Plug-volume peut être extrait et donné la portabilité de stockage.

Auparavant, l'utilisation de la prise de volume de base Kubernetes de code de base, des liens, compiler et publier. Cela limite considérablement les développeurs de flexibilité, et apporte les coûts d'entretien supplémentaires. Ajouter une nouvelle option de stockage Kubernetes besoin de changer la base de code.

En introduisant CSI et FlexVolume, les plug-ins peuvent être déployés sur un volume de cluster, sans modifier la base de code.

Kubernetes natif et le stockage

Comment Kubernetes stockage de traitement natif? Kubernetes lui-même fournit une solution de gestion de stockage: une option temporaire, les volumes de stockage persistant, l'état persistant des volumes de stockage, classe de stockage et jeu de réplicas stateful. Cela peut être source de confusion.

volume de stockage persistant (PV) est une unité de stockage configurée par l'administrateur. Ils sont indépendants de tout groupe de conteneurs, de sorte qu'ils se débarrasser du court cycle de vie du groupe de conteneurs.

D'autre part, l'état des volumes de stockage persistant (PVC) est une demande à la mémoire, à savoir PVs. En utilisant le PVC, le stockage peut être lié à un noeud spécifique, le nud sera plus disponible.

Il existe deux méthodes de stockage possibles: statique et dynamique.

configuration statique, l'administrateur avant que la demande réelle pour eux de penser à un groupe de récipients peut être nécessaire de fournir des PV, et par ESV explicitement spécifiés, ceux-ci se lient au conteneur PV groupe spécifié manuellement.

En fait, la structure portable PV Kubernetes défini de manière statique incompatible, car la mémoire est utilisée peut dépendre de l'environnement, par exemple, AWS EBS ou GCE disque persistant. besoins de liaison manuelle Modifier le fichier YAML pour stocker un pointeur vers la solution d'un fournisseur spécifique.

En examinant la façon de développer les ressources humaines, la configuration statique est également contraire à la façon de penser de Kubernetes: CPU et de la mémoire non été attribuée précédemment et lié à un navire de groupe ou d'un conteneur. Ils sont accordés dynamiques.

classe de stockage de configuration dynamique terminée. Administrateur de cluster sans avant de créer manuellement PV. Ils créent place plusieurs fichiers de configuration de stockage, même modèle. Lorsqu'un développeur crée PVC, selon les exigences de la demande, ce qui crée un modèle sur demande, et affecter au groupe de conteneurs.

Ceci est un stockage externe est généralement comment utiliser Kubernetes natif réalisé les grandes lignes d'un processus. Cependant, il y a beaucoup d'autres options à considérer.

CSI - Interface de stockage de conteneurs

Avant de continuer, je voudrais vous présenter une interface de stockage de conteneurs (CSI). CSI est une uvre unique créée par CNCF objectifs du groupe de travail de stockage pour définir le stockage Interface conteneurs standard, le pilote de stockage peut fonctionner sur tout navire organisateur.

spécification CSI est applicable à Kubernetes, et un grand nombre de plug-ins disponibles pour les pilotes déployés sur le cluster Kubernetes. Les développeurs peuvent utiliser le type de volume d'accès CSI CSI volumes de stockage compatibles pilote ouvert sur Kubernetes.

Avec l'introduction de CSI, le stockage peut être considéré comme un autre navire de charge de travail, et déployé sur le cluster Kubernetes.

Les projets open source

outils technologiques indigènes cloud autour, et projettent une augmentation substantielle. Comme l'un de l'environnement de production, le plus important problème, il y a un certain nombre de projets open source pour résoudre les problèmes de stockage sur l'architecture native nuage.

Les plus populaires sont les articles stockés sur Ceph et Rook.

CEPH est une gestion dynamique, évolutive horizontalement cluster de stockage distribué. Ceph fournit une abstraction logique des ressources de stockage. Il est conçu sans point de défaillance unique, l'autogestion et à base de logiciels. Ceph tout en assurant le même cluster de stockage de blocs et objets d'interface du système de fichiers.

l'architecture CEPH est complexe, il existe de nombreuses technologies sous-jacentes, telles que RADOS, librados, RADOSGW, RDB, algorithme de CRUSH, et un moniteur, le MDS OSD et d'autres composants. CEPH est un cluster de stockage distribué, ne nécessite pas une étude approfondie de la structure du corps, la clé est qu'il est un cluster de stockage distribué, vous pouvez obtenir plus facilement l'évolutivité, éliminer les points de défaillance, sans sacrifier la performance et offre objets d'accès de stockage unifié, bloc et fichier.

Bien sûr, Ceph a été adapté à l'environnement natif nuage. clusters Ceph peuvent être déployées dans une variété de façons, comme l'utilisation Ansible. PVC et peut être déployé à l'aide de l'interface CSI pour accéder au cluster de clusters Kubernetes Ceph.

Un autre projet intéressant et populaire est Rook, un outil visant à l'intégration Kubernetes et Ceph - calcul et le stockage dans un cluster.

Rook est un organisateur de stockage en nuage natif. Il étend Kubernetes. Rook va essentiellement permettre CEPH dans le récipient, et fournit une logique de gestion de cluster pour exécuter de manière fiable sur Ceph Kubernetes. Rook déploiement automatisé, guide, configuration, mise à l'échelle, l'équilibrage de charge, qui est, les besoins d'administrateur de cluster à faire.

Rook permettent le déploiement d'un cluster par fichier YAML Ceph, tout comme Kubernetes. Ce fichier est utilisé en tant qu'administrateur de cluster déclaration de haut niveau contenu souhaité dans le cluster. Rook groupe intégré, et a commencé à activement surveillée. acte de Rook comme personnel d'exploitation et d'entretien ou le contrôleur pour veiller à ce que la déclaration de fichier YAML d'état désiré peut être garantie. run Rook dans un cycle coordonné, observer l'action d'état et prendre en fonction de la différence détectée.

Rook ne possède pas un état persistant, il n'a pas besoin d'être géré. Il est vraiment basé sur le principe Kubernetes construit.

Rook combinera Ceph et Kubernetes ensemble, il est l'une des solutions de stockage primaire nuage le plus populaire, avec près de 4000 étoiles, 16,3 millions de téléchargements et plus de 100 collaborateurs sur Github.

CNCF accepté que les premiers projets de stockage, Rook a récemment entré dans la phase d'incubation.

Pour tout problème avec l'application, l'identification des besoins, la conception du système et sélectionnez l'outil approprié est très important. stockage Cloud environnement natif ne fait pas exception. Bien que le problème est très complexe, mais il y a encore de nombreux outils et méthodes. Alors que le développement natif nuage du monde, la nouvelle solution émergera sans doute.

La loi de Moore AI et le développement accéléré du ralentissement affectent la conception de eFPGA 7nm?
Précédent
Force améliorer de façon constante la version d'essai de Harvard H6 Coupe Red Label
Prochain
Gloire du Roi: Une robe de viande Ke vu encore? 1 coup 5 ne sont pas des conseils, jouer Croustillant encore Mito
Nokia expérience site X6: Xiaolong 636+ écran en forme, pour seulement 1299 yuans
Pig feed a commencé par New Hope Group veux d'abord faire est l'usine électronique
Lien complet de suivi: Aperçu du programme et comparaison
Patta 2017 automne et en hiver nouvelles Stills avec parapluie d'impression de l'argent! rue Runaway apporte climax visuel!
Jimmy Lin a combattu dans les cercles de jeu, JJ: Mon ordinateur plus cher que votre voiture
« La curiosité des enfants ours poussera pour les femmes enceintes car problème de l'éducation familiale de l'avortement à la fin qui a mal tourné?
carte de fleur mobile application ouverte! Cependant, pour passer du temps geler le montant de 576 yuans chant
R1 expérience des noix pour commencer: Il peut être l'histoire la plus équilibrée Smartisan phare
Hanami est le temps | aux États-Unis se sont tournés une mer du centre-ville de fleur de canola
Syncd- open source des outils de déploiement automatisé
CIKM AnalytiCup 2018 programme de championnat est sorti, ils ont construit un modèle pour voir l'astuce