Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Con Azure Container Storage, puede mejorar la disponibilidad de las aplicaciones con estado mediante el almacenamiento con redundancia de zona (ZRS) o el almacenamiento con redundancia local (LRS). Elija LRS con ubicación zonal explícita o ZRS para la replicación sincrónica en tres zonas de disponibilidad, en función de las necesidades de resistencia y rendimiento.
Elección de un modelo de redundancia
Almacenamiento con redundancia local (LRS): con LRS, Azure almacena tres copias de cada SAN elástico en un único centro de datos. Esta redundancia protege frente a errores de hardware, como un disco con errores. Si se produce un desastre en ese centro de datos, todas las réplicas se pueden perder o no estar disponibles.
Almacenamiento con redundancia de zona (ZRS): con ZRS, Azure almacena tres copias de cada SAN elástico en tres zonas de disponibilidad distintas de la misma región. Las operaciones de escritura son sincrónicas. La operación de escritura se completa solo después de que se actualicen las tres réplicas.
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 más reciente de la CLI de Azure. Consulte Cómo instalar la CLI de Azure. Si usa el entorno de Bash en Azure Cloud Shell, es probable que la versión más reciente ya esté instalada. 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 localmente mediante la ejecución del comandoaz aks install-cli.Compruebe si la región de destino es compatible con las regiones de 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
- Cuando ZRS se habilita recientemente en una región, es posible que tenga que registrar una marca de característica de nivel de suscripción para que Azure Container Storage pueda implementar destinos SAN:
Register-AzProviderFeature -FeatureName EnableElasticSANTargetDeployment -ProviderNamespace Microsoft.ElasticSan
- Compruebe que la región admite la opción de redundancia elegida. Consulte la disponibilidad actual de la región de Elastic SAN.
Creación de una clase StorageClass con almacenamiento con redundancia local
Uso de una SKU LRS sin especificar una zona
Si una región admite zonas y no especifica una zona en StorageClass, Azure Container Storage tiene como valor predeterminado la zona 1.
Cree un archivo de manifiesto YAML como storageclass.yamly, a continuación, use la especificación siguiente.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: esan-lrs-default
provisioner: san.csi.azure.com
parameters:
skuName: Premium_LRS
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
Usar una SKU LRS y especificar una zona
Use una sola zona al crear una SAN elástica de LRS en regiones que admitan zonas de disponibilidad. En regiones sin zonas, omita el zones parámetro para evitar errores de validación.
Para LRS con anclaje de zona, el programador coloca el pod en un nodo de la zona especificada y el volumen persistente (PV) se enlaza a la SAN de la zona correspondiente. Los volúmenes LRS son accesibles desde cualquier zona, por lo que Azure Container Storage no restringe los datos adjuntos entre zonas. La sección allowedTopologies garantiza que el PV se asocie a un nodo de la misma zona geográfica que la SAN de LRS.
Cree un archivo de manifiesto YAML como storageclass.yamly, a continuación, use la especificación siguiente.
# LRS with a zone (2)
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: esan-lrs-zone2
provisioner: san.csi.azure.com
parameters:
skuName: Premium_LRS
zones: "2"
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
# Optional:
allowedTopologies:
- matchLabelExpressions:
- key: topology.kubernetes.io/zone
values:
- canadacentral-2
Creación de una clase StorageClass con almacenamiento con redundancia de zona
No es necesario especificar zonas porque Azure Container Storage tiene como valor predeterminado las tres zonas. Si establece el zones campo, enumere las tres zonas como "1,2,3".
Cree un archivo de manifiesto YAML como storageclass.yamly, a continuación, use la especificación siguiente.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: esan-zrs-zones
provisioner: san.csi.azure.com
parameters:
skuName: Premium_ZRS
zones: "1,2,3" # optional
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
Creación de la clase StorageClass
kubectl apply -f storageclass.yaml
Compruebe que se ha creado storageClass:
kubectl get storageclass <storage-class-name>
Debería mostrarse una salida similar a esta:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
esan-zrs-zones san.csi.azure.com Delete WaitForFirstConsumer true 10s
Creación de una notificación de volumen persistente
Cree un archivo de manifiesto YAML como acstor-pvc.yaml. El valor de PVC name puede ser cualquier valor. Use el nombre storageClass que creó en los pasos anteriores.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: managedpvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: esan-zrs-zones # or esan-lrs-zone2, esan-lrs-default
Aplique el manifiesto para crear la PVC.
kubectl apply -f acstor-pvc.yaml
Debería mostrarse una salida similar a esta:
persistentvolumeclaim/managedpvc created
Implementar un pod y asociar un volumen persistente
Cree un archivo de manifiesto YAML como acstor-pod.yaml.
apiVersion: v1
kind: Pod
metadata:
name: esan-app
spec:
containers:
- name: app
image: mcr.microsoft.com/oss/nginx/nginx:1.25.2
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: managedpvc
Aplique el manifiesto para crear el pod.
kubectl apply -f acstor-pod.yaml
Debería mostrarse una salida similar a esta:
pod/esan-app created
Compruebe el PV y la StorageClass:
kubectl get pv
kubectl describe sc esan-zrs-zones
kubectl describe sc esan-lrs-zone2
Confirme el soporte regional y el modelo de redundancia para los volúmenes con la lista de regiones de Elastic SAN.