Schnellstart: Verwenden von Azure Container Storage mit Azure Kubernetes Service

Azure Container Storage ist ein cloudbasierter Dienst zum Verwalten, Bereitstellen und Orchestrieren von Volumes, der nativ für Container entwickelt wurde. In diesem Schnellstart erfahren Sie, wie Sie eine Verbindung mit einem Linux-basierten Azure Kubernetes Service (AKS)-Cluster herstellen, Azure Container Storage installieren und einen Speicherpool mit Azure CLI erstellen.

Wichtig

Azure Container Storage ist jetzt ab Version 1.1.0 allgemein verfügbar. Diese allgemein verfügbare Version wird nicht für Produktionsworkloads empfohlen.

Voraussetzungen

  • Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

  • Für diesen Artikel ist die aktuelle Azure CLI-Version (mindestens Version 2.35.0) erforderlich. Weitere Informationen finden Sie unter Installieren der Azure-Befehlszeilenschnittstelle. Wenn Sie die Bash-Umgebung in Azure Cloud Shell nutzen, ist die neueste Version bereits installiert. Wenn Sie die Befehle nicht in Azure Cloud Shell, sondern lokal ausführen möchten, führen Sie sie mit Administratorrechten aus. Weitere Informationen finden Sie unter Erste Schritte mit Azure Cloud Shell.

  • 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.

  • Überprüfen Sie unter Azure Container Storage-Regionen, ob Ihre Zielregion unterstützt wird.

  • Wenn Sie noch keinen AKS-Cluster erstellt haben, befolgen Sie die Anweisungen zum Installieren eines AKS-Clusters.

Erste Schritte

  • Notieren Sie sich Ihre Azure-Abonnement-ID. Wenn Sie Azure Elastic SAN als Datenspeicher verwenden möchten, muss dem Azure-Abonnement entweder die Rolle Azure Container Storage-Besitzer oder die Rolle Azure Container Storage-Mitwirkender zugewiesen sein. Der Zugriff auf Besitzerebene ermöglicht Ihnen die Installation der Azure Container Storage-Erweiterung, gewährt Zugriff auf die Speicherressourcen und gewährt Ihnen die Berechtigung zum Konfigurieren Ihrer Azure Elastic SAN-Ressource. Der Zugriff auf der Ebene „Mitwirkender“ ermöglicht Ihnen die Installation der Erweiterung und gewährt Zugriff auf die zugehörigen Speicherressourcen. Wenn Sie Azure Disks oder Ephemeral Disk als Datenspeicher verwenden möchten, benötigen Sie keine speziellen Berechtigungen für Ihr Abonnement.

  • Starten Sie Azure Cloud Shell. Wenn Sie aber eine lokale Installation verwenden, melden Sie sich bei Azure mithilfe des Befehls az login an.

  • Wenn Sie Azure Cloud Shell verwenden, werden Sie möglicherweise aufgefordert, Speicher einzubinden. Wählen Sie das Azure-Abonnement aus, in dem Sie das Speicherkonto erstellen möchten, und wählen Sie Erstellen aus.

Installieren der erforderlichen 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

Festlegen des Abonnementkontexts

Legen Sie Ihren Azure-Abonnementkontext mit dem Befehl az account set fest. Sie können die Abonnement-IDs für alle Abonnements anzeigen, auf die Sie Zugriff haben, indem Sie den Befehl „az account list --output table“ ausführen. Vergessen Sie nicht, <subscription-id> durch Ihre Abonnement-ID zu ersetzen.

az account set --subscription <subscription-id>

Herstellen einer Verbindung mit dem Cluster

Verwenden Sie zum Herstellen einer Verbindung mit dem Clusters 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.

  1. Konfigurieren Sie kubectl, um mithilfe des Befehls „az aks get-credentials“ eine Verbindung mit Ihrem Cluster herzustellen. Der unten angegebene Befehl bewirkt Folgendes:

    • Herunterladen von Anmeldeinformationen und Konfigurieren der Kubernetes-Befehlszeilenschnittstelle für ihre Verwendung
    • Verwenden von ~/.kube/config (Standardspeicherort für die Kubernetes-Konfigurationsdatei). Sie können mit dem Argument --file einen anderen Speicherort für Ihre Kubernetes-Konfigurationsdatei angeben.
    az aks get-credentials --resource-group <resource-group> --name <cluster-name>
    
  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 Ausgabenbeispiel 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.25.6
    aks-nodepool1-34832848-vmss000001   Ready    agent   80m   v1.25.6
    aks-nodepool1-34832848-vmss000002   Ready    agent   80m   v1.25.6
    

    Notieren Sie sich den Namen Ihres Knotenpools. In diesem Beispiel wäre er nodepool1.

Wählen Sie eine Datenspeicheroption für Ihren Speicherpool aus.

Bevor Sie Azure Container Storage bereitstellen, müssen Sie entscheiden, welche Back-End-Speicheroption Sie zum Erstellen Ihres Speicherpools und Volumes/Datenträger verwenden möchten. Derzeit stehen drei Optionen zur Verfügung:

  • Azure Elastic SAN: Azure Elastic SAN eignet sich für universelle Datenbanken, Streaming- und Messagingdienste, CI/CD-Umgebungen und andere Workloads der Ebene 1/Ebene 2. Der Speicher wird bei Bedarf pro erstelltem Volume und erstellter Volumemomentaufnahme bereitgestellt. Mehrere Cluster können gleichzeitig auf ein einzelnes SAN zugreifen, persistente Volumes können jedoch jeweils nur von einem Consumer angefügt werden.

  • Azure Disks: Azure Disks eignen sich gut für Datenbanken wie MySQL, MongoDB und PostgreSQL. Der Speicher wird pro Zielcontainer-Speicherpoolgröße und maximaler Volumegröße bereitgestellt.

  • Ephemeral Disk: Bei dieser Option werden lokale NVMe-Laufwerke oder temporäre SSD-Datenträger auf den AKS-Clusterknoten verwendet. Diese Option ist extrem latenzempfindlich (niedrige Latenz in einem Bereich unterhalb von Millisekunden), sodass sie am besten für Anwendungen ohne Anforderungen an die Dauerhaftigkeit von Daten oder mit integrierter Datenreplikationsunterstützung wie Cassandra geeignet ist. AKS ermittelt den verfügbaren kurzlebigen Speicher auf AKS-Knoten und ruft die Laufwerke für die Volumebereitstellung ab.

Hinweis

Bei Azure Elastic SAN und Azure Disks stellt Azure Container Storage den Sicherungsspeicher für Sie als Teil der Installation bereit. Sie müssen kein eigenes Elastic SAN oder Azure Disk erstellen. Um Azure Elastic SAN verwenden zu können, benötigen Sie entweder die Rolle Azure Container Storage-Besitzer oder die Rolle Azure Container Storage-Mitwirkender für das Azure-Abonnement.

Ressourcenverbrauch

Azure Container Storage erfordert bestimmte Knotenressourcen, um Komponenten für den Dienst auszuführen. Basierend auf der Auswahl des Speicherpooltyps, die Sie beim Installieren von Azure Container Storage treffen, werden die folgenden Ressourcen verbraucht:

Speicherpooltyp CPU-Kerne RAM
Azure Elastic SAN  Keine Keine
Azure Disks 1 1 GiB
Ephemeral Disk – Temporärer SSD-Datenträger 1 1 GiB
Kurzlebiger Datenträger – Lokaler NVMe-Datenträger (Standardebene) 25 % der Kerne (Leistungsstufe kann aktualisiert werden)* 1 GiB

Die verbrauchten Ressourcen gelten pro Knoten und werden für jeden Knoten im Knotenpool genutzt, in dem Azure Container Storage installiert wird. Wenn Ihre Knoten nicht über genügend Ressourcen verfügen, kann Azure Container Storage nicht ausgeführt werden. Kubernetes versucht automatisch erneut, diese fehlgeschlagenen Pods zu initialisieren. Wenn also Ressourcen freigegeben werden, können diese Pods erneut initialisiert werden.

*Beim Speicherpooltyp „Kurzlebiger Datenträger – Lokaler NVMe-Datenträger“ mit der Leistungsstufe „Standard“ (Standardeinstellung) gelten die 25 % verbrauchter CPU-Kerne für die kleinste verwendete SKU, wenn Sie mehrere VM-SKU-Typen für Ihre Clusterknoten verwenden. Wenn Sie beispielsweise eine Mischung aus VM-Typen mit 8 Kernen und 16 Kernen nutzen, beträgt der Ressourcenverbrauch 2 Kerne. Sie können die Leistungsstufe aktualisieren, um einen größeren Prozentsatz der Kerne zu verwenden und höhere IOPS-Werte zu erzielen.

Sicherstellen, dass der VM-Typ für Ihren Cluster die folgenden Kriterien erfüllt

Um Azure Container Storage verwenden zu können, benötigen Sie einen Knotenpool mit mindestens drei Linux-VMs. Wenn Sie lokale NVMe-Datenträger für Ihren Speicherpool verwenden, sollte der Knotenpool mindestens vier Linux-VMs enthalten. Jede VM sollte mindestens vier virtuelle CPUs (vCPUs) aufweisen. Azure Container Storage nutzt einen Kern für die E/A-Verarbeitung auf jedem virtuellen Computer, auf dem die Erweiterung bereitgestellt wird.

Befolgen Sie diese Richtlinien, wenn Sie einen VM-Typ für die Clusterknoten auswählen. Sie müssen einen VM-Typ auswählen, der Azure Storage Premium unterstützt.

  • Wenn Sie Azure Elastic SAN oder Azure Disks als Sicherungsspeicher verwenden möchten, wählen Sie einen universellen VM-Typ wie beispielsweise standard_d4s_v5 aus.
  • Wenn Sie Ephemeral Disk mit lokaler NVMe verwenden möchten, wählen Sie einen datenspeicheroptimierten VM-Typ wie standard_l8s_v3 aus.
  • Wenn Sie Ephemeral Disk mit temporärem SSD-Datenträger verwenden möchten, wählen Sie eine VM mit einem temporären SSD-Datenträger etwa der Serien Ev3 und Esv3 aus.

Installieren von Azure Container Storage für einen AKS-Cluster

Der Installationsbefehl unterscheidet sich je nachdem, ob Sie bereits über eine Vorschauinstanz von Azure Container Storage verfügen, die in Ihrem AKS-Cluster ausgeführt wird, oder ob Sie Azure Container Storage zum ersten Mal im Cluster installieren.

Aktualisieren einer Vorschauinstallation auf allgemeine Verfügbarkeit

Wenn Sie bereits über eine Vorschauinstanz von Azure Container Storage verfügen, die in Ihrem Cluster ausgeführt wird, empfehlen wir ein Upgrade auf die neueste allgemein verfügbare Version, indem Sie den folgenden Befehl ausführen. Wenn Sie Azure Container Storage zum ersten Mal im Cluster installieren, fahren Sie stattdessen mit dem Installieren von Azure Container Storage und Erstellen eines Speicherpools fort. Sie können auch Azure Container Storage in bestimmten Knotenpools installieren.

az k8s-extension update --cluster-type managedClusters --cluster-name <cluster-name> --resource-group <resource-group> --name azurecontainerstorage --version 1.1.0 --auto-upgrade false --release-train stable

Ersetzen Sie <cluster-name> und <resource-group> durch Ihre eigenen Werte.

Installieren von Azure Container Storage und Erstellen eines Speicherpools

Stellen Sie vor der Installation sicher, dass Ihr AKS-Cluster die VM-Anforderungen erfüllt.

Führen Sie den folgenden Befehl aus, um Azure Container Storage im Cluster zu installieren und einen Speicherpool zu erstellen. Ersetzen Sie <cluster-name> und <resource-group> durch Ihre eigenen Werte. Ersetze <storage-pool-type> durch azureDisk, ephemeralDisk oder elasticSan. Wenn Sie ephemeralDisk auswählen, können Sie auch --storage-pool-option angeben, und die Werte können NVMe oder Temp lauten.

Wenn Sie diesen Befehl ausführen, wird Azure Container Storage im Systemknotenpool (Standardname: nodepool1*) aktiviert. Wenn Sie Azure Container Storage in anderen Knotenpools installieren möchten, lesen Sie die Informationen unter Installieren von Azure Container Storage in bestimmten Knotenpools. Wenn Sie zusätzliche Parameter angeben möchten, lesen Sie die Informationen unter Azure Container Storage-Speicherpoolparameter.

*Wenn Knotenpools mit der Bezeichnung acstor.azure.com/io-engine:acstor vorhanden sind, wird Azure Container Storage standardmäßig dort installiert. Andernfalls wird Azure Container Storage im Systemknotenpool installiert.

Wichtig

Wenn Sie Ihren AKS-Cluster mit dem Azure-Portal erstellt haben: Der Cluster verfügt wahrscheinlich über einen Benutzerknotenpool und einen System-/Agent-Knotenpool. Wenn Ihr Cluster jedoch nur aus einem Systemknotenpool besteht, was bei Test-/Entwicklungsclustern der Fall ist, die mit dem Azure-Portal erstellt wurden, müssen Sie zuerst einen neuen Benutzerknotenpool hinzufügen und dann mit der Bezeichnung versehen. Das liegt daran, dass bei der Erstellung eines AKS-Clusters über das Azure-Portal dem Systemknotenpool/Agent-Knotenpool ein Taint CriticalAddOnsOnly hinzugefügt wird, der die Installation von Azure Container Storage im Systemknotenpool blockiert. Dieser Taint wird nicht hinzugefügt, wenn ein AKS-Cluster mithilfe von Azure CLI erstellt wird.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

Die Bereitstellung dauert 10 bis 15 Minuten. Nach Abschluss des Vorgangs ist ein AKS-Cluster mit Azure Container Storage installiert, die Komponenten für den ausgewählten Speicherpooltyp wurden aktiviert, und ein Standardspeicherpool ist vorhanden. Wenn Sie zusätzliche Speicherpooltypen zum Erstellen weiterer Speicherpools aktivieren möchten, lesen Sie die Informationen unter Aktivieren zusätzlicher Speicherpooltypen.

Wichtig

Wenn Sie Azure Elastic SAN als Sicherungsspeicher für Ihren Speicherpool angegeben haben und dem Azure-Abonnement weder die Rolle Azure Container Storage-Besitzer noch die Rolle Azure Container Storage-Mitwirkender zugewiesen ist, tritt bei der Installation von Azure Container Storage ein Fehler auf, und es wird kein Speicherpool erstellt. Wenn Sie versuchen, Azure Elastic SAN als zusätzlichen Speicherpooltyp ohne eine dieser Rollen zu aktivieren, bleiben Ihre vorherige Installation und Speicherpools unberührt, und es wird kein Elastic SAN-Speicherpool erstellt.

Installieren von Azure Container Storage in bestimmten Knotenpools

Wenn Sie Azure Container Storage in bestimmten Knotenpools installieren möchten, befolgen Sie diese Anweisungen. Die Knotenpools müssen mindestens drei Linux-VMs enthalten. Wenn Sie lokale NVMe-Datenträger für Ihren Speicherpool verwenden, müssen die Knotenpools jeweils mindestens vier Linux-VMs enthalten.

  1. Führen Sie den folgenden Befehl aus, um die Liste der verfügbaren Knotenpools anzuzeigen. Ersetzen Sie <resource-group> und <cluster-name> durch Ihre eigenen Werte.

    az aks nodepool list --resource-group <resource-group> --cluster-name <cluster-name>
    
  2. Führen Sie den folgenden Befehl aus, um Azure Container Storage in bestimmten Knotenpools zu installieren. Ersetzen Sie <cluster-name> und <resource-group> durch Ihre eigenen Werte. Ersetze <storage-pool-type> durch azureDisk, ephemeralDisk oder elasticSan. Wenn Sie ephemeralDisk auswählen, können Sie auch „--storage-pool-option“ angeben, und die Werte können NVMe oder Temp lauten.

    az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type> --azure-container-storage-nodepools <comma separated values of nodepool names>
    

Aktivieren zusätzlicher Speicherpooltypen

Wenn Sie einen Speicherpooltyp aktivieren möchten, der während der Installation von Azure Container Storage ursprünglich nicht aktiviert wurde, führen Sie den folgenden Befehl aus. Ersetzen Sie <cluster-name> und <resource-group> durch Ihre eigenen Werte. Geben Sie azureDisk, ephemeralDisk oder elasticSan für <storage-pool-type> an.

Wenn Sie zusätzliche Speicherpoolparameter mit diesem Befehl angeben möchten, sehen Sie sich diese Tabelle an.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

Wenn der neue Speicherpooltyp, den Sie aktiviert haben, mehr Ressourcen beansprucht als der bereits aktivierte Speicherpooltyp, ändert sich der Ressourcenverbrauch in den maximalen Betrag.

Tipp

Wenn Sie Ihrem Cluster einen neuen Knotenpool hinzugefügt haben und Azure Container Storage in diesem Knotenpool ausführen möchten, können Sie den Knotenpool mit --azure-container-storage-nodepools <nodepool-name> angeben, wenn der Befehl az aks update ausgeführt wird.

Anzeigen verfügbarer Speicherpools

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 des 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. Weitere Informationen finden Sie unter Problembehandlung für Azure Container Apps.

Deaktivieren von Speicherpooltypen

Wenn Sie einen bestimmten Speicherpooltyp nicht mehr verwenden und ihn deaktivieren möchten, um Ressourcen in Ihrem Knotenpool freizugeben, führen Sie den folgenden Befehl aus. Ersetzen Sie <cluster-name> und <resource-group> durch Ihre eigenen Werte. Geben Sie azureDisk, ephemeralDisk oder elasticSan für <storage-pool-type> an.

az aks update -n <cluster-name> -g <resource-group> --disable-azure-container-storage <storage-pool-type>

Hinweis

Wenn Sie über einen vorhandenen Speicherpool des Typs verfügen, den Sie deaktivieren möchten, wird der Speicherpooltyp nicht deaktiviert.

Nächster Schritt

Um Volumes zu erstellen, wählen Sie den Link für den ausgewählten Sicherungsspeichertyp aus.