Share via


Utiliser Azure Container Storage Preview avec Azure Elastic SAN

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. Cet article vous montre comment configurer Azure Container Storage pour utiliser Azure Elastic SAN comme stockage back-end pour vos charges de travail Kubernetes. À la fin, 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 commande az aks install-cli.

Remarque

Pour utiliser Azure Container Storage avec 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 avec un minimum de quatre processeurs virtuels (vCPU).

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 Container Storage est disponible seulement dans un sous-ensemble des 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) 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 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.

  1. Utilisez votre éditeur de texte favori pour créer un fichier manifeste YAML tel que code acstor-storagepool.yaml.

  2. 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}
    
  3. 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.

Attribuer le rôle de contributeur à l'identité managée AKS sur l'abonnement Azure Elastic SAN

Ensuite, vous devez attribuer le rôle intégré Contributeur Azure RBAC à l’identité managée AKS sur votre abonnement Azure Elastic SAN. Pour ce faire, vous avez besoin d’un rôle Propriétaire pour votre abonnement Azure. Si vos autorisations ne sont pas suffisantes, demandez à votre administrateur d’effectuer ces étapes.

  1. Connectez-vous au portail Azure.

  2. Sélectionnez Souscriptions, puis localisez et sélectionnez l'abonnement associé à la ressource Azure Elastic SAN qu'Azure Container Storage a créée en votre nom. Il s’agit probablement du même abonnement que le cluster AKS sur lequel Azure Container Storage est installé. Vous pouvez le vérifier en localisant la ressource Elastic SAN dans le groupe de ressources créé par AKS (MC_YourResourceGroup_YourAKSClusterName_Region).

  3. Dans le volet de gauche, sélectionnez Contrôle d’accès (IAM) .

  4. Sélectionner Ajouter> Ajouter une attribution de rôle.

  5. Sous Type d’affectation, sélectionnez Rôles Administrateur privilégié, puis Contributeur et Suivant. Si vous n’avez pas de rôle Propriétaire dans l’abonnement, vous ne pouvez pas ajouter le rôle Contributeur.

    Capture d’écran montrant comment utiliser le Portail Azure pour ajouter le rôle de Contributeur à l’identité managée par AKS.

  6. Sous Attribuer l’accès à, sélectionnez Identité managée.

  7. Sous Membres, cliquez sur + Sélectionner des membres. Le menu Sélectionner des identités managées s’affiche.

  8. Sous Identité managée, sélectionnez Identité managée affectée par l’utilisateur.

  9. Sous Sélectionner, recherchez et sélectionnez l’identité managée présentant le nom de votre cluster ainsi que -agentpool, qui a été ajouté.

  10. Cliquez sur Sélectionner, puis sur Vérifier + attribuer.

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.

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.

  1. Utilisez votre éditeur de texte favori pour créer un fichier manifeste YAML tel que code acstor-pvc.yaml.

  2. 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
    
  3. 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.

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.

  1. Utilisez votre éditeur de texte favori pour créer un fichier manifeste YAML tel que code acstor-pod.yaml.

  2. 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
    
  3. 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
    
  4. 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
    
  5. 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.

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>

Voir aussi