Utiliser le Stockage de conteneurs Azure avec Azure Elastic SAN (préversion)
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. Azure Elastic SAN est une solution entièrement intégrée qui simplifie le déploiement, la mise à l’échelle, la gestion et la configuration d’un san, tout en offrant des fonctionnalités cloud intégrées telles que la haute disponibilité.
En fonctionnalité en préversion, vous pouvez configurer Stockage de conteneurs Azure pour utiliser Azure Elastic SAN. Cet article explique comment effectuer cette configuration. À la fin de cet article, vous aurez un pod qui utilise Elastic SAN comme stockage.
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
.Si vous n’avez pas encore installé Azure Container Storage, suivez les instructions dans Utiliser Azure Container Storage avec Azure Kubernetes Service.
Vérifiez si votre région cible est prise en charge dans Les régions de stockage de conteneurs Azure.
Vérifiez que vous avez un rôle Propriétaire du stockage de conteneurs Azure ou un rôle Contributeur du stockage de conteneurs Azure sur votre abonnement. Un de ces rôles accorde des autorisations qui permettent au stockage de conteneurs Azure de communiquer avec la ressource Elastic SAN. Pour effectuer ce changement, accédez à la page de votre abonnement sur le Portail Azure. Sélectionnez Contrôle d’accès (IAM) > Ajouter une attribution de rôle et recherchez « Propriétaire du stockage de conteneurs Azure » ou « Contributeur du stockage de conteneurs Azure » sous l’onglet Rôles de fonction de tâche. Sélectionnez Afficher > Attributions > Ajouter une attribution et ajoutez votre compte.
Pour utiliser le Stockage de conteneurs Azure avec la préversion d’Azure Elastic SAN, votre cluster AKS doit disposer d’un pool de nœuds d’au moins trois machines virtuelles à usage général, telles que standard_d4s_v5 pour les nœuds de cluster. Chacune doit disposer d’au moins quatre processeurs virtuels (vCPUs).
Limites
Les fonctionnalités suivantes ne sont actuellement pas prises en charge lors de l’utilisation d’Azure Container Storage pour le déploiement et l'orchestration d’un Elastic SAN.
- Clichés instantanés de volume
- Extension du pool de stockage
Disponibilité régionale
Azure CDN est uniquement disponible pour un sous-ensemble de régions Azure :
- (Afrique) Afrique du Sud Nord
- (Asie-Pacifique) Australie Est
- (Asie-Pacifique) Asie Est
- (Asie-Pacifique) Japon Est
- (Asie-Pacifique) Corée Centre
- (Asie-Pacifique) Asie Sud-Est
- (Asie-Pacifique) Inde Centre
- (Europe) France Centre
- (Europe) Allemagne Centre-Ouest
- (Europe) Europe Nord
- (Europe) Europe Ouest
- (Europe) Royaume-Uni Sud
- (Europe) Suède Centre
- (Europe) Suisse Nord
- (Moyen-Orient) Émirats arabes unis Nord
- (Amérique du Nord) USA Est
- (Amérique du Nord) USA Est 2
- (Amérique du Nord) USA Ouest
- (Amérique du Nord) USA Ouest 2
- (Amérique du Nord) USA Ouest 3
- (Amérique du Nord) USA Centre
- (Amérique du Nord) USA Centre Nord
- (Amérique du Nord) USA Centre Sud
- (Amérique du Nord) USA Centre-Ouest
- (Amérique du Nord) Canada Centre
- (Amérique du Nord) Canada Est
- (Amérique du Sud) Brésil Sud
Créer et attacher des volumes persistants
Suivez ces étapes pour créer et attacher un volume persistant.
1. Créer un pool de stockage
Tout d’abord, créez un pool de stockage, qui est un regroupement logique de stockage pour votre cluster Kubernetes, en le définissant dans un fichier manifeste YAML.
Si vous avez activé Azure Container Storage en utilisant les commandes az aks create
ou az aks update
, il est possible que vous disposiez déjà d’un pool de stockage. Utilisez kubectl get sp -n acstor
pour obtenir la liste des pools de stockage. Si vous souhaitez utiliser un pool de stockage déjà disponible, vous pouvez ignorer cette section et passer à la section Afficher les classes de stockage disponibles.
Suivez ces étapes pour créer un pool de stockage avec Azure Elastic SAN (préversion).
Utilisez votre éditeur de texte favori pour créer un fichier manifeste YAML tel que
code acstor-storagepool.yaml
.Collez le code suivant. Vous pouvez choisir n’importe quelle valeur nom du pool de stockage. Ajustez le stockage pour refléter la capacité de stockage souhaitée dans Gi ou Ti, puis enregistrez le fichier. Azure Elastic SAN ne prend actuellement pas en charge le redimensionnement des pools de stockage.
apiVersion: containerstorage.azure.com/v1 kind: StoragePool metadata: name: managed namespace: acstor spec: poolType: elasticSan: {} resources: requests: {"storage": 1Ti}
Appliquez le fichier manifeste YAML pour créer le pool de stockage.
kubectl apply -f acstor-storagepool.yaml
Une fois la création du pool de stockage terminée, vous verrez un message comme suit :
storagepool.containerstorage.azure.com/managed created
Vous pouvez également exécuter cette commande pour vérifier l’état du pool de stockage. Remplacez
<storage-pool-name>
par la valeur nom de votre pool de stockage. Pour cet exemple, la valeur est gérée.kubectl describe sp <storage-pool-name> -n acstor
Lorsque le pool de stockage est créé, Azure Container Storage crée une classe de stockage en votre nom, à l’aide de la convention d’affectation de noms acstor-<storage-pool-name>
. Cela créera également une ressource Azure Elastic SAN.
2. Afficher les classes de stockage disponibles
Lorsque le pool de stockage est prêt à être utilisé, vous devez sélectionner une classe de stockage pour définir la façon dont le stockage est créé dynamiquement lors de la création de revendications de volume persistant et du déploiement de volumes persistants.
Exécutez kubectl get sc
pour afficher les classes de stockage disponibles Vous devriez voir une classe de stockage appelée acstor-<storage-pool-name>
.
Important
N’utilisez pas la classe de stockage marquée interne. Il s’agit d’une classe de stockage interne nécessaire au fonctionnement d’Azure Container Storage.
3. Créer une revendication de volume persistant
Une revendication de volume persistant (PVC) est utilisée pour configurer automatiquement le stockage basé sur une classe de stockage. Suivez ces étapes pour créer une revendication de volume persistant à l’aide de la nouvelle classe de stockage.
Utilisez votre éditeur de texte favori pour créer un fichier manifeste YAML tel que
code acstor-pvc.yaml
.Collez le code suivant et enregistrez le fichier. Vous pouvez choisir n’importe quelle valeur
name
de la revendication de volume persistant.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: managedpvc spec: accessModes: - ReadWriteOnce storageClassName: acstor-managed # replace with the name of your storage class if different resources: requests: storage: 100Gi
Appliquez le fichier manifeste YAML pour créer la revendication de volume persistant.
kubectl apply -f acstor-pvc.yaml
La sortie doit ressembler à celle-ci :
persistentvolumeclaim/managedpvc created
Vous pouvez vérifier l’état de la revendication de volume persistant en exécutant la commande suivante :
kubectl describe pvc managedpvc
Une fois la revendication de volume persistant créée, elle peut être utilisée par un pod.
4. Déployer un pod et attacher un volume persistant
Créez un pod à l’aide de Fio (testeur d’E/S flexible) pour l’évaluation et la simulation de charge de travail, puis spécifiez un chemin de montage pour le volume persistant. Pour nomRevendication, utilisez la valeur nom que vous avez utilisée lors de la création de la revendication de volume persistant.
Utilisez votre éditeur de texte favori pour créer un fichier manifeste YAML tel que
code acstor-pod.yaml
.Collez le code suivant et enregistrez le fichier.
kind: Pod apiVersion: v1 metadata: name: fiopod spec: nodeSelector: acstor.azure.com/io-engine: acstor volumes: - name: managedpv persistentVolumeClaim: claimName: managedpvc containers: - name: fio image: nixery.dev/shell/fio args: - sleep - "1000000" volumeMounts: - mountPath: "/volume" name: managedpv
Appliquez le fichier manifeste YAML pour déployer le pod.
kubectl apply -f acstor-pod.yaml
Vous devez obtenir une sortie similaire à la suivante :
pod/fiopod created
Vérifiez que le pod est en cours d’exécution et que la revendication de volume persistant a bien été liée au pod :
kubectl describe pod fiopod kubectl describe pvc managedpvc
Vérifiez les tests Fio pour voir son état actuel :
kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
Vous avez maintenant déployé un pod qui utilise des un Elastic SAN e comme stockage et vous pouvez l’utiliser pour vos charges de travail Kubernetes.
Gérer les volumes persistants et les pools de stockage
Maintenant que vous avez créé un volume persistant, vous pouvez le détacher et le rattacher en fonction des besoins. Vous pouvez également supprimer un pool de stockage.
Détacher et rattacher un volume persistant
Pour détacher un volume persistant, supprimez le pod auquel le volume persistant est attaché. Remplacez <pod-name>
par le nom du pod, par exemple fiopod.
kubectl delete pods <pod-name>
Pour rattacher un volume persistant, il vous suffit de référencer le nom de la revendication de volume persistant dans le fichier manifeste YAML, comme décrit dans la section Déployer un pod et attacher un volume persistant.
Pour vérifier à quel volume persistant une revendication de volume persistant est liée, exécutez kubectl get pvc <persistent-volume-claim-name>
.
Supprimer un pool de stockage
Si vous souhaitez supprimer un pool de stockage, exécutez la commande suivante. Remplacez <storage-pool-name>
par le nom du pool de stockage.
kubectl delete sp -n acstor <storage-pool-name>