Problembehandlung für Azure Container Apps (Vorschau)
Azure Container Storage ist ein cloudbasierter Dienst zum Verwalten, Bereitstellen und Orchestrieren von Volumes, der nativ für Container entwickelt wurde. Verwenden Sie diesen Artikel, um häufige Probleme mit Azure Container Storage zu beheben und Lösungen für Probleme zu finden.
Behandlung von Installationsproblemen
Azure Container Storage kann nicht installiert werden
Nach dem Ausführen von az aks create
wird möglicherweise die folgende Meldung angezeigt: Azure Container Storage konnte nicht installiert werden. Der AKS-Cluster wird erstellt. Führen Sie az aks update
zusammen mit --enable-azure-container-storage
aus, um Azure Container Storage zu aktivieren.
Diese Meldung bedeutet, dass Azure Container Storage nicht installiert wurde, aber Ihr AKS-Cluster wurde ordnungsgemäß erstellt.
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
.
az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>
Speicherpooltyp kann nicht auf NVMe festgelegt werden
Wenn Sie versuchen, Azure Container Storage mit kurzlebigem Datenträger zu installieren, insbesondere mit lokalem NVMe auf einem Cluster, in dem die VM-SKU keine NVMe-Laufwerke aufweist, erhalten Sie die folgende Fehlermeldung: --storage-pool-option kann nicht als NVMe festgelegt werden, da keiner der Knotenpools kurzlebige NVMe-Datenträger unterstützt.
Um das Problem zu beheben, erstellen Sie einen Knotenpool mit einer VM-SKU mit NVMe-Laufwerken, und versuchen Sie es erneut. Informationen finden Sie unter Datenspeicheroptimierte VMs.
Behandeln von Problemen mit Speicherpools
Führen Sie kubectl describe sp <storage-pool-name> -n acstor
aus, um den Status Ihrer Speicherpools zu überprüfen. Hier sind einige Probleme, die auftreten können.
Die Elastic SAN-Erstellung schlägt fehl
Wenn Sie versuchen, einen Elastic SAN-Speicherpool zu erstellen, wird möglicherweise die folgende Meldung angezeigt: Azure Elastic SAN-Erstellung fehlgeschlagen: Maximale Elastic SAN-Anzahl für das Abonnement bereits erstellt. Dies bedeutet, dass Sie den Grenzwert für die Anzahl der Elastic SAN-Ressourcen erreicht haben, die in einer Region pro Abonnement bereitgestellt werden können. Sie können hier den Grenzwert überprüfen: Elastic SAN: Skalierbarkeit und Leistungsziele. Erwägen Sie das Löschen vorhandener Elastic SAN-Ressourcen im Abonnement, die nicht mehr verwendet werden, oder versuchen Sie, den Speicherpool in einer anderen Region zu erstellen.
Keine Blockgeräte gefunden
Wenn diese Meldung angezeigt wird, versuchen Sie wahrscheinlich, einen kurzlebigen Datenträgerspeicherpool in einem Cluster zu erstellen, in dem die VM-SKU keine NVMe-Laufwerke hat.
Um das Problem zu beheben, erstellen Sie einen Knotenpool mit einer VM-SKU mit NVMe-Laufwerken, und versuchen Sie es erneut. Informationen finden Sie unter Datenspeicheroptimierte VMs.
Speicherpooltyp bereits aktiviert
Wenn Sie versuchen, einen bereits aktivierten Speicherpooltyp zu aktivieren, wird die folgende Meldung angezeigt: Ungültiger --enable-azure-container-storage
-Wert. Azure Container Storage ist bereits für den Speicherpooltyp <storage-pool-type>
im Cluster aktiviert. Sie können überprüfen, ob bereits Speicherpools vorhanden sind, indem Sie kubectl get sp -n acstor
ausführen.
Deaktivieren eines Speicherpooltyps
Wenn Sie einen Speicherpooltyp über az aks update --disable-azure-container-storage <storage-pool-type>
deaktivieren oder Azure Container Storage über az aks update --disable-azure-container-storage all
deinstallieren, erhalten Sie die folgende Meldung, wenn bereits ein Speicherpool dieses Typs vorhanden ist:
Wenn Sie Azure Container Storage für den Speicherpooltyp deaktivieren, erzwingt <storage-pool-type>
die Löschung aller Speicherpools desselben Typs. Das wirkt auf die Anwendungen aus, die diese Speicherpools verwenden. Das erzwungene Löschen von Speicherpools kann auch zu Speicherverlust bei den verwendeten Ressourcen führen. Möchten Sie überprüfen, ob einer der Speicherpools vom Typ <storage-pool-type>
verwendet wird, bevor Azure Container Storage deaktiviert wird? (J/N)
Wenn Sie „J“ auswählen, wird eine automatische Prüfung ausgeführt, um sicherzustellen, dass im Speicherpool keine persistenten Volumes erstellt werden. Wenn Sie „N“ auswählen, wird diese Prüfung umgangen und der Speicherpooltyp deaktiviert, alle vorhandenen Speicherpools gelöscht. Dadurch wird Ihre Anwendung potenziell beeinträchtigt.
Ressourcengruppe mit AKS-Cluster kann nicht gelöscht werden
Wenn Sie einen Elastic SAN-Speicherpool erstellt haben, können Sie die Ressourcengruppe, in der sich Ihr AKS-Cluster befindet, möglicherweise nicht löschen.
Um dieses Problem zu beheben, melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen. Suchen Sie die von AKS erstellte Ressourcengruppe (der Ressourcengruppenname beginnt mit MC_). Wählen Sie das SAN-Ressourcenobjekt innerhalb dieser Ressourcengruppe aus. Entfernen Sie manuell alle Volumes und Volumegruppen. Versuchen Sie dann erneut, die Ressourcengruppe zu löschen, die Ihren AKS-Cluster enthält.
Behandeln von Problemen mit persistenten Volumes
Persistente Volumes können nicht aus kurzlebigen Datenträgerspeicherpools erstellt werden.
Da kurzlebiger Datenträger (lokale NVMe und Temp SSD) kurzlebig und nicht dauerhaft sind, erzwingen wir die Verwendung von generischen, kurzlebigen Kubernetes-Volumes. Wenn Sie versuchen, einen persistenten Volume-Anspruch unter Verwendung eines kurzlebigen Datenträgerpools zu erstellen, erhalten Sie die folgende Fehlermeldung: Fehler vom Server (Verboten): Fehler bei der Erstellung von „eph-pvc.yaml“: admission webhook „pvc.acstor.azure.com“ hat die Anforderung abgelehnt: nur generische, kurzlebige Volumes sind in nicht replizierten ephemeralDisk-Speicherpools zulässig.
Wenn Sie ein persistentes Volume benötigen, bei dem das Volume einen Lebenszyklus unabhängig von jedem einzelnen Pod hat, der das Volume verwendet, unterstützt Azure Container Storage die Replikation für NVMe. Sie können einen Speicherpool mit Replikation erstellen und dort persistente Volumes erstellen. Anleitungen finden Sie unter Erstellen eines Speicherpools mit Volumereplikation. Da kurzlebige Datenträgerspeicherpools alle verfügbaren NVMe-Datenträger verbrauchen, müssen Sie alle vorhandenen kurzlebigen Datenträgerspeicherpools löschen, bevor Sie einen neuen Speicherpool erstellen, für den die Replikation aktiviert ist. Wenn Sie keine Persistenz benötigen, können Sie ein generisches, kurzlebiges Volume erstellen.
Pod mit ausstehender Erstellung wegen eines kurzlebigen Volumes größer als die verfügbare Kapazität
Ein kurzlebiges Volume wird einem einzelnen Knoten zugewiesen. Wenn Sie die Größe von kurzlebigen Volumes für Ihre Pods konfigurieren, sollte die Größe kleiner als die verfügbare Kapazität des kurzlebigen Datenträgers eines einzelnen Knotens sein. Andernfalls befindet sich die Poderstellung im Status „Ausstehend“.
Verwenden Sie den folgenden Befehl, um zu überprüfen, ob sich die Poderstellung im Status „Ausstehend“ befindet.
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
fiopod 0/1 Pending 0 17s
In diesem Beispiel befindet sich der Pod fiopod
im Pending
-Status.
Verwenden Sie den folgenden Befehl, um zu überprüfen, ob das Warnereignis für die persistente Erstellung des Pods vorhanden ist.
$ kubectl describe pod fiopod
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 40s default-scheduler 0/3 nodes are available: waiting for ephemeral volume controller to create the persistentvolumeclaim "fiopod-ephemeralvolume". preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling..
In diesem Beispiel zeigt der Pod das Warnereignis zum Erstellen eines dauerhaften Volumeanspruchs fiopod-ephemeralvolume
.
Verwenden Sie den folgenden Befehl, um zu überprüfen, ob der persistente Volumeanspruch aufgrund unzureichender Kapazität nicht bereitgestellt werden kann.
$ kubectl describe pvc fiopod-ephemeralvolume
...
Warning ProvisioningFailed 107s (x13 over 20m) containerstorage.csi.azure.com_aks-nodepool1-29463073-vmss000000_7f5bd88d-be76-40d2-a59e-e51ce000e35e failed to provision volume with StorageClass "acstor-ephemeraldisk-temp": rpc error: code = Internal desc = Operation failed: GenericOperation("error in response: status code '507 Insufficient Storage', content: 'RestJsonError { details: \"Operation failed due to insufficient resources: Not enough suitable pools available, 0/1\", message: \"SvcError :: NotEnoughResources\", kind: ResourceExhausted }'")
In dem Beispiel wird Insufficient Storage
als Grund für Volumenbereitstellungsfehler dargestellt.
Führen Sie den folgenden Befehl aus, um die verfügbare Kapazität des kurzlebigen Datenträgers eines einzelnen Knotens zu überprüfen.
$ kubectl get diskpool -n acstor
NAME CAPACITY AVAILABLE USED RESERVED READY AGE
ephemeraldisk-temp-diskpool-jaxwb 75660001280 75031990272 628011008 560902144 True 21h
ephemeraldisk-temp-diskpool-wzixx 75660001280 75031990272 628011008 560902144 True 21h
ephemeraldisk-temp-diskpool-xbtlj 75660001280 75031990272 628011008 560902144 True 21h
In diesem Beispiel ist die verfügbare Kapazität des temporären Datenträgers für einen einzelnen Knoten 75031990272
Byte oder 69 GiB.
Passen Sie die Volumespeichergröße unter der verfügbaren Kapazität an und stellen Sie Ihren Pod erneut bereit. Siehe unter Bereitstellen eines Pods mit einem generischen kurzlebigen Volume.
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für