Partager via


Démarrage rapide : Utiliser le Stockage de conteneurs Azure avec Azure Kubernetes Service

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. Ce guide de démarrage rapide vous montre comment vous connecter à un cluster Azure Kubernetes Service (AKS) Linux, installer Azure Container Storage et créer un pool de stockage à l’aide d’Azure CLI.

Important

Stockage de conteneurs Azure est désormais en disponibilité générale (GA) à compter de la version 1.1.0. La version GA est recommandée pour les charges de travail de production.

Prérequis

  • Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

  • Cet article nécessite la dernière version (2.35.0 ou ultérieure) de l’interface Azure CLI. Consultez Comment installer l’interface Azure CLI. Si vous utilisez l’environnement Bash dans Azure Cloud Shell, la version la plus récente est déjà installée. Si vous prévoyez d’exécuter les commandes localement et non dans Azure Cloud Shell, veillez à le faire avec des privilèges Administrateur. Pour obtenir plus d’informations, consultez Démarrage d’Azure Cloud Shell.

  • Vous aurez besoin du client de ligne de commande Kubernetes, kubectl. Si vous utilisez Azure Cloud Shell, il est déjà installé ; vous pouvez aussi l’installer localement en exécutant la commande az aks install-cli.

  • Vérifiez si votre région cible est prise en charge dans Les régions de stockage de conteneurs Azure.

  • Si vous n’avez pas encore créé de cluster AKS, suivez les instructions pour l’Installation d’un cluster AKS.

Mise en route

  • Prenez note de votre ID d'abonnement Azure. Si vous souhaitez utiliser Azure Elastic SAN pour le stockage des données, vous devez disposer d’un rôle Propriétaire du stockage de conteneurs Azure ou du rôle Contributeur de stockage de conteneur Azure attribué à l’abonnement Azure. L’accès au niveau propriétaire permet d’installer l’extension Azure Container Storage, d’accéder à ses ressources de stockage et de configurer votre ressource Azure Elastic SAN. L’accès de niveau contributeur vous permet d’installer l’extension et vous donne accès à ses ressources de stockage. Si vous envisagez d'utiliser des disques Azure ou un disque éphémère, en tant que stockage de données, vous n'avez pas besoin d'autorisations spéciales sur votre abonnement.

  • Lancez Azure Cloud Shell, ou si vous utilisez une installation locale, connectez-vous à Azure CLI à l'aide de la commande az login.

  • Si vous utilisez Azure Cloud Shell, il est possible que vous soyez invité à monter le stockage. Sélectionnez l’abonnement Azure dans lequel vous souhaitez créer le compte de stockage, puis sélectionnez Créer.

Installer les extensions requises

Ajoutez ou mettez à niveau vers la dernière version de k8s-extension en exécutant la commande suivante.

az extension add --upgrade --name k8s-extension

Définissez le contexte de l’abonnement

Définissez le contexte de votre abonnement à l’aide de la commande az account set. Vous pouvez afficher les ID d’abonnement de tous les abonnements auxquels vous avez accès en exécutant la commande az account list --output table. N’oubliez pas de remplacer <subscription-id> par l’ID de votre abonnement.

az account set --subscription <subscription-id>

Se connecter au cluster

Pour se connecter au cluster, utilisez le client de ligne de commande Kubernetes, kubectl. Si vous utilisez Azure Cloud Shell, il est déjà installé ; vous pouvez aussi l’installer localement en exécutant la commande az aks install-cli.

  1. Configurez kubectl pour qu’il se connecte à votre cluster à l’aide de la commande az aks get-credentials. La commande ci-après effectue les opérations suivantes :

    • Cette étape télécharge les informations d’identification et configure l’interface de ligne de commande Kubernetes pour leur utilisation.
    • Utilise ~/.kube/config, l’emplacement par défaut du fichier de configuration Kubernetes. Vous pouvez spécifier un autre emplacement pour votre fichier de configuration Kubernetes en utilisant l’argument --file.
    az aks get-credentials --resource-group <resource-group> --name <cluster-name>
    
  2. Pour vérifier la connexion à votre cluster, exécutez la commande kubectl get. Cette commande renvoie la liste des nœuds de cluster.

    kubectl get nodes
    
  3. L’exemple de sortie suivant présente les nœuds de votre cluster. Vérifiez que l’état de tous vos nœuds indique Ready (Prêt) :

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-34832848-vmss000000   Ready    agent   80m   v1.25.6
    aks-nodepool1-34832848-vmss000001   Ready    agent   80m   v1.25.6
    aks-nodepool1-34832848-vmss000002   Ready    agent   80m   v1.25.6
    

    Notez le nom de votre pool de nœuds. Dans cet exemple, il s’agit de nodepool1.

Choisir une option de stockage de données pour votre pool de stockage

Avant de déployer le stockage de conteneur Azure, vous devez décider de l’option de stockage back-end que vous souhaitez utiliser pour créer votre pool de stockage et vos volumes. Trois options sont actuellement disponibles :

  • Azure Elastic SAN : Azure Elastic SAN convient parfaitement aux bases de données à usage général, aux services de streaming et de messagerie, aux environnements CI/CD et aux autres charges de travail de niveau 1 ou 2. Le stockage est provisionné à la demande par volume et instantané de volume créés. 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.

  • Disques Azure : Les disques Azure conviennent parfaitement pour les bases de données que sont notamment MySQL, MongoDB et PostgreSQL. Le stockage est provisionné par taille de pool de stockage de conteneurs cible et taille de volume maximale.

  • Disque éphémère : cette option utilise des lecteurs NVMe locaux ou un disque SSD temporaire sur les nœuds de cluster AKS. Il est très sensible à la latence (faible latence de moins d'une milliseconde) et convient donc mieux aux applications qui n'ont pas d'exigences en matière de durabilité des données ou qui disposent d'un support de réplication des données intégré, comme Cassandra. AKS découvre le stockage éphémère disponible sur les nœuds AKS et acquiert les lecteurs pour le déploiement de volumes.

Remarque

Pour Azure Elastic SAN et les disques Azure, le stockage de conteneur Azure déploie le stockage de secours pour vous dans le cadre de l’installation. Vous n’avez pas besoin de créer votre propre Elastic SAN ou disque Azure. Pour utiliser Elastic SAN, vous devez disposer d’un rôle Propriétaire du stockage de conteneurs Azure ou du rôle Contributeur du stockage de conteneur Azure sur l’abonnement Azure.

Consommation des ressources

Azure Container Storage nécessite que certaines ressources de nœud exécutent des composants pour le service. Selon le type de pool de stockage sélectionné, que vous spécifierez lors de l'installation d'Azure Container Storage, il s'agit des ressources qui seront consommées :

Type de pool de stockage Cœurs de processeur RAM
Azure Elastic SAN  None None
Disques Azure 1 1 Gio
Disque éphémère – SSD temporaire 1 1 Gio
Disque éphémère – NVMe local (niveau standard) 25 % de cœurs (le niveau de performance peut être mis à jour)* 1 Gio

Les ressources consommées le sont par nœud. Il en va de même pour chaque nœud du pool de nœuds dans lequel Azure Container Storage sera installé. Si vos nœuds ne disposent pas de ressources suffisantes, Azure Container Storage ne fonctionnera pas. Kubernetes va automatiquement réessayer d'initialiser ces pods défaillants, de sorte que si les ressources sont libérées, ces pods peuvent être initialisés à nouveau.

* Dans un pool de stockage de type Disque éphémère – NVMe local avec le niveau de performance standard (par défaut), si vous utilisez plusieurs types de référence SKU de machines virtuelles pour vos nœuds de cluster, les 25 % de cœurs de processeur consommés s’appliquent à la plus petite référence SKU utilisée. Par exemple, si vous utilisez un mélange de types de machines virtuelles 8 cœurs et 16 cœurs, la consommation de ressources est de 2 cœurs. Vous pouvez mettre à jour le niveau de performance pour utiliser un pourcentage plus élevé de cœurs et obtenir des IOPS supérieures.

Vérifiez que le type de machine virtuelle de votre cluster répond aux critères suivants

Pour utiliser Azure Container Storage, vous avez besoin d’un pool de nœuds d’au moins trois machines virtuelles Linux. Si vous utilisez NVMe local pour votre pool de stockage, le pool de nœuds doit contenir au moins quatre machines virtuelles Linux. Chaque machine virtuelle doit disposer d’au moins quatre processeurs virtuels. Azure Container Storage utilise un cœur pour le traitement des E/S sur chaque machine virtuelle sur laquelle l’extension est déployée.

Suivez ces instructions lors du choix d'un type de machine virtuelle pour les nœuds de cluster. Vous devez choisir un type de machine virtuelle prenant en charge le stockage Premium Azure.

Installer le stockage de conteneur Azure sur votre cluster AKS existant

La commande d’installation est différente selon que vous disposez déjà d’une instance en préversion du Stockage de conteneurs Azure s’exécutant sur votre cluster AKS ou si vous l’installez sur le cluster pour la première fois.

Mettre à niveau une installation en préversion vers la version en disponibilité générale

Si vous disposez déjà d’une instance en préversion du Stockage de conteneurs Azure s’exécutant sur votre cluster, nous vous recommandons de mettre à jour vers la dernière version en disponibilité générale (GA) en exécutant la commande suivante. Si vous installez le Stockage de conteneurs Azure pour la première fois sur le cluster, passez à Installer le Stockage de conteneurs Azure et créer un pool de stockage. Vous pouvez également Installer le Stockage de conteneurs Azure sur des pools de nœuds spécifiques.

az k8s-extension update --cluster-type managedClusters --cluster-name <cluster-name> --resource-group <resource-group> --name azurecontainerstorage --version 1.1.0 --auto-upgrade false --release-train stable

Assurez-vous de remplacer <cluster-name> et <resource-group> par vos propres valeurs.

Installer le Stockage de conteneurs Azure et créer un pool de stockage

Avant d’installer, vérifiez que votre cluster AKS répond aux exigences de machine virtuelle.

Exécutez la commande suivante pour installer le Stockage de conteneurs Azure sur le cluster et créer un pool de stockage. Remplacez <cluster-name> et <resource-group> par vos propres valeurs. Remplacez <storage-pool-type> par azureDisk, ephemeralDisk ou elasticSan. Si vous sélectionnez ephemeralDisk, vous pouvez également spécifier --storage-pool-option, et les valeurs possibles sont NVMe ou Temp.

L'exécution de cette commande activera Azure Container Storage sur le pool de nœuds système, qui par défaut est nommé nodepool1*. Si vous souhaitez l'activer sur d'autres pools de nœuds, consultez Installer Azure Container Storage sur des pools de nœuds spécifiques. Si vous souhaitez spécifier des paramètres supplémentaires, consultez Paramètres du pool de stockage Stockage de conteneurs Azure.

* S'il existe des pools de nœuds existants avec l'étiquette acstor.azure.com/io-engine:acstor, Azure Container Storage y sera installé par défaut. Dans le cas contraire, il est installé sur le pool de nœuds système.

Important

Si vous avez créé votre cluster AKS à l’aide du portail Microsoft Azure : le cluster aura probablement un pool de nœuds utilisateur et un pool de nœuds système/agent. Toutefois, si votre cluster se compose uniquement d’un pool de nœuds système, ce qui est le cas avec des clusters de test/développement créés avec le portail Microsoft Azure, vous devez d’abord ajouter un nouveau pool de nœuds utilisateur, puis l’étiqueter. En effet, lorsque vous créez un cluster AKS à l'aide du Portail Azure, une teinte CriticalAddOnsOnly est ajoutée au pool de nœuds système/agent, ce qui bloque l'installation d'Azure Container Storage sur le pool de nœuds système. Cette teinte n’est pas ajoutée lorsqu’un cluster AKS est créé à l’aide d’Azure CLI.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

Le déploiement prendra 10 à 15 minutes. Une fois l'opération terminée, vous disposerez d'un cluster AKS avec Azure Container Storage installé. De plus, les composants du type de pool de stockage que vous avez choisi seront activés et un pool de stockage par défaut sera mis en place. Si vous souhaitez activer des types de pools de stockage supplémentaires pour en créer d'autres, consultez la section Activer des types de pools de stockage supplémentaires.

Important

Si vous avez spécifié Azure Elastic SAN comme stockage de sauvegarde pour votre pool de stockage et que vous ne disposez pas du rôle Propriétaire de Stockage de conteneurs Azure ou du rôle Contributeur de Stockage de conteneurs Azure attribué à l’abonnement Azure, l’installation de Stockage de conteneurs Azure échoue et aucun pool de stockage n’est créé. Si vous essayez d’activer Azure Elastic SAN comme type de pool de stockage supplémentaire sans l’un ou l’autre de ces rôles, votre installation et les pools de stockage précédents restent inchangés et aucun pool de stockage Elastic SAN n’est créé.

Installer le stockage de conteneur Azure sur des pools de nœuds spécifiques

Si vous souhaitez installer le stockage de conteneur Azure sur des pools de nœuds spécifiques, suivez ces instructions. Les pools de nœuds doivent contenir au moins trois machines virtuelles linux chacun. Si vous utilisez NVMe local pour votre pool de stockage, les pools de nœuds doivent contenir au moins quatre machines virtuelles Linux chacun.

  1. Exécutez la commande suivante pour afficher la liste des pools de nœuds disponibles. Remplacez <resource-group> et <cluster-name> par vos propres valeurs.

    az aks nodepool list --resource-group <resource-group> --cluster-name <cluster-name>
    
  2. Exécutez la commande suivante pour installer le stockage de conteneur Azure sur des pools de nœuds spécifiques. Remplacez <cluster-name> et <resource-group> par vos propres valeurs. Remplacez <storage-pool-type> par azureDisk, ephemeralDisk ou elasticSan. Si vous sélectionnez ephemeralDisk, vous pouvez également spécifier --storage-pool-option, et les valeurs possibles sont NVMe ou Temp.

    az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type> --azure-container-storage-nodepools <comma separated values of nodepool names>
    

Activer des types de pool de stockage supplémentaires

Si vous souhaitez activer un type de pool de stockage qui n'a pas été activé à l'origine pendant l'installation d'Azure Container Storage, exécutez la commande suivante. Remplacez <cluster-name> et <resource-group> par vos propres valeurs. Pour <storage-pool-type>, spécifiez azureDisk, ephemeralDisk ou elasticSan.

Si vous souhaitez spécifier des paramètres de pool de stockage supplémentaires avec cette commande, consultez ce tableau.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

Si le nouveau type de pool de stockage que vous avez activé prend plus de ressources que le type de pool de stockage déjà activé, la consommation de ressources passe à la quantité maximale.

Conseil

Si vous avez ajouté un nouveau pool de nœuds à votre cluster et que vous souhaitez exécuter Azure Container Storage sur ce pool de nœuds, vous pouvez spécifier le pool de nœuds avec --azure-container-storage-nodepools <nodepool-name> lors de l'exécution de la commande az aks update.

Afficher les pools de stockage disponibles

Pour obtenir la liste des pools de stockage disponibles, exécutez la commande suivante :

kubectl get sp -n acstor

Pour vérifier l'état d'un pool de stockage, exécutez la commande suivante :

kubectl describe sp <storage-pool-name> -n acstor

Si Message n'indique pas StoragePool is ready, alors votre pool de stockage est toujours en cours de création ou a rencontré un problème. Consultez Résoudre des problèmes liés au stockage Azure Container.

Désactiver les types de pool de stockage

Si vous n'utilisez plus de type de pool de stockage spécifique, et que vous souhaitez le désactiver pour libérer des ressources dans votre pool de nœuds, exécutez la commande suivante. Remplacez <cluster-name> et <resource-group> par vos propres valeurs. Pour <storage-pool-type>, spécifiez azureDisk, ephemeralDisk ou elasticSan.

az aks update -n <cluster-name> -g <resource-group> --disable-azure-container-storage <storage-pool-type>

Remarque

Si vous avez un pool de stockage existant du type dont vous souhaitez désactiver l'accès, ce type de pool de stockage ne sera pas désactivé.

Étape suivante

Pour créer des volumes, sélectionnez le lien pour le type de stockage de secours que vous avez sélectionné.