Compartir a través de


Tutorial: Implementación de Azure Container Storage en un clúster de AKS

En este tutorial se presenta Azure Container Storage y se muestra cómo implementar y administrar el almacenamiento nativo del contenedor para las aplicaciones que se ejecutan en Azure Kubernetes Service (AKS). Si no desea implementar Azure Container Storage ahora, puede omitir este tutorial y continuar directamente en Implementación de una aplicación en AKS. No necesitará Azure Container Storage para la aplicación de escaparate básica de esta serie de tutoriales.

Azure Container Storage simplifica la administración de aplicaciones con estado en Kubernetes al ofrecer almacenamiento nativo de contenedor adaptado a una variedad de cargas de trabajo, incluidas bases de datos, plataformas de análisis y aplicaciones de alto rendimiento.

Al final de este tutorial, hará lo siguiente:

  • Comprenda cómo Azure Container Storage admite diversas cargas de trabajo en Kubernetes.
  • Implemente Azure Container Storage en el clúster de AKS.
  • Cree un volumen efímero genérico.

Antes de empezar

En los tutoriales anteriores, creó una imagen de contenedor, la cargó en una instancia de ACR y creó un clúster de AKS. Comience con el Tutorial 1: Preparación de la aplicación para AKS para continuar.

  • Confirme que la región de destino es compatible revisando la disponibilidad regional de Azure Container Storage.

  • Instale la versión más reciente de la CLI de Azure (2.83.0 o posterior) e inicie sesión con az login. No uses Azure Cloud Shell, porque az upgrade no está disponible.

  • Instale el cliente de línea de comandos de Kubernetes, kubectl. Puede instalarlo localmente ejecutando az aks install-cli.

Importante

Este tutorial se aplica a Azure Container Storage (versión 2.x.x), que admite el disco NVMe local y azure Elastic SAN como tipos de almacenamiento de respaldo. En este tutorial se usa NVMe local y se crea un volumen efímero genérico. Para usar NVMe local, la SKU de máquina virtual debe admitir discos de datos NVMe locales, como máquinas virtuales optimizadas para almacenamiento o aceleradas por GPU .

Si prefiere usar Azure Elastic SAN, consulte Uso de Azure Container Storage con Azure Elastic SAN.

Instalación de la extensión de Kubernetes

Para agregar o actualizar a la versión más reciente de k8s-extension, ejecute el comando siguiente.

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

Habilitación de Azure Container Storage en el clúster de AKS

Ejecute el comando siguiente para habilitar Azure Container Storage en un clúster de AKS existente mediante NVMe local. Azure Container Storage instala automáticamente la versión más reciente disponible y se actualiza automáticamente. No se admite la selección de versión manual.

az aks update -n myAKSCluster -g myResourceGroup --enable-azure-container-storage ephemeralDisk

La implementación puede tardar hasta cinco minutos. Cuando se completa, el clúster AKS tiene Azure Container Storage instalado y los componentes del tipo de almacenamiento NVMe local implementados. También crea la clase de almacenamiento predeterminada local .

Conexión al clúster y comprobación del estado

Si aún no está conectado al clúster desde el tutorial anterior, ejecute los siguientes comandos. Si ya está conectado, puede omitir esta sección.

  1. Descargue las credenciales del clúster y configure la CLI de Kubernetes para usarlas. De forma predeterminada, las credenciales se almacenan en ~/.kube/config. Proporcione una ruta de acceso diferente mediante el --file argumento si es necesario.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Compruebe la conexión enumerando los nodos del clúster.

    kubectl get nodes
    
  3. Asegúrese de que todos los nodos notifican un estado de Ready.

Comprobación de la clase de almacenamiento

Ejecute el siguiente comando para comprobar que se crea la clase de almacenamiento:

kubectl get storageclass local

Debería mostrarse una salida similar a esta:

NAME    PROVISIONER                RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
local   localdisk.csi.acstor.io    Delete          WaitForFirstConsumer   true                   10s

Implementación de un pod con un volumen efímero genérico

Cree un pod con Fio (Evaluador de E/S flexible) para realizar pruebas comparativas y simulación de carga de trabajo, que use un volumen efímero genérico.

  1. Use su editor de texto favorito para crear un archivo de manifiesto YAML, como code fiopod.yaml.

  2. Pegue el código siguiente y guarde el archivo.

    kind: Pod
    apiVersion: v1
    metadata:
      name: fiopod
    spec:
      nodeSelector:
        "kubernetes.io/os": linux
      containers:
        - name: fio
          image: mayadata/fio
          args: ["sleep", "1000000"]
          volumeMounts:
            - mountPath: "/volume"
              name: ephemeralvolume
      volumes:
        - name: ephemeralvolume
          ephemeral:
            volumeClaimTemplate:
              spec:
                volumeMode: Filesystem
                accessModes: ["ReadWriteOnce"]
                storageClassName: local
                resources:
                  requests:
                    storage: 10Gi
    
  3. Aplique el archivo de manifiesto YAML para implementar el pod.

    kubectl apply -f fiopod.yaml
    

Comprobación de las pruebas comparativas de implementación y ejecución

Compruebe que el pod se está ejecutando:

kubectl get pod fiopod

Debería ver el pod en estado en funcionamiento. Una vez en ejecución, puede ejecutar una prueba comparativa de Fio:

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

Ahora ha implementado un pod que usa NVMe local como almacenamiento y puede usarlo para las cargas de trabajo de Kubernetes.

Para más información sobre Azure Container Storage, consulte ¿Qué es Azure Container Storage?

Limpieza de recursos

No necesitará Azure Container Storage para el resto de esta serie de tutoriales, por lo que se recomienda eliminarlo ahora para evitar incurrir en cargos innecesarios de Azure.

  1. Elimine el pod.

    kubectl delete pod fiopod
    
  2. Elimine el volumen genérico efímero.

    kubectl delete pv ephemeralvolume
    
  3. Elimine la instancia de extensión.

    az aks update -n myAKSCluster -g myResourceGroup --disable-azure-container-storage
    

Paso siguiente

En este tutorial, ha implementado Azure Container Storage en el clúster de AKS. Ha aprendido a:

  • Habilite Azure Container Storage en el clúster de AKS.
  • Implemente un pod con un volumen efímero genérico.

En el siguiente tutorial, aprenderá a implementar una aplicación en el clúster.