Azure NetApp Files 后端配置选项和示例
了解ANF的NFS和SMB后端配置选项、并查看配置示例。
Astra Trident会使用后端配置(子网、虚拟网络、服务级别和位置)在请求的位置提供的容量池上创建ANF卷、并与请求的服务级别和子网匹配。
Astra Trident 不支持手动 QoS 容量池。 |
后端配置选项
ANF后端提供了这些配置选项。
参数 | Description | Default |
---|---|---|
|
始终为 1 |
|
|
存储驱动程序的名称 |
"Azure-netapp-files" |
|
自定义名称或存储后端 |
驱动程序名称 + "_" + 随机字符 |
|
Azure 订阅中的订阅 ID |
|
|
应用程序注册中的租户 ID |
|
|
应用程序注册中的客户端 ID |
|
|
应用程序注册中的客户端密钥 |
|
|
其中一个 |
"" (随机) |
|
要创建新卷的 Azure 位置的名称 |
|
|
用于筛选已发现资源的资源组列表 |
"[]" (无筛选器) |
|
用于筛选已发现资源的 NetApp 帐户列表 |
"[]" (无筛选器) |
|
用于筛选已发现资源的容量池列表 |
"[]" (无筛选器,随机) |
|
具有委派子网的虚拟网络的名称 |
"" |
|
委派给的子网的名称 |
"" |
|
一个卷的一组vNet功能可能是 |
"" |
|
精细控制 NFS 挂载选项。SMB卷已忽略。要使用NFS 4.1挂载卷、请包括 |
"nfsvers=3" |
|
如果请求的卷大小超过此值,则配置失败 |
"" (默认情况下不强制实施) |
|
故障排除时要使用的调试标志。示例、 |
空 |
|
配置NFS或SMB卷创建。选项包括 |
|
有关网络功能的详细信息、请参见 "配置Azure NetApp Files 卷的网络功能"。 |
所需权限和资源
如果在创建PVC时收到"未找到容量池"错误、则您的应用程序注册可能没有关联的所需权限和资源(子网、虚拟网络、容量池)。如果启用了调试、则Astra Trident将记录创建后端时发现的Azure资源。验证是否正在使用适当的角色。
的值 resourceGroups
, netappAccounts
, capacityPools
, virtualNetwork
,和 subnet
可以使用短名称或完全限定名称来指定。在大多数情况下、建议使用完全限定名称、因为短名称可以与多个同名资源匹配。
。 resourceGroups
, netappAccounts
,和 capacityPools
值是指筛选器、用于将发现的一组资源限制为此存储后端可用的资源、并且可以以任意组合方式指定。完全限定名称采用以下格式:
Type | 格式。 |
---|---|
Resource group |
< 资源组 > |
NetApp 帐户 |
< 资源组 >/< NetApp 帐户 > |
容量池 |
< 资源组 >/< NetApp 帐户 >/< 容量池 > |
虚拟网络 |
< 资源组 >/< 虚拟网络 > |
Subnet |
< 资源组 >/< 虚拟网络 >/< 子网 > |
卷配置
您可以通过在配置文件的特殊部分中指定以下选项来控制默认卷配置。请参见 示例配置 了解详细信息。
参数 | Description | Default |
---|---|---|
|
新卷的导出规则。 |
"0.0.0.0/0 |
|
控制 .snapshot 目录的可见性 |
false |
|
新卷的默认大小 |
"100 克 " |
|
新卷的UNIX权限(4个八进制数字)。SMB卷已忽略。 |
"" (预览功能,需要在订阅中列入白名单) |
对于在ANF后端创建的所有卷、Astra Trident会在配置存储池时将存储池上的标签复制到该存储卷。存储管理员可以为每个存储池定义标签,并对存储池中创建的所有卷进行分组。这是一种根据后端配置中提供的一组可自定义标签区分卷的便捷方式。 |
示例配置
示例 1 :最低配置
这是绝对的最低后端配置。使用此配置, Astra Trident 会发现在已配置位置委派给 ANF 的所有 NetApp 帐户,容量池和子网,并随机将新卷放置在其中一个池和子网上。因为 nasType
省略 nfs
默认情况下适用、后端将为NFS卷配置。
当您刚开始使用 ANF 并尝试执行相关操作时,此配置是理想的选择,但实际上,您希望为所配置的卷提供更多范围界定。
{ "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" }
示例 2 :使用容量池筛选器的特定服务级别配置
此后端配置会将卷放置在Azure中 eastus
位置 Ultra
容量池。Astra Trident 会自动发现该位置委派给 ANF 的所有子网,并随机在其中一个子网上放置一个新卷。
{ "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" ], }
示例 3 :高级配置
此后端配置进一步将卷放置范围缩小为一个子网,并修改了某些卷配置默认值。
{ "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": "my-virtual-network", "subnet": "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" } }
示例 4 :虚拟存储池配置
此后端配置可在一个文件中定义多个存储池。如果您有多个容量池支持不同的服务级别,并且您希望在 Kubernetes 中创建表示这些服务级别的存储类,则此功能非常有用。
{ "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" }, "location": "eastus", "storage": [ { "labels": { "performance": "gold" }, "serviceLevel": "Ultra", "capacityPools": ["ultra-1", "ultra-2"], "networkFeatures": "Standard" }, { "labels": { "performance": "silver" }, "serviceLevel": "Premium", "capacityPools": ["premium-1"] }, { "labels": { "performance": "bronze" }, "serviceLevel": "Standard", "capacityPools": ["standard-1", "standard-2"] } ] }
存储类定义
以下内容 StorageClass
定义是指上述存储池。
使用的示例定义 parameter.selector
字段
使用 parameter.selector
您可以为每个指定 StorageClass
用于托管卷的虚拟池。卷将在选定池中定义各个方面。
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
SMB卷的示例定义
使用 nasType
, node-stage-secret-name
,和 node-stage-secret-namespace
、您可以指定SMB卷并提供所需的Active Directory凭据。
示例1:默认命名空间上的基本配置
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"
示例2:每个命名空间使用不同的密钥
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}
示例3:每个卷使用不同的密钥
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" 支持SMB卷的池的筛选器。 nasType: "nfs"` 或 nasType: "null" NFS池的筛选器。
|
创建后端
创建后端配置文件后,运行以下命令:
tridentctl create backend -f <backend-file>
如果后端创建失败,则后端配置出现问题。您可以运行以下命令来查看日志以确定发生原因:
tridentctl logs
确定并更正配置文件中的问题后,您可以再次运行 create 命令。