Compartir a través de


Tutorial: Instalar Almacenamiento de contenedores de Azure para su uso 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 y creado de forma nativa para contenedores. Use este tutorial para instalar la versión de producción más reciente de Azure Container Storage en un clúster de Azure Kubernetes Service (AKS), tanto si va a crear un nuevo clúster como si habilita el servicio en una implementación existente.

Si prefiere la versión de código abierto de Azure Container Storage, visite el repositorio local-csi-driver para obtener instrucciones de instalación alternativas.

Al final de este tutorial, hará lo siguiente:

  • Preparación del entorno de la CLI de Azure
  • Crear o seleccionar un grupo de recursos para el clúster
  • Confirmación de que los tipos de máquina virtual del grupo de nodos cumplen los criterios de instalación
  • Instalación de Azure Container Storage mediante la creación de un nuevo clúster de AKS o la habilitación en un clúster existente

Importante

Este artículo se aplica a Azure Container Storage (versión 2.x.x). Para versiones anteriores, consulte la documentación de Azure Container Storage (versión 1.x.x). Si ya tiene Azure Container Storage (versión 1.x.x) instalado en el clúster de AKS, quítelo siguiendo estos pasos.

Requisitos previos

  • Cree una suscripción de Azure si aún no tiene una al registrarse para obtener una cuenta gratuita.

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

  • Planee la configuración del grupo de nodos:

    • Use Linux como tipo de sistema operativo (No se admite Windows).
    • Seleccione una SKU de máquina virtual que admita discos de datos NVMe locales, como máquinas virtuales optimizadas para almacenamiento o aceleradas por GPU .
    • En el caso de los clústeres existentes, asegúrese de que los grupos de nodos ya usan una SKU de máquina virtual compatible antes de habilitar Azure Container Storage.
  • Instale la versión más reciente de la CLI de Azure (2.77.0 o posterior) y, a continuación, inicie sesión con az login. Evite usar Azure Cloud Shell (ya que az upgrade no está disponible) y deshabilite extensiones en conflicto como, por aks-preview ejemplo, si se producen problemas.

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

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. 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.
  • Dónde se ejecutan los recursos en Azure si no especifica otra región durante la creación de recursos.

Cree un grupo de recursos con el comando az group create. Reemplace <resource-group-name> por el nombre del grupo de recursos que quiere crear y reemplace <location> por una región de Azure como eastus, westus2, westus3 o westeurope. Si va a habilitar Azure Container Storage en un clúster de AKS existente, use el grupo de recursos que ya hospeda el clúster.

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

Si el grupo de recursos se crea correctamente, verá un resultado similar al de este ejemplo:

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

Instalación de Azure Container Storage en un clúster de AKS

Elija el escenario que coincida con el entorno.

Importante

Azure Container Storage instala automáticamente la versión más reciente disponible y se actualiza automáticamente. No se admite la selección manual de versiones.

Opción 1: Creación de un nuevo clúster de AKS con Azure Container Storage habilitado

Ejecute el comando siguiente para crear un nuevo clúster de AKS e instalar Azure Container Storage. Reemplace <cluster-name> y <resource-group> por sus propios valores y especifique qué tipo de máquina virtual desea usar.

az aks create -n <cluster-name> -g <resource-group> --node-vm-size Standard_L8s_v3 --enable-azure-container-storage --generate-ssh-keys

La implementación tarda entre 5 y 10 minutos. Cuando se complete, tendrá un clúster de AKS con Almacenamiento de contenedores de Azure instalado y los componentes para el tipo de almacenamiento NVMe local implementados.

Opción 2: Habilitación de Azure Container Storage en un clúster de AKS existente

Ejecute el comando siguiente para habilitar Azure Container Storage en un clúster de AKS existente. Reemplace <cluster-name> y <resource-group> con sus propios valores.

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

La implementación tarda entre 5 y 10 minutos. Cuando se complete, el clúster de AKS de destino tiene instalado Almacenamiento de contenedores de Azure y los componentes para el tipo de almacenamiento NVMe local implementados.

  • Preparación de Terraform y autenticación en Azure
  • Definición del grupo de recursos y la configuración del clúster de AKS
  • Confirmación de que los tipos de máquina virtual del grupo de nodos cumplen los criterios de instalación
  • Aplicación de Terraform para implementar Azure Container Storage o habilitarlo en un clúster existente

Importante

Este artículo se aplica a Azure Container Storage (versión 2.x.x). Para versiones anteriores, consulte la documentación de Azure Container Storage (versión 1.x.x). Si ya tiene Azure Container Storage (versión 1.x.x) instalado en el clúster de AKS, quítelo siguiendo estos pasos.

Requisitos previos

  • Cree una suscripción de Azure si aún no tiene una al registrarse para obtener una cuenta gratuita.

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

  • Planee la configuración del grupo de nodos:

    • Use Linux como tipo de sistema operativo (No se admite Windows).
    • Seleccione una SKU de máquina virtual que admita discos de datos NVMe locales, como máquinas virtuales optimizadas para almacenamiento o aceleradas por GPU .
    • En el caso de los clústeres existentes, asegúrese de que los grupos de nodos ya usan una SKU de máquina virtual compatible antes de habilitar Azure Container Storage.
  • Instale la versión 2.77.0 o posterior de la CLI de Azure y luego inicie sesión con az login.

  • Instale terraform versión 1.5 o posterior y confirme la instalación con terraform version. Terraform puede reutilizar la autenticación de la CLI de Azure.

  • Instale kubectl para poder validar el clúster después de la implementación. Si es necesario, ejecute az aks install-cli para instalarlo localmente.

Establecimiento del contexto de la suscripción

Terraform puede determinar una suscripción de Azure de destino a través de varios medios:

  • subscription_id en el bloque de proveedor
  • Variable del entorno ARM_SUBSCRIPTION_ID
  • Suscripción predeterminada de la CLI de Azure
  • Identidad administrada (cuando se ejecuta en Azure)

Para su uso local, establezca el contexto de la CLI de Azure:

az account set --subscription <subscription-id>

Instalación de Azure Container Storage en un clúster de AKS

Elija el escenario que coincida con el entorno.

Importante

Azure Container Storage instala automáticamente la versión más reciente disponible y se actualiza automáticamente. No se admite la selección manual de versiones.

Opción 1: Creación de un nuevo clúster de AKS con Azure Container Storage habilitado

  1. En un directorio de trabajo vacío, cree un main.tf archivo con la siguiente configuración mínima de un clúster de AKS. Actualice los nombres de recursos, las ubicaciones y los tamaños de máquina virtual para cumplir los requisitos.

    terraform {
      required_version = ">= 1.5.0"
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 4.x"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    resource "azurerm_resource_group" "rg" {
      name     = "demo-aks-rg"
      location = "eastus"
    }
    
    resource "azurerm_kubernetes_cluster" "aks" {
      name                = "demo-aks-cluster"
      dns_prefix          = "demo-aks"
      location            = azurerm_resource_group.rg.location
      resource_group_name = azurerm_resource_group.rg.name
    
      default_node_pool {
        name       = "systempool"
        vm_size    = "Standard_L8s_v3"
        node_count = 3
      }
    
      identity {
        type = "SystemAssigned"
      }
    }
    
    resource "azurerm_kubernetes_cluster_extension" "container_storage" {
      name           = "microsoft-azurecontainerstorage"
      cluster_id     = azurerm_kubernetes_cluster.aks.id
      extension_type = "microsoft.azurecontainerstoragev2"
    
      configuration_settings = {
        enable-azure-container-storage = "true"
      }
    }
    
  2. Inicialice el directorio de trabajo para descargar el proveedor de AzureRM.

    terraform init
    
  3. Revise los cambios planeados.

    terraform plan
    
  4. Aplique la configuración para crear el grupo de recursos, el clúster de AKS y la extensión de Azure Container Storage. La implementación suele tardar entre 5 y 10 minutos.

    terraform apply
    

Opción 2: Habilitación de Azure Container Storage en un clúster de AKS existente

Si el clúster de AKS ya existe y lo está administrando fuera de Terraform, todavía puede habilitar Azure Container Storage creando solo el recurso de extensión. Use un origen de datos para buscar el identificador del clúster.

terraform {
  required_version = ">= 1.5.0"
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 4.x"
    }
  }
}

provider "azurerm" {
  features {}
}

data "azurerm_kubernetes_cluster" "existing" {
  name                = "existing-aks"
  resource_group_name = "existing-aks-rg"
}

resource "azurerm_kubernetes_cluster_extension" "container_storage" {
  name           = "microsoft-azurecontainerstorage"
  cluster_id     = data.azurerm_kubernetes_cluster.existing.id
  extension_type = "microsoft.azurecontainerstoragev2"

  configuration_settings = {
    enable-azure-container-storage = "true"
  }
}

Ejecute terraform init (si se trata de un nuevo directorio de trabajo) seguido de terraform apply para instalar Azure Container Storage en el clúster de destino.

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

Después de la instalación, configure kubectl para conectarse al clúster y comprobar que los nodos están listos.

  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 <resource-group> --name <cluster-name>
    
  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, similar a la siguiente salida:

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-34832848-vmss000000   Ready    agent   80m   v1.32.6
    aks-nodepool1-34832848-vmss000001   Ready    agent   80m   v1.32.6
    aks-nodepool1-34832848-vmss000002   Ready    agent   80m   v1.32.6
    

Pasos siguientes