Freigeben über


Lernprogramm – Bereitstellen von Azure Container Storage (Version 1.x.x) auf einem AKS-Cluster

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. kubectl Es 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.

  1. Führen Sie den folgenden Befehl aus, um eine Verbindung mit dem Cluster herzustellen.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Überprüfen Sie die Verbindung mit dem Cluster mithilfe des Befehls kubectl get. Dieser Befehl gibt eine Liste der Clusterknoten zurück.

    kubectl get nodes
    
  3. Das 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.

  1. Verwenden Sie Ihren bevorzugten Text-Editor, um eine YAML-Manifestdatei wie code acstor-pod.yaml zu erstellen.

  2. 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: 1Gi
    

    Wenn 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 acstor aus, um die verfügbare Kapazität zu überprüfen.

  3. Wenden Sie die YAML-Manifestdatei an, um den Pod bereitzustellen.

    kubectl apply -f acstor-pod.yaml
    

    Die Ausgabe sollte in etwa wie folgt aussehen:

    pod/fiopod created
    
  4. Ü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.

  1. Löschen Sie den Pod.

    kubectl delete pod fiopod
    
  2. Löschen Sie den Speicherpool.

    kubectl delete sp -n acstor <storage-pool-name>
    
  3. 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.