Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Container Storage es un servicio de administración, implementación y orquestación de volúmenes basado en la nube creado 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 crea un nuevo clúster como si habilita el servicio en un clúster existente.
Este artículo explica cómo instalar Azure Container Storage usando dos flujos compatibles (solo instalador o instalador + capability), cómo se activa la instalación de componentes y cómo verificar y solucionar problemas en tu despliegue. Los tipos de almacenamiento de volúmenes persistentes instalan controladores que implementan la Interfaz de Almacenamiento de Contenedores (CSI). Azure Container Storage también puede habilitar y gestionar el acelerador distribuido para almacenamiento en la nube (DACS), que instala una extensión independiente y no crea una StorageClass.
Si prefiere la versión de código abierto de Azure Container Storage, consulte el repositorio local-csi-driver para obtener instrucciones de instalación alternativas.
Al final de este tutorial, puede:
- 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
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
En este artículo se requiere la versión v2.83.0 o posterior de la CLI de Azure. Para obtener más información, consulte Cómo instalar la CLI de Azure. Deshabilite extensiones como, por
aks-previewejemplo, si se producen problemas. Instale o actualice las extensiones según sea necesario:az extension add --upgrade --name k8s-extension-
az extension add --upgrade --name elastic-san(Solo SAN elástico)
Necesita el cliente de línea de comandos de Kubernetes,
kubectl. Ya está instalado si usa Azure Cloud Shell. Para instalarlo localmente, ejecute elaz aks install-clicomando .Compruebe si la región de destino es compatible con las regiones 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 (VM) que admita discos de datos NVMe locales si tiene previsto usar el tipo de almacenamiento NVMe local, 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.
Si usa Elastic SAN por primera vez en la suscripción, ejecute este comando de registro único:
az provider register --namespace Microsoft.ElasticSan
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 suscripción mediante la ejecución de az account list --output table. Reemplace <subscription-id> con el Id. de suscripción.
az account set --subscription <subscription-id>
Crear un grupo de recursos
Un grupo de recursos de Azure es un contenedor lógico para los recursos. Al crear un grupo de recursos, especifique una ubicación. Esa ubicación almacena los metadatos del grupo de recursos y actúa como la región predeterminada para los recursos que cree sin una región explícita.
Cree un grupo de recursos mediante az group create. Reemplace <resource-group-name> por el nombre del grupo de recursos y <location> por una región de Azure como eastus, westus2, westus3o westeurope. Si habilita 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 nuevo clúster de AKS
Elija el escenario que coincida con el entorno.
Importante
Azure Container Storage instala la versión principal más reciente de forma predeterminada. Puede fijar una versión principal con --container-storage-version. No se pueden fijar versiones secundarias o de revisión.
Instalación solo mediante el instalador
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 puede tardar hasta 5 minutos. La instalación del controlador CSI se aplaza hasta que se crea una clase de almacenamiento o se habilita un tipo de almacenamiento más adelante.
Siga las instrucciones para crear una clase de almacenamiento NVMe local o una clase de almacenamiento elastic SAN .
instalación con instalador + tipo de almacenamiento
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 ephemeralDisk --generate-ssh-keys
Este comando instala el instalador, implementa el controlador NVMe CSI local y crea una clase de almacenamiento predeterminada denominada local-csi. Puede instalar y usar NVMe local y Elastic SAN proporcionando una lista como ephemeralDisk elasticSan.
Instalación de Azure Container Storage en un clúster de AKS existente
Instalación solo mediante el instalador
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 puede tardar hasta 5 minutos. Cuando se completa, el clúster tiene instalado el componente del instalador de Azure Container Storage. La instalación del controlador CSI se aplaza hasta que se crea una clase de almacenamiento o se habilita un tipo de almacenamiento más adelante. Siga las instrucciones para crear una clase de almacenamiento NVMe local o una clase de almacenamiento elastic SAN .
instalación con instalador + tipo de almacenamiento
Ejecute el comando siguiente para habilitar Azure Container Storage en un clúster de AKS existente. Reemplace <cluster-name> y <resource-group> por sus propios valores y especifique qué tipo de almacenamiento desea usar.
az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage elasticSan
Este comando instala el instalador, implementa el controlador Elastic SAN CSI y crea una clase de almacenamiento predeterminada denominada azuresan-csi. Puede instalar y usar NVMe local y Elastic SAN proporcionando una lista como ephemeralDisk elasticSan.
Instalar un acelerador distribuido para almacenamiento en la nube (vista previa)
Activa el acelerador distribuido para almacenamiento en la nube en un clúster AKS existente usando el distributedAccelerator valor. Se requiere la mayúscula A . La extensión se instala en el recurso de clúster administrado de AKS; no necesitas conectar el clúster a Arc.
Usa aks-preview la versión 22.0.0b9 o posterior. Instale o actualice la extensión, compruebe su versión e instale o actualice connectedk8s y k8s-extension para gestionar e inspeccionar la ampliación del DACS:
az extension add --name aks-preview --upgrade --yes
az extension show --name aks-preview --query version --output tsv
az extension add --name connectedk8s --upgrade --yes
az extension add --name k8s-extension --upgrade --yes
Antes de habilitar DACS, selecciona un pool de nodos Linux con discos de datos NVMe locales dedicados a la caché. Aplica la dacs.azure.com/processing-unit=cpu etiqueta a través de la configuración de nodo-pool, preservando cualquier etiqueta personalizada existente. Siga estos pasos: Verificar el grupo de nodos de caché.
Caution
Activar DACS instala un DaemonSet previo que descubre, formatea y monta discos NVMe locales en nodos de caché etiquetados. Etiqueta solo los nodos con discos que no estén reclamados por otro componente de almacenamiento.
Ejecuta el siguiente comando, reemplazando <cluster-name> y <resource-group> con tus valores:
az aks update \
--name <cluster-name> \
--resource-group <resource-group> \
--enable-azure-container-storage distributedAccelerator
Este comando instala la distributedaccelerator extensión, el controlador DACS y el prerrequisito NVMe DaemonSet en kube-system, y la caches.storage.azure.com definición de recurso personalizada (CRD). No es necesario instalar una tabla de requisitos previos por separado ni gestionar uno mismo la versión de Helm de la extensión. No crea una StorageClass ni provisiona un recurso de caché ni pods de servidor de caché por defecto. Una instalación exitosa de extensiones no significa por sí sola que una caché esté lista para el tráfico de aplicaciones.
Pase distributedAccelerator por separado en este comando, en lugar de combinarlo con las opciones de almacenamiento de volúmenes persistentes mostradas anteriormente. Antes de aprovisionar servidores de caché, verifica que los prerrequisitos gestionados estén listos en cada nodo de caché etiquetado. Para la configuración de caché y el flujo de trabajo de la aplicación, consulte Empezar con acelerador distribuido para el almacenamiento en la nube en AKS.
Para eliminar DACS, sigue Eliminar acelerador distribuido para almacenamiento en la nube. Elimina los recursos de caché mientras el controlador está en marcha y luego desactiva los DACS. La desactivación elimina el controlador y el prerrequisito gestionado DaemonSet; no elimines esos prerrequisitos por separado.
- 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
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
En este artículo se requiere la versión v2.83.0 o posterior de la CLI de Azure. Para obtener más información, consulte Cómo instalar la CLI de Azure. Deshabilite extensiones como, por
aks-previewejemplo, si se producen problemas. Instale o actualice las extensiones según sea necesario:az extension add --upgrade --name k8s-extension-
az extension add --upgrade --name elastic-san(Solo SAN elástico)
Necesita el cliente de línea de comandos de Kubernetes,
kubectl. Ya está instalado si usa Azure Cloud Shell. Para instalarlo localmente, ejecute elaz aks install-clicomando .Compruebe si la región de destino es compatible con las regiones 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 (VM) 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 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.Si usa Elastic SAN por primera vez en la suscripción, ejecute este comando de registro único:
az provider register --namespace Microsoft.ElasticSan
Establecimiento del contexto de la suscripción
Terraform puede determinar una suscripción de Azure de destino a través de varios métodos:
-
subscription_iden el bloque de proveedor - Variable de 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>
Si utiliza Terraform por primera vez en la suscripción, ejecute este comando de registro por única vez:
az provider register --namespace Microsoft.KubernetesConfiguration
# Wait for registration to complete (can take a few minutes)
az provider show --namespace Microsoft.KubernetesConfiguration --query "registrationState" -o tsv
Instalación de Azure Container Storage en un nuevo clúster de AKS
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 de versión manual.
En un directorio de trabajo vacío, cree un
main.tfarchivo 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.0" } } } 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" { # NOTE: the `name` parameter must be "acstor" for Azure CLI compatibility name = "acstor" cluster_id = azurerm_kubernetes_cluster.aks.id extension_type = "microsoft.azurecontainerstoragev2" }Inicialice el directorio de trabajo para descargar el proveedor de AzureRM.
terraform initRevise los cambios planeados.
terraform planAplique 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 5 minutos.
terraform apply
Cuando se completa, el clúster tiene instalado el componente del instalador de Azure Container Storage. La instalación del controlador CSI se aplaza hasta que se crea una clase de almacenamiento. Siga las instrucciones para crear una clase de almacenamiento NVMe local o una clase de almacenamiento elastic SAN .
Instalación de Azure Container Storage en un clúster de AKS existente
Si el clúster de AKS ya existe y lo administra fuera de Terraform, todavía puede habilitar Azure Container Storage mediante la creación del 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.0"
}
}
}
provider "azurerm" {
features {}
}
data "azurerm_kubernetes_cluster" "existing" {
name = "existing-aks"
resource_group_name = "existing-aks-rg"
}
resource "azurerm_kubernetes_cluster_extension" "container_storage" {
# NOTE: the `name` parameter must be "acstor" for Azure CLI compatibility
name = "acstor"
cluster_id = data.azurerm_kubernetes_cluster.existing.id
extension_type = "microsoft.azurecontainerstoragev2"
}
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. La implementación suele tardar 5 minutos.
Cuando se completa, el clúster tiene instalado el componente del instalador de Azure Container Storage. La instalación del controlador CSI se aplaza hasta que se crea una clase de almacenamiento. Siga las instrucciones para crear una clase de almacenamiento NVMe local o una clase de almacenamiento elastic SAN .
Comprobar la instalación
Conexión al clúster de AKS
Antes de ejecutar los comandos de comprobación, asegúrese de que kubeconfig local está establecido en el clúster de destino:
az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
Si administra varios clústeres, agregue --overwrite-existing para reemplazar un contexto existente o use --context para establecer un nombre de contexto único.
Verificar el instalador (modo solo para instalador)
Después de habilitar solo el instalador, compruebe que el instalador está presente:
kubectl get deploy -n kube-system | grep acstor
Resultado esperado:
acstor-cluster-manager 2/2 2 2 4d9h
acstor-geneva 2/2 2 2 4d9h
Verificar acelerador distribuido para almacenamiento en la nube
Para una instalación DACS, comprueba la extensión en lugar de buscar una StorageClass:
az k8s-extension show \
--cluster-type managedClusters \
--cluster-name <cluster-name> \
--resource-group <resource-group> \
--name distributedaccelerator \
--query '{extensionType:extensionType,provisioningState:provisioningState,currentVersion:currentVersion,releaseTrain:releaseTrain}' \
--output table
Confirma que el tipo de extensión es microsoft.distributedaccelerator y que su estado de aprovisionamiento es Succeeded. El currentVersion campo muestra la versión instalada. El nombre del recurso de extensión es minúsculo distributedaccelerator, a diferencia de la opción distributedAcceleratorde almacenamiento de la CLI .
Después de conectarse al clúster, verifica el controlador, el DaemonSet prerrequisito y el CRD:
kubectl rollout status deployment/dacs-manager --namespace kube-system --timeout=5m
kubectl get deployment dacs-manager --namespace kube-system
kubectl rollout status daemonset/dacs-prereq --namespace kube-system --timeout=10m
kubectl get daemonset dacs-prereq --namespace kube-system
kubectl get pods --namespace kube-system --selector app.kubernetes.io/name=dacs-prereq --output wide
kubectl get crd caches.storage.azure.com
Continúa solo después de que la extensión esté en el Succeeded estado, el controlador tenga una réplica lista y el DaemonSet prerrequisito tenga un pod Ready en cada nodo de caché etiquetado. Un DaemonSet con cero réplicas deseadas no verifica la preparación para NVMe. Si una comprobación falla, consulta Solucionar problemas acelerador distribuido para almacenamiento en la nube.
Los pasos de verificación de clase de almacenamiento y de controladores CSI que siguen se aplican a los tipos de almacenamiento de volúmenes persistentes, no a DACS.
Comprobación de la presencia de la clase de almacenamiento
Después de crear una clase de almacenamiento o habilitar un tipo de almacenamiento, compruebe la clase de almacenamiento:
kubectl get sc
Ejemplo de resultado:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
azuresan-csi san.csi.azure.com Delete Immediate false 4d7h
local-csi localdisk.csi.acstor.io Delete WaitForFirstConsumer true 4d5h
Comprobación de la instalación del controlador
Compruebe los componentes esperados después de la creación de clases de almacenamiento o la instalación del tipo de almacenamiento:
kubectl get pod -n kube-system | grep acstor
Ejemplo de resultado:
pod/acstor-azuresan-csi-driver-jrqd2 7/7 Running 0 142m
pod/acstor-azuresan-csi-driver-tcdp8 7/7 Running 0 142m
pod/acstor-cluster-manager-76c67496f9-8ln5d 2/2 Running 0 3h54m
pod/acstor-cluster-manager-76c67496f9-b4c8q 2/2 Running 0 3h54m
pod/acstor-geneva-588bcbcc67-4tr5d 3/3 Running 0 3h54m
pod/acstor-geneva-588bcbcc67-k7j7k 3/3 Running 0 3h54m
pod/acstor-node-agent-46v47 1/1 Running 0 142m
pod/acstor-node-agent-6c99m 1/1 Running 0 142m
pod/acstor-otel-collector-4lfgz 1/1 Running 0 142m
pod/acstor-otel-collector-hw9nd 1/1 Running 0 142m
Depuración
En la depuración, fíjese en el sistema mientras se van implementando los componentes.
kubectl get events -n kube-system --watch
kubectl get pod -n kube-system --watch
Inspeccione los recursos personalizados helmRelease y OCIRepository usados por el instalador:
kubectl describe helmreleases.helm.installer.acstor.io -n kube-system
kubectl describe ocirepositories.source.installer.acstor.io -n kube-system
Pasos siguientes
- Uso de Azure Container Storage con NVMe local
- Uso de Azure Container Storage con SAN elástico
- Empieza con el acelerador distribuido para almacenamiento en la nube en AKS (vista previa)
- Introducción a la implementación de una base de datos postgreSQL de alta disponibilidad en Azure Kubernetes Service (AKS)
- Preguntas más frecuentes (P+F) sobre Azure Container Storage