Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm wird Azure Container Storage vorgestellt und veranschaulicht, wie Container-nativer Speicher für Anwendungen bereitgestellt und verwaltet wird, die auf Azure Kubernetes Service (AKS) ausgeführt werden. Wenn Sie azure Container Storage jetzt nicht bereitstellen möchten, können Sie dieses Lernprogramm überspringen und direkt mit der Bereitstellung einer Anwendung in AKS fortfahren. In dieser Lernprogrammreihe benötigen Sie keinen Azure Container Storage für die grundlegende Storefront-Anwendung.
Von Bedeutung
In diesem Artikel wird erläutert, wie Sie Azure Container Storage (Version 1.x.x) installieren, der jetzt explizit einen Versionsheftungsparameter --container-storage-version 1 für die Installation erfordert.
Azure Container Storage (Version 2.x.x) ist jetzt verfügbar.
Azure Container Storage vereinfacht die Verwaltung zustandsbehafteter Anwendungen in Kubernetes, indem containereigener Speicher bereitgestellt wird, der auf eine Vielzahl von Workloads zugeschnitten ist, einschließlich Datenbanken, Analyseplattformen und Hochleistungsanwendungen.
Am Ende dieses Lernprogramms werden Sie:
- Verstehen, wie Azure Container Storage verschiedene Workloads in Kubernetes unterstützt.
- Erkunden Sie mehrere Speicher-Back-End-Optionen, um den Speicher an die Anforderungen Ihrer Anwendung anzupassen.
- Stellen Sie Azure Container Storage (Version 1.x.x) auf Ihrem AKS-Cluster bereit, und erstellen Sie ein generisches ephemerales Volume.
Bevor Sie anfangen
In früheren Lernprogrammen haben Sie ein Containerimage erstellt, in eine ACR-Instanz hochgeladen und einen AKS-Cluster erstellt. Beginnen Sie mit Tutorial 1: Vorbereiten der Anwendung für AKS, um dieses Tutorial durcharbeiten zu können.
- Dieses Lernprogramm erfordert die Verwendung der Azure CLI-Version 2.35.0 oder höher. Portal und PowerShell werden derzeit für Azure Container Storage nicht unterstützt. Überprüfen Sie Ihre Version mit
az --version. Informationen zum Ausführen einer Installation oder eines Upgrades finden Sie unter Installieren der Azure CLI. Wenn Sie die Bash-Umgebung in Azure Cloud Shell verwenden, ist die neueste Version bereits installiert. - Sie müssen über einen vorhandenen Linux-basierten AKS-Cluster mit mindestens 3 Knoten mit speicheroptimierten VM-SKUs oder GPU-beschleunigten VM-SKUs verfügen. Siehe Lernprogramm 3 – Erstellen eines AKS-Clusters.
- Sie benötigen den Kubernetes-Befehlszeilenclient.
kubectlEs ist bereits installiert, wenn Sie Azure Cloud Shell verwenden. Sie können ihn auch lokal installieren, indem Sie den Befehl „az aks install-cli“ ausführen.
Installieren der Kubernetes-Erweiterung
Fügen Sie die neueste Version von k8s-extension hinzu oder aktualisieren Sie diese, indem Sie den folgenden Befehl ausführen.
az extension add --upgrade --name k8s-extension
Herstellen einer Verbindung mit dem Cluster und Überprüfen des Knotenstatus
Wenn Sie noch nicht über das vorherige Lernprogramm mit Ihrem Cluster verbunden sind, führen Sie die folgenden Befehle aus. Wenn Sie bereits verbunden sind, können Sie diesen Abschnitt überspringen.
Führen Sie den folgenden Befehl aus, um eine Verbindung mit dem Cluster herzustellen.
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterÜberprüfen Sie die Verbindung mit dem Cluster mithilfe des Befehls
kubectl get. Dieser Befehl gibt eine Liste der Clusterknoten zurück.kubectl get nodesDas folgende Ausgabebeispiel zeigt die Knoten in Ihrem Cluster. Stellen Sie sicher, dass der Status für alle Knoten Bereit lautet:
NAME STATUS ROLES AGE VERSION aks-nodepool1-34832848-vmss000000 Ready agent 80m v1.30.9 aks-nodepool1-34832848-vmss000001 Ready agent 80m v1.30.9 aks-nodepool1-34832848-vmss000002 Ready agent 80m v1.30.9
Auswählen einer Sicherungsspeicheroption
Azure Container Storage (Version 1.x.x) verwendet Speicherpools, um persistente und generische Volumes bereitzustellen und zu verwalten. Es bietet eine Vielzahl von Back-End-Speicheroptionen für Ihre Speicherpools, die jeweils für bestimmte Workloads geeignet sind. Die Auswahl des richtigen Speichertyps ist für die Optimierung der Workloadleistung, der Haltbarkeit und der Kosteneffizienz von entscheidender Bedeutung. Für dieses Tutorial verwenden wir einen kurzlebigen Datenträger mit lokalem NVMe als Sicherungsspeicher, um ein generisches kurzlebiges Volume zu erstellen. Wir untersuchen jedoch auch die anderen Sicherungsspeicheroptionen, mit denen Sie persistente Volumes erstellen können.
Kurzlebiger Datenträger
Ephemeral Disk verwendet lokale Speicherressourcen auf den AKS-Knoten (entweder lokale NVMe oder temporäre SSD). Sie bietet eine Latenz von unter 1 ms und hohe IOPS, aber keine Persistenz bei einem Neustart der VM. Ephemeral Disk eignet sich am besten für Anwendungen wie Cassandra, die Geschwindigkeit über Persistenz priorisieren, und eignet sich ideal für Workloads mit eigener Replikation auf Anwendungsebene.
Sie können ephemerale Datenträger verwenden, um entweder generische ephemerale Volumes oder persistente Volumes zu erstellen, auch wenn die Daten verloren gehen, wenn die VM neu gestartet wird.
Azure-Datenträger
Ideal für Datenbanken wie PostgreSQL und MongoDB bieten Azure Disks Haltbarkeit, Skalierbarkeit und mehrstufige Leistungsoptionen, einschließlich Premium SSD und Ultra SSD.
Azure-Datenträger ermöglichen die automatische Bereitstellung von Speichervolumes und umfassen integrierte Redundanz und hohe Verfügbarkeit.
Azure Elastic SAN (Vorschau)
Für gemeinsam genutzte Speicheranforderungen und allgemeine Datenbanken entwickelt, die Skalierbarkeit und hohe Verfügbarkeit erfordern, eignet sich Azure Elastic SAN gut für Workloads wie CI/CD-Pipelines oder umfangreiche Datenverarbeitung.
Aktivieren von Azure Container Storage (Version 1.x.x) und Erstellen eines Speicherpools
Führen Sie den folgenden Befehl aus, um Azure Container Storage auf dem Cluster zu installieren und einen lokalen NVMe-Speicherpool zu erstellen.
az aks update -n myAKSCluster -g myResourceGroup --enable-azure-container-storage ephemeralDisk --container-storage-version 1 --storage-pool-option NVMe
Die Bereitstellung sollte weniger als 15 Minuten dauern.
Überprüfen des Speicherpoolstatus
Nach Abschluss der Bereitstellung werden die Komponenten für den ausgewählten Speicherpooltyp aktiviert, und Sie verfügen über einen Standardspeicherpool.
Führen Sie den folgenden Befehl aus, um die Liste der verfügbaren Speicherpools abzurufen:
kubectl get sp -n acstor
Führen Sie den folgenden Befehl aus, um den Status eines Speicherpools zu überprüfen:
kubectl describe sp <storage-pool-name> -n acstor
Wenn Message nicht StoragePool is ready lautet, wird der Speicherpool noch erstellt, oder es ist ein Problem aufgetreten.
Anzeigen der verfügbaren Speicherklassen
Wenn der Speicherpool einsatzbereit ist, müssen Sie eine Speicherklasse auswählen, um zu definieren, wie Speicher beim Erstellen und Bereitstellen von Volumes dynamisch erstellt wird.
Führen Sie kubectl get sc aus, um die verfügbaren Speicherklassen anzuzeigen. Es wird die Speicherklasse mit dem Namen acstor-<storage-pool-name> angezeigt. Verwenden Sie diese Speicherklasse im nächsten Abschnitt, um einen Pod bereitzustellen.
Bereitstellen eines Pods mit einem generischen ephemeralen Volume
Erstellen Sie einen Pod mithilfe von FIO (Flexibler E/A-Tester) für die Benchmarking und Workloadsimulation, die ein generisches, kurzlebiges Volume verwendet.
Verwenden Sie Ihren bevorzugten Text-Editor, um eine YAML-Manifestdatei wie
code acstor-pod.yamlzu erstellen.Fügen Sie den folgenden Code ein, und speichern Sie die Datei.
kind: Pod apiVersion: v1 metadata: name: fiopod spec: nodeSelector: acstor.azure.com/io-engine: acstor containers: - name: fio image: nixery.dev/shell/fio args: - sleep - "1000000" volumeMounts: - mountPath: "/volume" name: ephemeralvolume volumes: - name: ephemeralvolume ephemeral: volumeClaimTemplate: metadata: labels: type: my-ephemeral-volume spec: accessModes: [ "ReadWriteOnce" ] storageClassName: acstor-ephemeraldisk-nvme # replace with the name of your storage class if different resources: requests: storage: 1GiWenn Sie die Speichergröße des Volumes ändern, stellen Sie sicher, dass die Größe kleiner als die verfügbare Kapazität eines einzelnen Knotens auf dessen temporären Datenträger ist. Führen Sie die Ausführung
kubectl get diskpool -n acstoraus, um die verfügbare Kapazität zu überprüfen.Wenden Sie die YAML-Manifestdatei an, um den Pod bereitzustellen.
kubectl apply -f acstor-pod.yamlDie Ausgabe sollte in etwa wie folgt aussehen:
pod/fiopod createdÜberprüfen Sie, ob der Pod ausgeführt wird und dass der Anspruch auf das kurzlebige Volume erfolgreich an den Pod gebunden wurde:
kubectl describe pod fiopod kubectl describe pvc fiopod-ephemeralvolume
Sie haben jetzt einen Pod bereitgestellt, der lokale NVMe als Speicher verwendet, und Sie können ihn für Ihre Kubernetes-Workloads verwenden.
Überprüfen Sie die verfügbare Kapazität von kurzlebigen Datenträgern, bevor Sie zusätzliche Volumes bereitstellen:
kubectl describe node <node-name>
Weitere Informationen zum Azure Container Storage (Version 1.x.x), einschließlich der Erstellung persistenter Volumes, finden Sie unter Was ist Azure Container Storage?
Bereinigen von Ressourcen
Für den Rest dieser Lernprogrammreihe benötigen Sie keinen Azure Container Storage. Daher empfehlen wir, sie jetzt zu löschen, um unnötige Azure-Gebühren zu vermeiden.
Löschen Sie den Pod.
kubectl delete pod fiopodLöschen Sie den Speicherpool.
kubectl delete sp -n acstor <storage-pool-name>Löschen Sie die Erweiterungsinstanz.
az aks update -n myAKSCluster -g myResourceGroup --disable-azure-container-storage all
Nächster Schritt
In diesem Tutorial haben Sie Azure Container Storage (Version 1.x.x) auf Ihrem AKS-Cluster bereitgestellt. Sie haben gelernt, wie Sie:
- Aktivieren Sie Azure Container Storage (Version 1.x.x) auf Ihrem AKS-Cluster.
- Wählen Sie einen Sicherungsspeichertyp aus, und erstellen Sie einen Speicherpool.
- Stellen Sie einen Pod mit einem generischen kurzlebigen Volume bereit.
Im nächsten Lernprogramm erfahren Sie, wie Sie eine Anwendung in Ihrem Cluster bereitstellen.
Azure Kubernetes Service