Didacticiel : Installer Azure Container Storage pour l’utiliser 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. Dans ce didacticiel, vous allez créer un cluster Azure Kubernetes Service (AKS) et installer la dernière version de production d’Azure Container Storage sur le cluster. Si vous avez déjà déployé un cluster AKS, nous vous recommandons d’installer Azure Container Storage en utilisant ce guide de démarrage rapide au lieu de suivre les étapes manuelles de ce tutoriel.
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.
- Créer un groupe de ressources
- Choisir une option de stockage des données et un type de machine virtuelle
- Créer un cluster AKS
- Se connecter au cluster
- Étiqueter le pool de nœuds
- Attribuer un rôle Opérateur Azure Container Storage à l’identité managée AKS
- Installer Azure Container Storage
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 commandeaz aks install-cli
.Vérifiez si votre région cible est prise en charge dans Les régions de stockage de conteneurs Azure.
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>
Créer un groupe de ressources
Un groupe de ressources Azure est un groupe logique qui contient vos ressources Azure que vous voulez gérer en tant que groupe. Lorsque vous créez un groupe de ressources, vous êtes invité à spécifier un emplacement. Cet emplacement est :
- L’emplacement de stockage des métadonnées de votre groupe de ressources.
- Là où vos ressources s’exécutent dans Azure si vous ne spécifiez pas une autre région lors de la création des ressources.
Créez un groupe de ressources avec la commande az group create
. Remplacez <resource-group-name>
par le nom du groupe de ressources que vous voulez créer et remplacez <location>
par une région Azure, par exemple eastus, westus2, westus3 ou westeurope.
az group create --name <resource-group-name> --location <location>
Si la création du groupe de ressources a abouti, vous obtenez une sortie de ce type :
{
"id": "/subscriptions/<guid>/resourceGroups/myContainerStorageRG",
"location": "eastus",
"managedBy": null,
"name": "myContainerStorageRG",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Choisir une option de stockage des données et un type de machine virtuelle
Avant de créer votre cluster, vous devez comprendre laquelle des différentes options de stockage back-end vous allez choisir au final pour créer votre pool de stockage. En effet, l’intérêt de choisir tel ou tel service de stockage varie selon le type de machine virtuelle que vous allez utiliser pour les nœuds du cluster, et vous déploierez votre cluster avant de créer le pool de stockage.
Options de stockage de données
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 CD/CI 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 sur les nœuds AKS et est extrêmement sensible à la latence (latence faible de moins d'une milliseconde). Elle se prête donc bien aux applications sans impératifs de durabilité des données ou à celles qui offrent une prise en charge intégrée de la réplication de données, 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.
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. 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.
- Si vous avez l'intention d'utiliser Azure Elastic SAN ou Azure Disks comme stockage de secours, choisissez un type de machine virtuelle à usage général tel que standard_d4s_v5.
- Si vous envisagez d’utiliser un disque éphémère avec NVMe local, choisissez une référence SKU de machine virtuelle qui prend en charge les disques NVMe locaux, par exemple des références SKU de machine virtuelle optimisée pour le stockage ou des références SKU de machine virtuelle accélérée par GPU.
- Si vous envisagez d'utiliser un disque éphémère avec un disque SSD temporaire, choisissez une machine virtuelle qui dispose d'un disque SSD temporaire, comme les séries Ev3 et Esv3.
Créer un cluster AKS et installer le stockage de conteneur Azure
Si vous avez déjà déployé un cluster AKS, suivez les instructions d’installation de ce guide de démarrage rapide.
Exécutez la commande suivante pour créer un cluster AKS, installer le stockage de conteneur Azure et créer un pool de stockage. Remplacez <cluster-name>
et utilisez <resource-group>
avec vos propres valeurs et spécifiez le type de machine virtuelle que vous souhaitez utiliser. Remplacez <storage-pool-type>
par azureDisk
, ephemeralDisk
ou elasticSan
. Si vous sélectionnez ephemeralDisk
, vous devez é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* avec trois machines virtuelles Linux. Si vous spécifiez un NVMe local pour votre type de pool de stockage, veillez à définir le nombre de nœuds sur 4 ou plus, ou la commande ne pourra pas s’exécuter.
Par défaut, le pool de nœuds système est nommé nodepool1
. Si vous souhaitez activer Azure Container Storage 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 de pool de stockage supplémentaires avec cette commande, consultez ce tableau.
* S’il existe des pools de nœuds avec l’étiquette acstor.azure.com/io-engine:acstor
, Stockage de conteneurs Azure installe les composants du plan de données par défaut. Sinon, les utilisateurs peuvent passer le pool de nœuds préféré à acstor
via l’interface Azure CLI. Si le cluster possède uniquement le pool de nœuds système, il est étiqueté et utilisé pour Stockage de conteneurs Azure par défaut. Il est important de noter que seuls les composants du plan de données sont limités au pool de nœuds étiqueté. Les composants du plan de contrôle de Stockage de conteneurs Azure ne sont pas limités aux nœuds étiquetés et peuvent également être installés sur le pool de nœuds système.
az aks create -n <cluster-name> -g <resource-group> --node-vm-size Standard_D4s_v3 --node-count 3 --enable-azure-container-storage <storage-pool-type> --generate-ssh-keys
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 en tant que type de pool de stockage supplémentaire avec l’un de ces rôles manquant, votre installation et les pools de stockage précédents restent inchangés et aucun pool de stockage Elastic SAN n’est créé.
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.
Étape suivante
Sélectionnez le lien du type de stockage des sauvegardes que vous avez sélectionné et suivez les instructions de création de volumes.