Azure NetApp Files Backend-Konfigurationsoptionen und Beispiele
Erfahren Sie mehr über die NFS- und SMB-Backend-Konfigurationsoptionen für Azure NetApp Files und sehen Sie sich Konfigurationsbeispiele an.
Backend-Konfigurationsoptionen
Trident verwendet Ihre Backend-Konfiguration (Subnetz, virtuelles Netzwerk, Servicelevel und Standort), um Azure NetApp Files Volumes auf Kapazitätspools zu erstellen, die am angeforderten Standort verfügbar sind und dem angeforderten Servicelevel und Subnetz entsprechen.
Azure NetApp Files-Backends bieten diese Konfigurationsoptionen.
| Parameter | Beschreibung | Standard |
|---|---|---|
|
Backend-Konfigurationsversion. |
Immer 1 |
|
Name des Speichertreibers |
"azure-netapp-files" |
|
Benutzerdefinierter Name für das Speicher-Backend |
Driver name + "_" + zufällige Zeichen |
|
Die Abonnement-ID Ihres Azure-Abonnements Optional, wenn verwaltete Identitäten in einem AKS-Cluster aktiviert sind. |
|
|
Die Mandanten-ID aus einer App-Registrierung Optional, wenn verwaltete Identitäten oder Cloud-Identität auf einem AKS-Cluster verwendet wird. |
|
|
Die Client-ID aus einer App-Registrierung Optional, wenn verwaltete Identitäten oder Cloud-Identität auf einem AKS-Cluster verwendet wird. |
|
|
Das Client Secret aus einer App Registration ist optional, wenn verwaltete Identitäten oder Cloud Identity auf einem AKS-Cluster verwendet werden. |
|
|
Eines von |
"" (zufällig) |
|
Name des Azure-Standorts, an dem die neuen Volumes erstellt werden Optional, wenn verwaltete Identitäten in einem AKS-Cluster aktiviert sind. |
|
|
Liste der Ressourcengruppen zum Filtern entdeckter Ressourcen |
"[]" (kein Filter) |
|
Liste der NetApp Konten zum Filtern der gefundenen Ressourcen |
"[]" (kein Filter) |
|
Liste der Kapazitätspools zum Filtern der gefundenen Ressourcen |
"[]" (kein Filter, zufällig) |
|
Name eines virtuellen Netzwerks mit einem delegierten Subnetz |
"" |
|
Name eines delegierten Subnetzes an |
"" |
|
Satz von VNet-Funktionen für ein Volume, kann |
"" |
|
Detaillierte Steuerung der NFS-Mountoptionen. Wird für SMB-Volumes ignoriert. Um Volumes mit NFS Version 4.1 zu mounten, schließen Sie |
"nfsvers=3" |
|
Fehler bei der Bereitstellung, wenn die angeforderte Volume-Größe über diesem Wert liegt |
"" (wird nicht standardmäßig erzwungen) |
|
Debug-Flags zur Verwendung bei der Fehlersuche. Beispiel, |
null |
|
Konfigurieren Sie die Erstellung von NFS- oder SMB-Volumes. Optionen sind |
|
|
Stellt eine Liste der Regionen und Zonen dar, die von diesem Backend unterstützt werden. Weitere Informationen finden sich unter "CSI-Topologie verwenden". |
|
|
Stellt den QoS-Typ dar: Auto oder manuell. |
Automatisch |
|
Legt den maximal zulässigen Durchsatz in MiB/sec. fest. Wird nur für manuelle QoS-Kapazitätspools unterstützt. |
|
|
|
Weitere Informationen zu Netzwerkfunktionen finden Sie unter "Netzwerkfunktionen für ein Azure NetApp Files-Volume konfigurieren". |
Berücksichtigen Sie Azure-Cloud-Umgebungen (26.02)
Ab der Version 26.02 unterstützt Trident das Erstellen und Verwalten von Azure NetApp Files-Backends in mehreren Azure-Cloud-Umgebungen.
Unterstützte Azure-Clouds umfassen:
-
Azure Commercial
-
Azure Government (Azure Government / MAG)
Stellen Sie bei der Bereitstellung von Trident oder der Erstellung eines Azure NetApp Files-Backends sicher, dass Azure Resource Manager und Authentifizierung mit Ihrer Azure-Cloudumgebung übereinstimmen. Stimmen die Endpunkte nicht überein, tridentctl kann keine Authentifizierung durchgeführt werden und die Backend-Erstellung schlägt fehl.
Erforderliche Berechtigungen und Ressourcen
Wenn beim Erstellen eines PVC die Fehlermeldung „Keine Kapazitätspools gefunden“ angezeigt wird, verfügt Ihre App-Registrierung wahrscheinlich nicht über die erforderlichen Berechtigungen und Ressourcen (Subnetz, virtuelles Netzwerk, Kapazitätspool), die zugeordnet sind. Wenn Debug aktiviert ist, protokolliert Trident die beim Erstellen des Backends ermittelten Azure-Ressourcen. Stellen Sie sicher, dass eine geeignete Rolle verwendet wird.
Die Werte für resourceGroups, netappAccounts, capacityPools, virtualNetwork und subnet können mithilfe von Kurznamen oder vollqualifizierten Namen angegeben werden. Vollqualifizierte Namen werden in den meisten Situationen empfohlen, da Kurznamen mehreren Ressourcen mit demselben Namen zugeordnet werden können.
|
|
Wenn sich das vNet in einer anderen Ressourcengruppe als das Azure NetApp Files (ANF)-Speicherkonto befindet, geben Sie die Ressourcengruppe für das virtuelle Netzwerk bei der Konfiguration der resourceGroups-Liste für das Backend an. |
Die resourceGroups, netappAccounts, und capacityPools Werte sind Filter, die die Menge der gefundenen Ressourcen auf diejenigen beschränken, die diesem Storage-Backend zur Verfügung stehen, und können in beliebiger Kombination angegeben werden. Vollqualifizierte Namen folgen diesem Format:
| Typ | Format |
|---|---|
Ressourcengruppe |
<resource group> |
NetApp-Konto |
<resource group>/<netapp account> |
Kapazitätspool |
<resource group>/<netapp account>/<capacity pool> |
Virtuelles Netzwerk |
<resource group>/<virtual network> |
Subnetz |
<resource group>/<virtual network>/<subnet> |
Volumenbereitstellung
Sie können die Standard-Volume-Bereitstellung steuern, indem Sie die folgenden Optionen in einem speziellen Abschnitt der Konfigurationsdatei angeben. Siehe Beispielkonfigurationen für Details.
| Parameter | Beschreibung | Standard |
|---|---|---|
|
Exportregeln für neue Volumes. |
"0.0.0.0/0" |
|
Zugriff auf das |
|
|
Die Standardgröße neuer Volumes |
"100G" |
|
Die Unix-Berechtigungen neuer Volumes (4 Oktalstellen). Wird für SMB-Volumes ignoriert. |
"" (Vorschaufunktion, erfordert Whitelisting im Abonnement) |
Beispielkonfigurationen
Die folgenden Beispiele zeigen Basiskonfigurationen, bei denen die meisten Parameter auf Standardwerte eingestellt sind. Dies ist die einfachste Methode, ein Backend zu definieren.
Minimale Konfiguration
Dies ist die absolute Minimalkonfiguration für das Backend. Mit dieser Konfiguration erkennt Trident alle Ihre NetApp Konten, Kapazitätspools und Subnetze, die an Azure NetApp Files im konfigurierten Speicherort delegiert sind, und platziert neue Volumes zufällig in einem dieser Pools und Subnetze. Da nasType ausgelassen wird, gilt die nfs Standardeinstellung und das Backend stellt NFS-Volumes bereit.
Diese Konfiguration ist ideal, wenn Sie gerade erst mit Azure NetApp Files beginnen und Dinge ausprobieren, aber in der Praxis werden Sie eine zusätzliche Bereichsdefinition für die von Ihnen bereitgestellten Volumes wünschen.
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-anf-1
namespace: trident
spec:
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
Verwaltete Identitäten für AKS
Diese Backend-Konfiguration lässt subscriptionID, tenantID, clientID und clientSecret aus, die bei der Verwendung verwalteter Identitäten optional sind.
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-anf-1
namespace: trident
spec:
version: 1
storageDriverName: azure-netapp-files
capacityPools:
- resource-group-1/netapp-account-1/ultra-pool
resourceGroups:
- resource-group-1
netappAccounts:
- resource-group-1/netapp-account-1
virtualNetwork: resource-group-1/eastus-prod-vnet
subnet: resource-group-1/eastus-prod-vnet/eastus-anf-subnet
Cloud-Identität für AKS
Diese Backend-Konfiguration lässt tenantID, clientID und clientSecret aus, die bei Verwendung einer Cloud-Identität optional sind.
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-anf-1
namespace: trident
spec:
version: 1
storageDriverName: azure-netapp-files
capacityPools:
- ultra-pool
resourceGroups:
- aks-ami-eastus-rg
netappAccounts:
- smb-na
virtualNetwork: eastus-prod-vnet
subnet: eastus-anf-subnet
location: eastus
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
Spezifische Service-Level-Konfiguration mit Kapazitätspoolfiltern
Diese Backend-Konfiguration platziert Volumes im eastus Standort von Azure in einem Ultra Kapazitätspool. Trident erkennt automatisch alle an Azure NetApp Files in diesem Standort delegierten Subnetze und platziert ein neues Volume zufällig auf einem davon.
---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
serviceLevel: Ultra
capacityPools:
- application-group-1/account-1/ultra-1
- application-group-1/account-1/ultra-2
Backend-Beispiel mit manuellen QoS-Kapazitätspools
Diese Backend-Konfiguration platziert Volumes im eastus Standort von Azure mit manuellen QoS-Kapazitätspools.
---
version: 1
storageDriverName: azure-netapp-files
backendName: anf1
location: eastus
labels:
clusterName: test-cluster-1
cloud: anf
nasType: nfs
defaults:
qosType: Manual
storage:
- serviceLevel: Ultra
labels:
performance: gold
defaults:
maxThroughput: 10
- serviceLevel: Premium
labels:
performance: silver
defaults:
maxThroughput: 5
- serviceLevel: Standard
labels:
performance: bronze
defaults:
maxThroughput: 3
Erweiterte Konfiguration
Diese Backend-Konfiguration beschränkt den Umfang der Volume-Platzierung weiter auf ein einzelnes Subnetz und ändert außerdem einige Standardwerte für die Volume-Bereitstellung.
---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
serviceLevel: Ultra
capacityPools:
- application-group-1/account-1/ultra-1
- application-group-1/account-1/ultra-2
virtualNetwork: application-group-1/eastus-prod-vnet
subnet: application-group-1/eastus-prod-vnet/my-subnet
networkFeatures: Standard
nfsMountOptions: vers=3,proto=tcp,timeo=600
limitVolumeSize: 500Gi
defaults:
exportRule: 10.0.0.0/24,10.0.1.0/24,10.0.2.100
snapshotDir: "true"
size: 200Gi
unixPermissions: "0777"
Konfiguration des virtuellen Pools
Diese Backend-Konfiguration definiert mehrere Speicherpools in einer einzigen Datei. Dies ist nützlich, wenn Sie mehrere Kapazitätspools haben, die unterschiedliche Service-Level unterstützen und Sie Speicherklassen in Kubernetes erstellen möchten, die diese repräsentieren. Virtuelle Pool-Labels wurden verwendet, um die Pools anhand von `performance`zu unterscheiden.
---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
resourceGroups:
- application-group-1
networkFeatures: Basic
nfsMountOptions: vers=3,proto=tcp,timeo=600
labels:
cloud: azure
storage:
- labels:
performance: gold
serviceLevel: Ultra
capacityPools:
- application-group-1/netapp-account-1/ultra-1
- application-group-1/netapp-account-1/ultra-2
networkFeatures: Standard
- labels:
performance: silver
serviceLevel: Premium
capacityPools:
- application-group-1/netapp-account-1/premium-1
- labels:
performance: bronze
serviceLevel: Standard
capacityPools:
- application-group-1/netapp-account-1/standard-1
- application-group-1/netapp-account-1/standard-2
Unterstützte Topologiekonfiguration
Trident erleichtert die Bereitstellung von Volumes für Workloads basierend auf Regionen und Verfügbarkeitszonen. Der supportedTopologies Block in dieser Backend-Konfiguration wird verwendet, um eine Liste von Regionen und Zonen pro Backend bereitzustellen. Die hier angegebenen Regions- und Zonenwerte müssen mit den Regions- und Zonenwerten aus den Labels auf jedem Kubernetes-Clusterknoten übereinstimmen. Diese Regionen und Zonen stellen die Liste der zulässigen Werte dar, die in einer Speicherklasse angegeben werden können. Für Speicherklassen, die eine Teilmenge der in einem Backend bereitgestellten Regionen und Zonen enthalten, erstellt Trident Volumes in der genannten Region und Zone. Weitere Informationen finden sich unter "CSI-Topologie verwenden".
---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
serviceLevel: Ultra
capacityPools:
- application-group-1/account-1/ultra-1
- application-group-1/account-1/ultra-2
supportedTopologies:
- topology.kubernetes.io/region: eastus
topology.kubernetes.io/zone: eastus-1
- topology.kubernetes.io/region: eastus
topology.kubernetes.io/zone: eastus-2
Speicherklassendefinitionen
Die folgenden StorageClass Definitionen beziehen sich auf die oben genannten Speicherpools.
Beispieldefinitionen unter Verwendung des parameter.selector Felds
Mit parameter.selector können Sie für jedes StorageClass den virtuellen Pool angeben, der zum Hosten eines Volumes verwendet wird. Das Volume wird die im gewählten Pool definierten Aspekte aufweisen.
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: gold
provisioner: csi.trident.netapp.io
parameters:
selector: performance=gold
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: silver
provisioner: csi.trident.netapp.io
parameters:
selector: performance=silver
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: bronze
provisioner: csi.trident.netapp.io
parameters:
selector: performance=bronze
allowVolumeExpansion: true
Beispieldefinitionen für SMB-Volumes
Mit nasType, node-stage-secret-name und node-stage-secret-namespace können Sie ein SMB-Volume angeben und die erforderlichen Active Directory-Anmeldeinformationen bereitstellen.
Grundkonfiguration im Standard-Namespace
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: anf-sc-smb
provisioner: csi.trident.netapp.io
parameters:
backendType: "azure-netapp-files"
trident.netapp.io/nasType: "smb"
csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
csi.storage.k8s.io/node-stage-secret-namespace: "default"
Verwendung unterschiedlicher Geheimnisse pro Namensraum
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: anf-sc-smb
provisioner: csi.trident.netapp.io
parameters:
backendType: "azure-netapp-files"
trident.netapp.io/nasType: "smb"
csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
Verwendung unterschiedlicher Secrets pro Volume
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: anf-sc-smb
provisioner: csi.trident.netapp.io
parameters:
backendType: "azure-netapp-files"
trident.netapp.io/nasType: "smb"
csi.storage.k8s.io/node-stage-secret-name: ${pvc.name}
csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
|
|
nasType: smb`Filter für Pools, die SMB-Volumes unterstützen. oder `nasType: null`filtert für NFS-Pools.
|
Das Backend erstellen
Nachdem Sie die Backend-Konfigurationsdatei erstellt haben, führen Sie den folgenden Befehl aus:
tridentctl create backend -f <backend-file>
Wenn Sie eine nicht-kommerzielle Azure-Cloud verwenden, stellen Sie sicher, dass tridentctl für die Verwendung des Azure Resource Manager und der Authentifizierung-Endpunkte für Ihre Azure-Cloudumgebung konfiguriert ist. Wenn die Backend-Erstellung fehlschlägt, überprüfen Sie Ihre Backend-Konfiguration und sehen Sie sich die Protokolle an, um die Ursache zu ermitteln:
tridentctl logs
Nachdem Sie das Problem mit der Konfigurationsdatei identifiziert und behoben haben, können Sie den create-Befehl erneut ausführen.