Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Mit Azure Container Storage können Sie die zustandsbehaftete Anwendungsverfügbarkeit mithilfe von zonenredundanten Speicher (ZRS) oder lokal redundantem Speicher (LRS) verbessern. Wählen Sie LRS mit expliziter Zonenplatzierung oder ZRS für die synchrone Replikation über drei Verfügbarkeitszonen aus, basierend auf Ihren Resilienz- und Leistungsanforderungen.
Auswählen eines Redundanzmodells
Lokal redundanter Speicher (LRS): Mit LRS speichert Azure drei Kopien jedes Elastic SAN in einem einzigen Rechenzentrum. Diese Redundanz schützt vor Hardwarefehlern wie einem fehlerhaften Datenträger. Wenn ein Notfall in diesem Rechenzentrum auftritt, können alle Replikate verloren gehen oder nicht verfügbar sein.
Zonenredundanter Speicher (ZRS): Mit ZRS speichert Azure drei Kopien jedes Elastic SAN in drei unterschiedlichen Verfügbarkeitszonen in derselben Region. Schreibvorgänge sind synchron. Der Schreibvorgang wird erst abgeschlossen, nachdem alle drei Replikate aktualisiert wurden.
Voraussetzungen
Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
Für diesen Artikel ist die Azure CLI-Version v2.83.0 oder höher erforderlich. Weitere Informationen finden Sie unter Installieren der Azure CLI. Deaktivieren Sie Erweiterungen wie
aks-preview, wenn Probleme auftreten. Installieren oder Aktualisieren von Erweiterungen nach Bedarf:az extension add --upgrade --name k8s-extension-
az extension add --upgrade --name elastic-san(Nur elastisch SAN)
Sie benötigen den Kubernetes-Befehlszeilenclient.
kubectlSie ist bereits installiert, wenn Sie Azure Cloud Shell verwenden. Sie können es lokal installieren, indem Sie denaz aks install-cliBefehl ausführen.Überprüfen Sie, ob Ihre Zielregion in Azure Container Storage-Regionen unterstützt wird.
Wenn Sie Elastic SAN zum ersten Mal im Abonnement verwenden, führen Sie diesen einmaligen Registrierungsbefehl aus:
az provider register --namespace Microsoft.ElasticSanWenn ZRS in einer Region neu aktiviert ist, müssen Sie möglicherweise ein Feature-Flag auf Abonnementebene registrieren, damit Azure Container Storage SAN-Ziele bereitstellen kann:
az feature register \ --namespace Microsoft.ElasticSan \ --name EnableElasticSANTargetDeploymentStellen Sie sicher, dass die Region Ihre ausgewählte Redundanzoption unterstützt. Sehen Sie sich die aktuelle Verfügbarkeit der Elastic SAN-Region an.
Erstellen einer StorageClass mit lokal redundantem Speicher
Verwenden einer LRS-SKU ohne Angabe einer Zone
Wenn eine Region Zonen unterstützt und Sie keine Zone in der StorageClass angeben, wird der Azure-Containerspeicher standardmäßig auf Zone 1 festgelegt.
Erstellen Sie eine YAML-Manifestdatei wie storageclass.yaml und verwenden Sie dann die folgende Spezifikation.
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
Verwenden einer LRS-SKU und Angeben einer Zone
Verwenden Sie eine einzelne Zone, wenn Sie ein LRS Elastic SAN in Regionen erstellen, die Verfügbarkeitszonen unterstützen. Lassen Sie in Regionen ohne Zonen den zones Parameter weg, um Überprüfungsfehler zu vermeiden.
Bei LRS mit Zonenanheftung platziert der Scheduler den Pod auf einem Knoten in der angegebenen Zone, und das persistente Volume (PV) wird an das SAN der entsprechenden Zone gebunden. Auf LRS-Volumes kann über eine beliebige Zone zugegriffen werden, sodass Azure Container Storage keine zonenübergreifende Anbindung einschränkt. Der allowedTopologies Abschnitt stellt sicher, dass die PV an einen Knoten in derselben Zone wie das LRS SAN gebunden wird.
Erstellen Sie eine YAML-Manifestdatei wie storageclass.yaml und verwenden Sie dann die folgende Spezifikation.
# 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
Erstellen einer StorageClass mit zonenredundanten Speicher
Sie müssen keine Zonen angeben, da Azure Container Storage standardmäßig auf alle drei Zonen festgelegt ist. Wenn Sie das zones Feld festlegen, listen Sie alle drei Zonen als "1,2,3" auf.
Erstellen Sie eine YAML-Manifestdatei wie storageclass.yaml und verwenden Sie dann die folgende Spezifikation.
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
Erstellen der StorageClass
kubectl apply -f storageclass.yaml
Überprüfen Sie, ob die StorageClass erstellt wird:
kubectl get storageclass <storage-class-name>
Eine ähnliche Ausgabe wie die folgende sollte angezeigt werden:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
esan-zrs-zones san.csi.azure.com Delete WaitForFirstConsumer true 10s
Erstellen eines Anspruchs auf ein persistentes Volume
Erstellen Sie eine YAML-Manifestdatei wie acstor-pvc.yaml. Der PVC-Wert name kann ein beliebiger Wert sein. Verwenden Sie den StorageClass-Namen, den Sie in den vorherigen Schritten erstellt haben.
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
Wenden Sie das Manifest an, um das PVC zu erstellen.
kubectl apply -f acstor-pvc.yaml
Eine ähnliche Ausgabe wie die folgende sollte angezeigt werden:
persistentvolumeclaim/managedpvc created
Bereitstellen eines Pods und Anfügen eines persistenten Volumes
Erstellen Sie eine YAML-Manifestdatei wie 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
Wenden Sie das Manifest an, um den Pod zu erstellen.
kubectl apply -f acstor-pod.yaml
Eine ähnliche Ausgabe wie die folgende sollte angezeigt werden:
pod/esan-app created
Überprüfen Sie die PV- und StorageClass:
kubectl get pv
kubectl describe sc esan-zrs-zones
kubectl describe sc esan-lrs-zone2
Bestätigen Sie das regionale Support- und Redundanzmodell für die Volumes mit der Liste der Elastic SAN-Regionen.