Partager via


Options de stockage pour un cluster Kubernetes

Cet article compare les fonctionnalités de stockage d’Amazon EKS (Amazon Elastic Kubernetes Service) et d’AKS (Azure Kubernetes Service), puis décrit les options de stockage des données de charge de travail sur AKS.

Remarque

Cet article fait partie d'une série d'articles qui aide les professionnels qui connaissent Amazon EKS à comprendre Azure Kubernetes Service (AKS).

Options de stockage d’Amazon EKS

Dans Amazon EKS, après Kubernetes version 1.11, le cluster dispose d’un StorageClass par défaut appelé gp2 pour les revendications de volumes persistants. Les administrateurs peuvent ajouter des pilotes pour définir des classes de stockage supplémentaires, par exemple :

  • Pilote Amazon EBS CSI sous forme de module complémentaire Amazon EKS
  • Module complémentaire automanagé Amazon EBS CSI
  • Pilote Amazon EFS CSI
  • Pilote Amazon FSx pour Lustre CSI
  • Pilote Amazon FSx pour NetApp ONTAP CSI

En ajoutant des pilotes et des classes de stockage, vous pouvez utiliser des services de stockage tels que :

  • Amazon EBS (Amazon Elastic Block Store), une solution de stockage au niveau des blocs utilisée avec les instances Amazon Elastic Compute Cloud (EC2) pour stocker des données persistantes. Ce service est similaire à Azure Disk Storage, qui dispose de plusieurs unités de stockage comme Standard SSD, Premium SSD ou Ultra Disk Storage, en fonction des performances requises.

  • Amazon EFS (Amazon Elastic File System), qui fournit un accès Network File System aux systèmes de fichiers externes pouvant être partagés entre les instances. La solution Azure équivalente est Azure Files et Azure Files Premium avec à la fois un accès SMB (Server Message Block) 3.0 et un accès NFS.

  • Lustre, un système de fichiers open source couramment utilisé pour le calcul HPC (calcul haute performance). Dans Azure, vous pouvez utiliser Ultra Disk Storage ou Azure HPC Cache pour les charges de travail où la vitesse compte, comme l'apprentissage automatique et le HPC.

  • NetApp ONTAP, stockage partagé ONTAP complètement managé dans AWS (Amazon Web Services). Azure NetApp Files est un service de stockage de fichiers similaire dans Azure basé sur la technologie NetApp.

Options de stockage AKS

Chaque cluster AKS comprend les classes de stockage précréées suivantes par défaut :

  • La classe de stockage par défaut, managed-csi, utilise les disques SSD Standard de Stockage sur disque. SSD Standard est une option de stockage économique, optimisée pour les charges de travail qui nécessitent des performances constantes avec un nombre d’IOPS (opérations d’entrée-sortie par seconde) relativement peu important.
  • La classe managed-csi-premium utilise des disques managés : les disques SSD Premium de Stockage sur disque.
  • La classe azurefile-csi utilise Azure Files pour fournir un accès partagé simultané au même volume de stockage, à l’aide des protocoles SMB ou NFS.
  • La classe azurefile-csi-premium utilise Azure Files Premium pour les partages de fichiers dont les charges de travail sont intensives au niveau de l’IOPS. Azure Files Premium offre une faible latence et un débit élevé grâce au stockage SSD.

Vous pouvez étendre ces options en ajoutant d’autres classes de stockage et en les intégrant à d’autres solutions de stockage disponibles, par exemple :

  • Disque Ultra
  • Azure NetApp Files
  • HPC Cache
  • Serveur NFS
  • Solutions de stockage tierces

Stockage sur disque Azure

Par défaut, un cluster AKS est fourni avec des classes de stockage managed-csi et managed-csi-premium précréées, qui utilisent la fonctionnalité Stockage sur disque. À l’image d’Amazon EBS, ces classes créent un disque managé ou un périphérique en mode bloc attaché au nœud pour permettre l’accès aux pods.

Les classes de disque permettent le provisionnement de volumes statiques et dynamiques. La stratégie de récupération vérifie que le disque est supprimé avec le volume persistant. Vous pouvez étendre le disque en modifiant la revendication du volume persistant.

Ces classes de stockage utilisent le service Azure Managed Disks avec un stockage localement redondant (LRS). LRS signifie que les données ont trois copies synchrones dans un seul lieu physique au sein d’une région primaire Azure. LRS est l’option de réplication la moins chère, mais elle n’offre pas de protection contre une défaillance du centre de données. Pour atténuer ce risque, effectuez des sauvegardes ou des captures instantanées régulières des données de Stockage sur disque à l’aide de solutions telles que Velero ou Sauvegarde Azure, qui peuvent utiliser des technologies de capture instantanée intégrées.

Les deux classes de stockage reposent sur des disques managés et utilisent des disques SSD. Il est important de comprendre les différences entre les disques Standard et Premium :

  • Les disques Standard sont facturés en fonction de leur taille et des transactions de stockage.
  • Les disques Premium sont facturés uniquement en fonction de leur taille, ce qui peut les rendre moins chers pour les charges de travail nécessitant un nombre élevé de transactions.
  • Les disques SSD Premium offrent un débit maximal et un nombre d’IOPS plus élevés, comme indiqué dans cette comparaison.
  • Le Stockage Premium est recommandé pour la plupart des charges de travail de production et de développement.

Si vous utilisez des disques Azure Managed Disks en tant que classe de stockage principale, tenez compte de la référence SKU de machine virtuelle que vous choisissez pour votre cluster Kubernetes. Les machines virtuelles Azure limitent le nombre de disques que vous pouvez attacher, et cette limite varie en fonction de la taille de la machine virtuelle. De plus, dans la mesure où les disques Azure sont montés en tant que ReadWriteOnce, ils ne sont disponibles que pour un seul pod.

Disques Azure Premium SSD v2

Les disques Azure SSD Premium v2 offrent des charges de travail d’entreprise intenses en E/S, une latence de disque d’une taille inférieure à la milliseconde, ainsi qu’un débit et des IOPS élevés. Les performances (capacité, débit et IOPS) des disques SSD Premium v2 peuvent être configurées indépendamment à tout moment, ce qui permet à un plus grand nombre de scénarios d'être rentables tout en répondant aux besoins de performances. Pour plus d’informations sur la configuration d’un nouveau cluster AKS ou d’un cluster existant pour utiliser des disques Azure Premium SSD v2, veuillez consulter la section Utiliser les disques Azure Premium SSD v2 sur Azure Kubernetes Service.

Disque Ultra

Les disques de stockage Ultra correspondent à un niveau de disque managé Azure offrant un débit très important, un nombre élevé d’IOPS et un stockage sur disque à faible latence cohérent pour les machines virtuelles Azure. Les disques de stockage Ultra sont destinés aux charges de travail lourdes sur le plan des données et des transactions. Tout comme d’autres références SKU de Stockage sur disque et Amazon EBS, les disques de stockage Ultra sont montés pod après pod, et ne fournissent pas d’accès simultané.

Utilisez l’indicateur --enable-ultra-ssd pour activer les disques de stockage Ultra sur votre cluster AKS.

Si vous choisissez les disques de stockage Ultra, tenez compte de leurs limitations, et veillez à sélectionner une taille de machine virtuelle compatible. Les disques de stockage Ultra sont disponibles avec la réplication LRS (stockage localement redondant).

Apportez vos propres clés (BYOK)

Azure chiffre toutes les données dans un disque managé au repos. Par défaut, les données sont chiffrées avec des clés managées par Microsoft Pour plus de contrôle sur les clés de chiffrement, vous pouvez fournir des clés gérées par le client à utiliser pour le chiffrement au repos des disques de système d’exploitation et des disques de données pour vos clusters AKS. Pour plus d’informations, consultez la section Apportez vos propres clés (BYOK) avec des disques gérés Azure dans Azure Kubernetes Service (AKS).

Azure Files

La fonctionnalité Stockage sur disque ne permet pas l’accès simultané à un volume. Toutefois, vous pouvez utiliser Azure Files pour vous connecter à l’aide du protocole SMB, puis monter un volume partagé reposant sur le service Stockage Azure. Ce processus permet de disposer d’un stockage de type NAS, à l’image d’Amazon EFS. Comme pour la fonctionnalité Stockage sur disque, il existe deux options :

  • Stockage Standard Azure Files, qui repose sur des lecteurs de disque dur (HDD) classiques.
  • Stockage Premium Azure Files, qui repose sur des disques SSD hautes performances avec partage de fichiers. La taille minimale du partage de fichiers pour le stockage Premium est de 100 Go.

Azure Files propose les options de réplication de compte de stockage suivantes pour protéger vos données en cas de défaillance :

Pour optimiser les coûts d’Azure Files, achetez des réservations de capacité Azure Files.

Stockage de conteneur Azure

Azure Container Storage est un service cloud de gestion, de déploiement et d’orchestration de volumes conçu de manière native pour les conteneurs. Il s’intègre à Kubernetes, ce qui vous permet de provisionner de manière dynamique et automatique des volumes persistants en vue de stocker les données d’applications avec état s’exécutant sur des clusters Kubernetes.

Azure Container Storage utilise les offres Stockage Azure existantes pour le stockage de données effectif et propose une solution d’orchestration et de gestion de volumes spécialement conçue pour les conteneurs. Les options de stockage de support prises en charge incluent :

  • Disques Azure : Contrôle granulaire des SKUs et des configurations de stockage. Ils conviennent aux bases de données de niveau 1 et à usage général.
  • Disques éphémères : Utilisent les ressources de stockage local sur les nœuds AKS (NVMe ou SSD temporaire). Mieux adaptés aux applications sans exigence de durabilité des données ou avec support de réplication de données intégré. AKS découvre le stockage éphémère disponible sur les nœuds AKS et les acquiert pour le déploiement de volumes.
  • Azure Elastic SAN : Ressource entièrement gérée, approvisionnée à la demande. Convient aux bases de données à usage général, aux services de streaming et de messagerie, aux environnements CD/CI et à d’autres charges de travail de niveau 1/niveau 2. Si plusieurs clusters peuvent accéder simultanément à un même SAN, les volumes persistants ne peuvent être attachés qu’à un seul consommateur à la fois.

Jusqu'à présent, la fourniture d'un stockage cloud pour les conteneurs nécessitait l'utilisation de pilotes individuels d'interface de stockage de conteneurs (CSI) pour utiliser des services de stockage destinés aux charges de travail centrées sur l'infrastructure en tant que service (IaaS) et les faire fonctionner pour les conteneurs Cela avait pour effet de créer une surcharge opérationnelle et d’augmenter les risques de rencontrer des problèmes de disponibilité, scalabilité, performances, utilisation et coûts au niveau des applications.

Azure Container Storage est dérivé d’OpenEBS, solution open source offrant des capacités de stockage de conteneurs pour Kubernetes. En proposant une solution d’orchestration de volumes managée via des contrôleurs de stockage basés sur des microservices dans un environnement Kubernetes, Azure Container Storage permet un véritable stockage natif de conteneurs.

Le stockage de conteneurs Azure convient dans les scénarios suivants :

  • Accélérer les initiatives machine virtuelle vers conteneur : Azure Container Storage dévoile la gamme complète d’offres de stockage par blocs Azure qui n’était auparavant accessible qu’aux machines virtuelles et la met à la disposition des conteneurs. Cela inclut un disque éphémère qui fournit une latence extrêmement faible pour les charges de travail telles que Cassandra, ainsi qu’un SAN élastique Azure qui fournit des cibles iSCSI natives et approvisionnées partagées.

  • Simplifier la gestion des volumes avec Kubernetes : En proposant l’orchestration de volumes via le plan de contrôle Kubernetes, Azure Container Storage facilite le déploiement et la gestion de volumes dans Kubernetes, sans avoir besoin de faire la navette entre différents plans de contrôle.

  • Réduire le coût total de possession (TCO) : Améliorez l’efficacité économique en augmentant l’échelle des volumes persistants pris en charge par pod ou par nœud. Réduisez les ressources de stockage nécessaires au provisionnement en partageant dynamiquement les ressources de stockage. Notez que la prise en charge du scale-up pour le pool de stockage lui-même n’est pas assurée.

Le stockage de conteneurs Azure offre les avantages clés suivants :

  • Scale-out rapide des pods avec état : Azure Container Storage monte les volumes persistants via des protocoles de stockage réseau par blocs (NVMe-oF ou iSCSI), ce qui permet d’attacher et de détacher rapidement les volumes persistants. Vous pouvez commencer petit et déployer seulement les ressources nécessaires tout en veillant à ce que vos applications ne soient pas sous-alimentées ou perturbées, que ce soit pendant l’initialisation ou en production. La résilience des applications est améliorée grâce à la regénération (« respawn ») de pods sur le cluster, ce qui exige un déplacement rapide des volumes persistants. À l'aide de protocoles de réseau à distance, Azure Container Storage est étroitement couplé au cycle de vie des pods pour prendre en charge des applications à état hautement résilientes et à grande échelle sur AKS.

  • Niveau de performance amélioré pour les charges de travail avec état : Azure Container Storage autorise un plus haut niveau de performance en lecture et offre des performances en écriture comparables à celles des disques en utilisant NVMe-oF via RDMA. Cela permet aux clients de répondre de façon économique aux exigences de performances de diverses charges de travail de conteneurs (niveau 1, intensives en E/S, usage général, sensibles au débit, développement/test, etc.). Écourtez la durée d’attachement/détachement des volumes persistants et réduisez le temps de basculement des pods.

  • Orchestration des volumes natifs Kubernetes : Créez des pools de stockage et des volumes persistants, capturez des instantanés et gérez l’ensemble du cycle de vie des volumes à l’aide de commandes kubectl sans changer d’ensemble d’outils pour les différentes opérations de plan de contrôle.

Azure NetApp Files

À l’image d’AWS NetApp ONTAP, Azure NetApp Files est un service de stockage de fichiers avec facturation à l’usage, hautes performances, destiné aux entreprises. Azure NetApp Files est complètement managé dans Azure à l’aide des solutions NetApp. Tout comme Azure Files, Azure NetApp Files permet à plusieurs pods de monter un volume. Vous pouvez utiliser Astra Trident, un orchestrateur de stockage dynamique open source pour Kubernetes, afin de configurer votre cluster AKS dans le cadre d’Azure NetApp Files.

Tenez compte des limites de ressources pour Azure NetApp Files. La taille minimale d’un pool de capacités pour Azure NetApp Files est de 4 Tio. Azure NetApp Files est facturé en fonction de la taille provisionnée et non de la capacité utilisée.

Azure HPC Cache

Azure HPC Cache accélère l’accès à vos données pour les tâches HPC, avec toute la scalabilité des solutions cloud. Si vous choisissez cette solution de stockage, veillez à déployer votre cluster AKS dans une région qui prend en charge Azure HPC Cache.

Serveur NFS

La meilleure option pour un accès NFS partagé consiste à utiliser Azure Files ou Azure NetApp Files. Vous pouvez également créer un serveur NFS sur une machine virtuelle Azure qui exporte des volumes.

Sachez que cette option prend uniquement en charge le provisionnement statique. Vous devez provisionner les partages NFS manuellement sur le serveur, mais vous ne pouvez pas le faire automatiquement à partir d’AKS.

Cette solution est basée sur une offre IaaS (infrastructure as a service) au lieu d’une offre PaaS (platform as a service). Vous êtes responsable de la gestion du serveur NFS, notamment des mises à jour de l’OS, de la haute disponibilité, des sauvegardes, de la reprise d’activité après sinistre et de la scalabilité.

Disque de système d’exploitation éphémère

Par défaut, Azure réplique automatiquement le disque du système d’exploitation d’une machine virtuelle dans le Stockage Azure pour éviter toute perte de données lors du déplacement de la machine virtuelle vers un autre hôte. Toutefois, comme les conteneurs ne sont pas conçus pour avoir un état local persistant, ce comportement offre une valeur limitée tout en offrant certains inconvénients. Ces inconvénients incluent, sans toutefois s’y limiter, un approvisionnement de nœuds plus lent et une latence en lecture/écriture plus élevée.

En revanche, les disques de système d’exploitation éphémères sont stockés uniquement sur l’ordinateur hôte, comme un disque temporaire. Avec cette configuration, vous obtenez une latence de lecture/écriture plus faible, ainsi que des mises à l’échelle des nœuds et des mises à niveau de cluster plus rapides.

Notes

Lorsque vous ne demandez pas explicitement de disques managés Azure pour le système d’exploitation, AKS utilise par défaut un système d’exploitation éphémère, si possible, pour une configuration de pool de nœuds donnée.

Pour plus d’informations, consultez l’article suivant :

Solutions tierces

Tout comme Amazon EKS, AKS est une implémentation de Kubernetes, ce qui vous permet d’intégrer des solutions de stockage Kubernetes tierces. Voici quelques exemples de solutions de stockage tierces pour Kubernetes :

  • Rook transforme les systèmes de stockage distribués en services de stockage auto-gérés en automatisant les tâches de l’administrateur de stockage. Rook offre ses services via un opérateur Kubernetes pour chaque fournisseur de stockage.
  • GlusterFS est un système de fichiers réseau scalable, gratuit et open source, qui utilise du matériel standard prêt à l’emploi pour la création de solutions de stockage distribué de grande envergure, destinées aux tâches intensives sur le plan des données et de la bande passante.
  • Ceph fournit un service de stockage unifié fiable et scalable avec des interfaces d’objet, de bloc et de fichier provenant d’un seul cluster créé à partir de composants matériels de base.
  • Le stockage d’objets multicloud MinIO permet aux entreprises de créer une infrastructure de données compatible AWS S3 sur n’importe quel cloud. Ainsi, vous pouvez disposer d’une interface cohérente et portable pour vos données et vos applications.
  • Portworx est une solution de stockage et de gestion des données de bout en bout pour les projets Kubernetes et les initiatives basées sur des conteneurs. Portworx propose un stockage de précision à l’aide de conteneurs, une reprise d’activité après sinistre, une sécurité des données et des migrations multiclouds.
  • Quobyte fournit un stockage de fichiers et d’objets hautes performances que vous pouvez déployer sur n’importe quel serveur ou cloud pour mettre à l’échelle des performances, gérer de grandes quantités de données et simplifier l’administration.
  • Ondat fournit une couche de stockage cohérente sur toutes les plateformes. Vous pouvez exécuter une base de données ou une charge de travail persistante dans un environnement Kubernetes sans avoir à gérer la couche de stockage.

Considérations relatives au stockage Kubernetes

Tenez compte des facteurs suivants quand vous choisissez une solution de stockage pour Amazon EKS ou AKS.

Modes d’accès aux classes de stockage

Dans Kubernetes 1.21 et les versions ultérieures, les classes de stockage AKS et Amazon EKS utilisent uniquement des pilotes CSI (Container Storage Interface) par défaut.

Différents services prennent en charge les classes de stockage ayant différents modes d’accès.

Service ReadWriteOnce ReadOnlyMany ReadWriteMany
Disques Azure X
Azure Files X X X
Azure NetApp Files X X X
Serveur NFS X X X
Azure HPC Cache X X X

Provisionnement dynamique ou statique

Provisionnez dynamiquement les volumes pour réduire la surcharge de gestion liée à la création statique de volumes persistants. Définissez une stratégie de récupération appropriée pour éviter d’avoir des disques inutilisés quand vous supprimez des pods.

Sauvegarde

Choisissez un outil pour sauvegarder les données persistantes. L’outil doit correspondre à votre type de stockage, par exemple les captures instantanées, Sauvegarde Azure, Velero ou Kasten.

Optimisation des coûts

Pour optimiser les coûts d'Azure Storage, utilisez les réservations Azure. Veillez à vérifier les services qui prennent en charge les réservations Azure. Consultez également Gestion des coûts pour un cluster Kubernetes.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteurs principaux :

Autres contributeurs :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes