Partager via


Considérations relatives au stockage pour Azure Kubernetes Service (AKS)

Cet article explique comment choisir et implémenter les options de stockage les plus efficaces pour vos charges de travail Azure Kubernetes Service (AKS). La sélection de la solution de stockage appropriée est essentielle pour obtenir des performances d’application optimales, la fiabilité et l’efficacité des coûts dans votre environnement Kubernetes.

Le service Azure Kubernetes prend en charge à la fois les charges de travail sans état et avec état. Lors du déploiement d’applications avec état, vous avez besoin de solutions de stockage appropriées pour maintenir l’état de l’application. AKS s’intègre à plusieurs options de stockage natives, notamment les bases de données managées, les disques (stockage de blocs), les fichiers et le stockage d’objets blob (objet). Chaque option fournit différentes caractéristiques de performances, garanties de disponibilité et structures de coûts pour répondre aux différentes exigences de charge de travail.

Sélectionner le service de stockage approprié

Le choix de la solution de stockage appropriée pour vos charges de travail AKS a un impact sur les performances, la fiabilité et l’efficacité des coûts. Utilisez ces instructions pour sélectionner le service de stockage approprié en fonction de vos besoins en données :

Type de données Service de stockage recommandé Quand utiliser ce service
Données structurées Bases de données managées (Azure SQL, Azure Database pour MySQL, Azure Database pour PostgreSQL, Azure Cosmos DB) Pour les données relationnelles ou NoSQL nécessitant une haute disponibilité intégrée, des sauvegardes automatiques et une scalabilité sans gérer l’infrastructure sous-jacente
Données non structurées Stockage Blob Azure Pour de grands volumes de données d’objet, tels que des fichiers multimédias, des documents et des journaux, qui nécessitent un accès HTTP/REST via des SDK, le protocole NFS ou BlobFuse.
Données de fichiers partagés (hautes performances) Azure NetApp Files ou Azure Files Premium Pour l’accès aux fichiers partagés avec une latence de sous-milliseconde (Azure NetApp Files) ou des exigences cohérentes en millisecondes à un chiffre (Azure Files Premium)
Données de configuration partagées Azure Files Standard Pour les fichiers de configuration, l’état de l’application partagée et d’autres données avec des exigences de performances modérées
Charges de travail de base de données et transactionnelles Disques managés Azure (SSD Premium, SSD Premium v2, Disque Ultra) Pour les applications nécessitant la persistance qui demandent un stockage de blocs dédié à hautes performances avec des E/S (Entrées/Sorties) par seconde et des garanties de débit spécifiques
Données éphémères et temporaires Disques éphémères Pour les données temporaires qui ne doivent pas être conservées entre les redémarrages d'un pod ou d'un nœud.

Avant de prendre votre décision finale de stockage, évaluez les exigences de performances par le biais de tests de preuve de concept avec des charges de travail réalistes. N’oubliez pas que tout le trafic de stockage dans AKS transite sur le réseau. Assurez-vous que vos nœuds disposent d’une bande passante réseau suffisante pour gérer le trafic d’application et de stockage.

Considérations relatives à la conception

Les considérations suivantes concernent la conception du stockage pour AKS. Déterminez où le stockage est requis dans votre environnement AKS et déterminez la meilleure solution pour chaque exigence.

Disques du système d’exploitation (SE)

Pour les disques du système d’exploitation, tenez compte des facteurs suivants :

  • Disques éphémères pour le système d’exploitation. Chaque machine virtuelle dans Azure nécessite un disque pour son système d’exploitation. Étant donné que les nœuds Kubernetes sont éphémères, AKS utilise par défaut des disques de système d’exploitation éphémères sur les tailles de machine virtuelle prises en charge. Pour plus d’informations sur les disques de système d’exploitation éphémères, consultez la section Système d’exploitation éphémère.

  • Disques managés pour le système d’exploitation. Si votre charge de travail les nécessite, vous pouvez utiliser plutôt des disques managés standard pour les nœuds de votre cluster AKS. Cela prend en charge les charges de travail qui nécessitent des données persistantes sur le lecteur du système d’exploitation. Pour plus d’informations sur les options de stockage persistant, consultez les options de stockage pour les applications dans Azure Kubernetes Service (AKS).

  • Dimensionnement des disques managés. Si vous sélectionnez un disque managé comme disque de système d’exploitation, veillez à la dimensionner pour prendre en charge les exigences du système d’exploitation, du système Kubernetes et de votre charge de travail. Pour plus d’informations sur les options et les différences, consultez les types de disques managés Azure.

Données d’application

Certaines charges de travail ont besoin d’un magasin de données cohérent pour le stockage des données d’application. Si votre application nécessite une base de données, envisagez d’explorer les bases de données gérées dans Azure, notamment les options suivantes :

Solutions de stockage dans AKS

Si une base de données managée ne répond pas aux besoins de votre application, envisagez d’utiliser une autre option de stockage disponible pour AKS pour stocker des données cohérentes. Les options incluent les solutions sur disque, les disques éphémères, les solutions basées sur des fichiers, le stockage d’objets blob et d’autres options qui ne sont pas abordées dans cet article.

Solutions sur disque

Les disques ou le stockage de blocs sont idéaux pour stocker des données directement sur un appareil brut basé sur des blocs. Le stockage sur disque est idéal pour conserver des données dans des bases de données que votre cluster Kubernetes héberge. Dans Azure, les disques managés sont la solution pour obtenir un stockage basé sur des blocs.

  • Stockage de disque statique ou créé dynamiquement. Vous devez utiliser un disque statique que vous créez en dehors d'AKS ou le stockage de disque qu'AKS crée dynamiquement en fonction des besoins d'un ou plusieurs pods. Le stockage créé dynamiquement peut également être supprimé dynamiquement. Pour plus d’informations, consultez :

  • Redondance et performances. Tenez compte de la redondance et des performances de stockage requises par votre charge de travail. Pour plus d’informations, consultez :

  • Disque partagé. Déterminez si vous avez besoin d’un disque partagé. Pour plus d’informations sur les options, consultez Partager un disque managé Azure.

  • Taille du nœud pour les disques et le débit. Tenez compte de la taille de votre nœud Kubernetes. Il doit être suffisamment grand pour prendre en charge le nombre de disques et les exigences en matière de débit agrégé. Pour plus d’informations sur les tailles et les caractéristiques, consultez Tailles des machines virtuelles dans Azure.

  • Taille du disque et performances requises. Déterminez si votre disque managé est dimensionné de manière appropriée pour les exigences de performances de votre charge de travail. Les performances augmentent à mesure que la taille du disque augmente pour hdD standard, SSD Standard et SSD Premium v1. Pour plus d’informations sur les disques managés, consultez les types de disques managés Azure.

Solutions de disques éphémères

Déterminez si votre application nécessite un stockage non persistant, temporaire ou où vous souhaitez utiliser les lecteurs hautes performances dans les machines virtuelles optimisées pour le stockage. Pour vous connecter à un volume éphémère, vous pouvez utiliser l’option emptyDir dans Kubernetes ou le pilote pour un volume local éphémère CSI. Nous vous recommandons d’utiliser emptyDir pour les données éphémères, telles que l’espace scratch. Pour le stockage sur la série de machines virtuelles optimisées pour le stockage, nous vous recommandons d’utiliser CSI avec un volume local éphémère. Pour plus d’informations sur les pilotes CSI, consultez les pilotes CSI (Container Storage Interface) sur Azure Kubernetes Service (AKS).

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. Si vous envisagez d’utiliser le stockage basé sur des blocs avec le mode ReadWriteOnce, à l’aide de disques Azure, d’un disque éphémère ou d’un san élastique Azure, Azure Container Storage offre des avantages par rapport à l’utilisation directe des pilotes CSI :

  • Meilleur rapport qualité/prix : partagez un seul disque sur plusieurs volumes physiques pour réduire le surapprovisionnement et diminuer les coûts.
  • Capacité de gestion des PV accrue : prend en charge jusqu’à 75 PV par nœud, surpassant la limite de 64 PV avec les pilotes CSI.
  • NVMe local avec réplication : permet une latence sous-millisecondes et une résilience pour les disques éphémères, idéal pour les charges de travail avec une réplication intégrée tels que Cassandra.
  • Provisionnement et mise à l’échelle plus rapides : les opérations en lot accélèrent le provisionnement et la mise à l’échelle des volumes comparées aux opérations de pilote CSI séquentielles.

Pour plus d’informations, consultez Qu’est-ce qu’Azure Container Storage ?

Solutions basées sur des fichiers

Déterminez si vos pods nécessitent l’accès à un système de fichiers partagé. Utilisez un système de fichiers partagé pour les données d’application et de configuration que plusieurs pods de votre cluster Kubernetes doivent lire et partager. Le stockage de fichiers fournit un système de fichiers partagé via des protocoles NFS ou SMB/Common Internet File System (CIFS). Azure propose deux solutions pour le stockage basé sur des fichiers : Azure Files et Azure NetApp Files.

Azure Files

Pour Azure Files, tenez compte des options suivantes :

  • Partage de fichiers statique ou créé dynamiquement. Envisagez d’utiliser un partage de fichiers statique que vous créez en dehors d’AKS ou d’un partage de fichiers que AKS crée dynamiquement en votre nom. Pour plus d’informations, consultez :

  • Performances Standard ou Premium. Évaluez si les performances standard sont suffisantes ou si vous avez besoin de performances Premium à partir d’Azure Files.

  • SMB/CIFS ou NFS. Pour accéder à Azure Files, déterminez si votre charge de travail doit utiliser l’API pour le protocole par défaut, SMB/CIFS ou si votre charge de travail nécessite la prise en charge de NFS.

  • Modèle réseau pour l’accès. Considérez le modèle réseau que vous souhaitez utiliser pour accéder à Azure Files : accès via une adresse IP publique directe, un point de terminaison de service ou une liaison privée.

Azure NetApp Files (service de stockage de fichiers dans le cloud)

Pour Azure NetApp Files, tenez compte des options suivantes :

Stockage d'objets blob

Tenez compte de la quantité de données non structurées que votre application doit stocker. Le stockage Blob Azure est accessible via une API HTTP ou via les kits sdk. Le montage du stockage blob en tant que système de fichiers dans un conteneur ou un pod est idéal pour les charges de travail des applications qui possèdent de grandes quantités de données non structurées, telles que des fichiers journaux, des images, des documents, des médias en streaming et des données de reprise après sinistre.

  • Redondance des données. Considérez la redondance des données adaptée à votre application. Pour plus d’informations, consultez Redondance de Stockage Azure. La redondance des données est sélectionnée au niveau du compte de stockage.

  • Niveau de performance. Déterminez le niveau de performance du stockage blob dont votre application a besoin. Pour plus d’informations, consultez Niveaux d’accès chaud, froid et archive pour les données d’objet blob.

  • Méthode d’authentification pour l’accès. Considérez la méthode d’authentification que votre application doit utiliser pour accéder au stockage d’objets blob : clé de stockage, SAP ou ID Microsoft Entra. Pour plus d’informations, consultez Autoriser l’accès aux données dans Stockage Azure.

  • API pour abstraire le stockage de blobs. Considérez l’API à utiliser. En règle générale, les applications qui accèdent au stockage d’objets blob utilisent l’API dans l’application via l’un des kits SDK, ce qui extrait l’interaction avec le stockage d’objets blob à partir du cluster Kubernetes. Pour plus d’informations sur les bibliothèques pour différents langages de programmation, consultez Présentation du stockage Blob Azure.

  • Blobs de stockage statiques ou créés dynamiquement. Envisagez d'utiliser le conteneur de stockage blob statique que vous créez en dehors d'AKS ou celui qu'AKS crée dynamiquement en votre nom. Pour plus d’informations, consultez :

  • Pilote d’accès au stockage. Réfléchissez à la façon dont votre application doit accéder au stockage blob. Pour y accéder en tant que système de fichiers, vous pouvez utiliser le pilote Blob CSI dans Kubernetes. Ce pilote permet d’accéder au stockage Blob via le protocole NFSv3 ou via un pilote FUSE.

Autres solutions de stockage

Il existe plusieurs solutions de stockage spécialisées dans Azure qui peuvent s’intégrer à Kubernetes. Cet article ne couvre pas ces solutions de stockage spécialisées, mais la liste suivante identifie les solutions possibles :

  • Azure HPC Cache. HPC Cache accélère l’accès à vos données pour les tâches de calcul haute performance (HPC). En mettant les fichiers en cache dans Azure, Azure HPC Cache apporte la scalabilité du cloud computing à votre workflow existant. Pour plus d’informations, consultez Intégrer Azure HPC Cache à Azure Kubernetes Service.

  • Azure Data Lake Storage Gen2. Data Lake Storage Gen2 est un type spécial de stockage blob optimisé pour les charges de travail Big Data telles que Hadoop et Spark. Pour plus d’informations, consultez Présentation d’Azure Data Lake Storage Gen2.

Recommandations en matière de conception

Cette section fournit des recommandations efficaces pour les clients Azure.

  • Utilisez Azure Private Link. Pour la sécurité, nous vous recommandons d’utiliser Azure Private Link pour toutes les solutions de stockage qui le prennent en charge. Azure Private Link permet d’accéder aux services Azure, tels que Stockage Azure et SQL Database, et les services hébergés par Azure sur un point de terminaison privé dans votre réseau virtuel. Pour plus d’informations, consultez Qu’est-ce qu’Azure Private Link ?

  • Utilisez des disques éphémères pour le système d’exploitation. Pour les disques de système d’exploitation, nous vous recommandons d’utiliser des disques éphémères. Pour tirer parti de cette fonctionnalité, sélectionnez une taille de machine virtuelle qui a un disque temporaire de taille adéquate. Pour plus d’informations, consultez disques de système d’exploitation éphémères pour les machines virtuelles Azure.

  • Utilisez des bases de données managées. Pour les données d’application, nous vous recommandons d’utiliser des bases de données managées. Pour obtenir la liste des options de base de données, consultez Types de bases de données sur Azure.

Les sections suivantes décrivent d’autres recommandations pour les disques Azure, Azure Files et le stockage d’objets blob.

Utiliser Azure Container Storage

Les sections suivantes contiennent des recommandations pour l’utilisation d’Azure Container Storage avec AKS.

Configuration requise pour le stockage de conteneurs Azure

  • Conditions préalables au cluster AKS : Déployez un cluster AKS avec au moins trois machines virtuelles dans votre pool de nœuds, chacun avec au moins quatre processeurs virtuels.
  • Limitations du mode d’accès : Azure Container Storage prend uniquement en charge le mode d’accès ReadWriteOnce. Pour les charges de travail nécessitant un accès ReadWriteMany, utilisez Plutôt Azure Files. Pour plus d’informations sur les modes d’accès, consultez la documentation Kubernetes.

Choisir le type de stockage de conteneurs Azure approprié

  • Disques Azure : utilisez pour les bases de données de niveau 1 et à usage général telles que MySQL, MongoDB et PostgreSQL. Lorsque vous utilisez des disques UltraSSD_LRS ou PremiumV2_LRS, spécifiez des paramètres de performances (IOPS et débit) directement dans votre définition de pool de stockage avec les paramètres IOPSReadWrite et MBpsReadWrite. Cette approche garantit qu’Azure Container Storage provisionne des ressources de disque optimales pour vos besoins en matière de performances.

  • Disques éphémères Azure : idéal pour les applications nécessitant une latence ultra-faible (submilliseconde) sans exigences de durabilité des données ou avec la réplication de données intégrée au niveau de l’application (par exemple, Cassandra). Les données sur les disques éphémères ne sont pas conservées par le biais des redémarrages de machine virtuelle. Bien qu’Azure Container Storage avec NVMe prenne en charge la réplication de volume pour la résilience contre les défaillances à nœud unique, vous perdez les données si tous les réplicas redémarrent simultanément. Évaluez attentivement ce risque pour votre charge de travail spécifique. NVMe est disponible sur les SKU de machines virtuelles L-Family optimisées pour le stockage.

Configurer la résilience du stockage de conteneurs Azure

Lors de la conception pour la résilience avec Stockage Conteneur Azure, choisissez l’une des approches suivantes pour la haute disponibilité :

Approche de résilience Descriptif Idéal pour
Stockage redondant interzone (ZRS) Réplique automatiquement les données entre deux zones de disponibilité ou plus pour vous protéger contre les défaillances de zone. Charges de travail nécessitant une protection automatique des données contre les défaillances au niveau de la zone sans réplication au niveau de l’application.
Pools de stockage multizones Distribue la capacité de stockage de manière égale entre les zones de disponibilité, chaque zone conservant ses propres ressources de stockage distinctes. Charges de travail avec réplication au niveau de l’application (comme Cassandra) qui gèrent déjà leur propre redondance des données.

Remarque

Vous ne pouvez pas utiliser simultanément des pools de stockage ZRS et multizone, car ils servent des objectifs similaires par le biais de différents mécanismes. Implémentez des instantanés de volume réguliers dans le cadre de votre stratégie de sauvegarde et de récupération d’urgence, quelle que soit l’approche choisie.

Disques Azure

Pour les disques Azure, nous vous recommandons les options de conception suivantes :

  • Utilisez des disques Premium ou Ultra. Dans la plupart des cas, nous recommandons des disques Premium ou Ultra pour garantir des performances adéquates. Pour plus d’informations, consultez Stockage disque Azure.

  • Dimensionner le nœud pour les disques et le débit. Nous vous recommandons de veiller à ce que la taille de votre nœud Kubernetes soit suffisamment grande pour prendre en charge le nombre de disques et la quantité de débit agrégé. Pour plus d’informations sur les tailles et les caractéristiques, consultez Tailles des machines virtuelles dans Azure.

  • Créez des instantanés de volumes persistants. Prenez des instantanés de volumes persistants pour sauvegarder des données ou restaurer des volumes dans un état précédent à l’aide du pilote CSI Azure Disks. Pour plus d’informations, consultez Instantanés de volume.

  • Éviter l’agrégation par bandes entre les disques. Nous vous recommandons d’éviter l’agrégation par bandes (striping) entre plusieurs disques dans Kubernetes.

  • Utilisez PV/PVC. Nous vous recommandons d’utiliser pv et PVC dans Kubernetes pour créer dynamiquement des disques si nécessaire. Pour plus d’informations sur le stockage persistant, consultez les options de stockage des applications dans Azure Kubernetes Service (AKS).

Azure Files

Pour Azure Files, nous vous recommandons les options de conception suivantes :

  • Choisissez Premium. Si les performances sont critiques, nous vous recommandons d’utiliser le niveau Premium.

  • Créez des comptes de stockage dédiés. Nous vous recommandons de fournir des comptes de stockage dédiés pour vos partages de fichiers.

  • Choisissez des partages de fichiers statiques ou créés dynamiquement. Nous vous recommandons de prendre en compte soigneusement si vous souhaitez qu’AKS crée les partages de fichiers ou si vous souhaitez les créer statiquement en dehors de Kubernetes. Le stockage créé dynamiquement peut également être supprimé dynamiquement. Pour plus d’informations sur la création dynamique d’AKS de partages de fichiers, consultez Créer et utiliser dynamiquement un volume persistant avec Azure Files.

Azure NetApp Files (service de stockage de fichiers dans le cloud)

Pour Azure NetApp Files, nous vous recommandons les options de conception suivantes :

  • Choisissez un niveau de performances en fonction des exigences de l’application. Azure NetApp Files offre trois niveaux de performances qui offrent différentes classes de performances. Pour plus d’informations, consultez Facteurs de performance pour Azure NetApp Files.

  • Créez des pools de capacité dans la même région Azure que le cluster AKS. Pour plus d’informations, consultez Créer un pool de capacités pour Azure NetApp Files.

  • Utilisez le type QoS automatique pour les pools de capacité.

  • Planifiez votre réseau. Deux options existent pour la conception réseau :

    1. Si vous utilisez le même réseau virtuel pour AKS et Azure NetApp Files, créez un sous-réseau dédié pour Azure NetApp Files et délèguez le sous-réseau à Microsoft.NetApp/Volumes.
    2. Si vous utilisez différents réseaux virtuels, établissez une jonction réseau virtuelle entre eux.

Stockage d'objets blob

Pour le stockage blob, nous vous recommandons les options de conception suivantes :

  • Utilisez un KIT SDK pour interfacer avec le stockage. Nous vous recommandons d’utiliser un Kit de développement logiciel (SDK) au niveau de l’application pour interfacer avec le stockage d’objets blob.

  • Utilisez CSI avec NFS pour interfacer avec le stockage. Si vous ne pouvez pas utiliser un kit de développement logiciel (SDK) à l'échelle de l'application pour interagir avec le stockage de blobs, nous vous recommandons d’utiliser l’option NFS v3 dans le pilote CSI de blobs. Pour plus d’informations, consultez Utiliser le pilote CSI (Azure Blob Storage Container Storage Interface).

  • Utilisez l’ID Microsoft Entra pour l’accès. Nous vous recommandons d’utiliser Microsoft Entra ID pour autoriser l’accès au stockage blob. Évitez d’utiliser une clé de compte de stockage partagé. Pour plus d’informations, consultez Autoriser l’accès aux objets blob avec Microsoft Entra ID.

  • Ajustez les niveaux de niveau. Nous vous recommandons d’utiliser des stratégies de gestion du cycle de vie pour déplacer les données rarement sollicitées vers un niveau d’accès plus froid. Pour plus d’informations, consultez Niveaux d’accès chaud, froid et archive pour les données d’objet blob.

Étapes suivantes

Découvrez comment étendre l’allocation des coûts à un déploiement, un service, une étiquette, un pod ou un espace de noms dans AKS à l’aide de Kubecost.