Share via


Inicio rápido: Uso de la versión preliminar de Azure Container Storage con Azure Kubernetes Service

Azure Container Storage es un servicio de administración, implementación y orquestación de volúmenes basado en la nube creado de forma nativa para contenedores. En este inicio rápido se muestra cómo crear un clúster de Azure Kubernetes Service (AKS) basado en Linux, instalar Azure Container Storage y crear un grupo de almacenamiento mediante la CLI de Azure.

Requisitos previos

  • Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

  • En este artículo se necesita la versión más reciente de la CLI de Azure (2.35.0 o posteriores). Consulte Cómo instalar la CLI de Azure. Si usa el entorno de Bash en Azure Cloud Shell, ya está instalada la versión más reciente. Si tiene previsto ejecutar los comandos localmente en lugar de en Azure Cloud Shell, asegúrese de ejecutarlos con privilegios administrativos. Para más información, consulte Introducción a Azure Cloud Shell.

  • Necesitará el cliente de línea de comandos de Kubernetes, kubectl. Ya está instalado si usa Azure Cloud Shell o puede instalarlo de manera local ejecutando el comando az aks install-cli.

Introducción

  • Tome nota del identificador de suscripción de Azure. Si quiere usar Azure Elastic SAN como almacenamiento de datos, necesitará un rol de Propietario de control de acceso basado en roles de Azure (Azure RBAC) en la suscripción de Azure. El acceso de nivel de propietario concede a la extensión Azure Container Storage los permisos adecuados para interactuar con la API de Elastic SAN. Si planea usar discos de Azure o disco efímero como almacenamiento de datos, no necesita permisos especiales en la suscripción.

  • Inicie Azure Cloud Shell, o si usa una instalación local, inicie sesión en Azure mediante el comando az login.

  • Si usa Azure Cloud Shell, es posible que se le pida que monte el almacenamiento. Seleccione la suscripción de Azure donde desea crear la cuenta de almacenamiento y seleccione Crear.

Instalación de la extensión necesaria

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

Establecimiento del contexto de la suscripción

Establezca el contexto de la suscripción ejecutando el comando az account set. Puede ver los identificadores de todas las suscripciones a las que tiene acceso ejecutando el comando az account list --output table. Recuerde reemplazar <subscription-id> por el id. de la suscripción.

az account set --subscription <subscription-id>

Crear un grupo de recursos

Un grupo de recursos de Azure es un grupo lógico que contiene los recursos de Azure que desea administrar como grupo. Si ya tiene un grupo de recursos que desea usar, puede omitir esta sección.

Cuando crea un grupo de recursos, se le pide que especifique una ubicación. Esta ubicación es:

  • La ubicación de almacenamiento de los metadatos del grupo de recursos.
  • El lugar en el que se ejecutan los recursos en Azure si no se especifica otra región al crearlos.

Cree un grupo de recursos con el comando az group create. Reemplace <resource-group> por el nombre del grupo de recursos que desea crear y reemplace <location> por eastus, westus2, westus3 o westeurope. Consulte esta lista de regiones de Azure en las que Azure Container Storage está disponible.

az group create --name <resource-group> --location <location>

Si el grupo de recursos se creó correctamente, verá un resultado similar al siguiente:

{
  "id": "/subscriptions/<guid>/resourceGroups/myContainerStorageRG",
  "location": "eastus",
  "managedBy": null,
  "name": "myContainerStorageRG",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Elija una opción de almacenamiento de datos para el grupo de almacenamiento

Antes de implementar Azure Container Storage, deberá decidir qué opción de almacenamiento de back-end desea usar para crear el grupo de almacenamiento y los volúmenes persistentes. Actualmente hay tres opciones disponibles:

  • Azure Elastic SAN: Azure Elastic SAN es una buena opción para bases de datos de uso general, servicios de streaming y mensajería, entornos de CD/CI y otras cargas de trabajo de nivel 1 o nivel 2. El almacenamiento se aprovisiona a petición por volumen e instantánea de volumen creados. Varios clústeres pueden acceder simultáneamente a una sola SAN, pero los volúmenes persistentes solo se pueden adjuntar por un consumidor a la vez.

  • Azure Disks: Azure Disks es una buena opción para bases de datos como MySQL, MongoDB y PostgreSQL. El almacenamiento se aprovisiona por tamaño de bloque de almacenamiento de contenedor de destino y tamaño máximo de volumen.

  • Disco efímero: esta opción usa unidades NVMe locales o SSD temporales en los nodos del clúster de AKS. Es extremadamente sensible a la latencia (baja latencia de sub ms), por lo que es mejor para las aplicaciones sin necesidad de durabilidad de datos o con compatibilidad integrada con la replicación de datos, como Cassandra. AKS detecta el almacenamiento efímero disponible en los nodos de AKS y adquiere las unidades para la implementación de volúmenes.

Nota:

Para Azure Elastic SAN y Azure Disks, Azure Container Storage implementará el almacenamiento de respaldo como parte de la instalación. No es necesario crear su propio Elastic SAN ni Azure Disk. Para usar Elastic SAN, necesitará un rol de Propietario de control de acceso basado en roles de Azure (Azure RBAC) en la suscripción de Azure.

Consumo de recursos

Azure Container Storage requiere determinados recursos de nodo para ejecutar componentes para el servicio. En función de la selección del tipo de grupo de almacenamiento, que especificará al instalar Azure Container Storage, estos son los recursos que se consumirán:

Tipo de grupo de almacenamiento Núcleos de CPU RAM
Azure Elastic SAN  None None
Azure Disks 1 1 GiB
Disco efímero: SSD temporal 1 1 GiB
Disco efímero: NVMe local 25 % de núcleos (dependiendo del tamaño del nodo)* 2 GiB

Los recursos consumidos son por nodo y se consumirán para cada nodo del grupo de nodos donde se instalará Azure Container Storage. Si los nodos no tienen suficientes recursos, Azure Container Storage no se ejecutará. Kubernetes volverá a intentar inicializar automáticamente estos pods con errores, por lo que si los recursos se liberan, estos pods se pueden inicializar de nuevo.

*En un grupo de almacenamiento, escriba Disco efímero: NVMe local, si usa varios tipos de SKU de máquina virtual para los nodos del clúster, el 25 % de los núcleos de CPU consumidos se aplica a la SKU más pequeña usada. Por ejemplo, si usa una combinación de tipos de máquina virtual de 8 núcleos y 16 núcleos, el consumo de recursos es de 2 núcleos.

Elegir un tipo de máquina virtual para el clúster

Especificará el tipo de máquina virtual al crear el clúster en la sección siguiente. Siga estas instrucciones al elegir un tipo de máquina virtual para los nodos del clúster. Debe elegir un tipo de máquina virtual que admita Azure Premium Storage.

Crear un nuevo clúster de AKS e instalar Azure Container Storage

Si ya tiene un clúster de AKS implementado, omita esta sección y vaya a Instalar Azure Container Storage en un clúster de AKS existente.

Ejecute el comando siguiente para crear un nuevo clúster de AKS, instalar Azure Container Storage y crear un grupo de almacenamiento. Reemplace <cluster-name> y <resource-group> por sus propios valores y especifique qué tipo de máquina virtual desea usar. Reemplace <storage-pool-type> por azureDisk, ephemeralDisk o elasticSan. Si selecciona ephemeralDisk, también puede especificar --storage-pool-option y los valores pueden ser NVMe o Temp.

Al ejecutar este comando se habilitará Azure Container Storage en el grupo de nodos del sistema* con tres máquinas virtuales Linux. De forma predeterminada, el grupo de nodos del sistema se denomina nodepool1. Si desea habilitar Azure Container Storage en otros grupos de nodos, consulte Instalación de Azure Container Storage en grupos de nodos específicos. Si desea especificar parámetros adicionales del bloque de almacenamiento con este comando, consulte esta tabla.

*Si hay grupos de nodos existentes con la etiqueta acstor.azure.com/io-engine:acstor, Azure Container Storage se instalará de forma predeterminada. De lo contrario, se instala en el grupo de nodos del sistema.

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>

La implementación tardará entre 10 y 15 minutos. Cuando finalice, tendrá instalado un clúster de AKS con Azure Container Storage instalado, los componentes del tipo de bloque de almacenamiento elegido habilitado y un bloque de almacenamiento predeterminado. Si desea habilitar tipos de bloque de almacenamiento adicionales para crear grupos de almacenamiento adicionales, consulte Habilitación de tipos de bloque de almacenamiento adicionales.

Importante

Si especificó Azure Elastic SAN como almacenamiento de respaldo para el grupo de almacenamiento y no tiene acceso de nivel de propietario a la suscripción de Azure, solo se instalará Azure Container Storage y no se creará ningún grupo de almacenamiento. En este caso, tendrá que crear manualmente un grupo de almacenamiento de Elastic SAN.

Mostrar los grupos de almacenamiento disponibles

Para obtener la lista de grupos de almacenamiento disponibles, ejecute el siguiente comando:

kubectl get sp -n acstor

Para comprobar el estado de un bloque de almacenamiento, ejecute el siguiente comando:

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

Si el Message no dice StoragePool is ready, el bloque de almacenamiento sigue creando o experimentando un problema. Consulte Solución de problemas de Azure Container Storage.

Instalar Azure Container Storage en un clúster de AKS existente

Si ya tiene un clúster de AKS que cumple los requisitos de máquina virtual, ejecute el siguiente comando para instalar Azure Container Storage en el clúster y crear un grupo de almacenamiento. Reemplace <cluster-name> y <resource-group> con sus propios valores. Reemplace <storage-pool-type> por azureDisk, ephemeraldisk o elasticSan.

Al ejecutar este comando, se habilitará Azure Container Storage en el grupo de nodos del sistema, que de forma predeterminada se denomina nodepool1*. Si quiere habilitarlo en otros grupos de nodos, consulte Instalación de Azure Container Storage en grupos de nodos específicos. Si desea especificar parámetros adicionales del bloque de almacenamiento, consulte esta tabla.

*Si hay grupos de nodos existentes con la etiqueta acstor.azure.com/io-engine:acstor, Azure Container Storage se instalará de forma predeterminada. De lo contrario, se instala en el grupo de nodos del sistema.

Importante

Si ha creado el clúster de AKS con el Azure Portal: es probable que el clúster tenga un grupo de nodos de usuario y un grupo de nodos del sistema o agente. Sin embargo, si el clúster consta solo de un grupo de nodos del sistema, que es el caso de los clústeres de pruebas y desarrollo creados con Azure Portal, primero deberá agregar un nuevo grupo de nodos de usuario y, a continuación, etiquetarlo. Esto se debe a que al crear un clúster de AKS con Azure Portal, se agrega un defecto CriticalAddOnsOnly a la agrupación de nodos del agente o sistema, que bloquea la instalación de Azure Container Storage en el grupo de nodos del sistema. Esta distorsión no se agrega cuando se crea un clúster AKS a través de Azure CLI.

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

La implementación tardará entre 10 y 15 minutos en completarse.

Instalar Azure Container Storage en grupos de nodos específicos

Si desea instalar Azure Container Storage en grupos de nodos específicos, siga estas instrucciones. Los grupos de nodos deben contener al menos tres máquinas virtuales Linux cada uno.

  1. Ejecute el siguiente comando para ver la lista de grupos de nodos disponibles. Reemplace <resource-group> y <cluster-name> con sus propios valores.

    az aks nodepool list --resource-group <resource-group> --cluster-name <cluster-name>
    
  2. Ejecute el comando siguiente para instalar Azure Container Storage en grupos de nodos específicos. Reemplace <cluster-name> y <resource-group> con sus propios valores. Reemplace <storage-pool-type> por azureDisk, ephemeraldisk o elasticSan. Si selecciona ephemeralDisk, también puede especificar --storage-pool-option y los valores pueden ser NVMe o 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>
    

Habilitación de tipos de bloques de almacenamiento adicionales

Si desea habilitar un tipo de bloque de almacenamiento que no se ha habilitado originalmente durante la instalación de Azure Container Storage, ejecute el comando siguiente. Reemplace <cluster-name> y <resource-group> con sus propios valores. Para <storage-pool-type>, especifique azureDisk, ephemeralDisk o elasticSan.

Si desea especificar parámetros adicionales del bloque de almacenamiento con este comando, consulte esta tabla.

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

Si el nuevo tipo de bloque de almacenamiento que ha habilitado ocupa más recursos que el tipo de bloque de almacenamiento que ya está habilitado, el consumo de recursos cambiará a la cantidad máxima.

Sugerencia

Si ha agregado un nuevo grupo de nodos al clúster y quiere ejecutar Azure Container Storage en ese grupo de nodos, puede especificar el grupo de nodos con --azure-container-storage-nodepools <nodepool-name> al ejecutar el comando az aks update.

Deshabilitar tipos de bloque de almacenamiento

Si ya no usa un tipo de bloque de almacenamiento específico y quiere deshabilitarlo para liberar recursos en el grupo de nodos, ejecute el siguiente comando. Reemplace <cluster-name> y <resource-group> con sus propios valores. Para <storage-pool-type>, especifique azureDisk, ephemeralDisk o elasticSan.

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

Nota:

Si tiene un bloque de almacenamiento existente del tipo que intenta deshabilitar, el tipo de bloque de almacenamiento no se deshabilitará.

Pasos siguientes

Para crear volúmenes persistentes, seleccione el vínculo para el tipo de almacenamiento de respaldo seleccionado.