配置 Azure NetApp Files 后端
了解如何使用提供的示例配置将 Azure NetApp Files ( ANF )配置为 Astra Trident 安装的后端。
Azure NetApp Files 服务不支持小于 100 GB 的卷。如果请求的卷较小,则 Astra Trident 会自动创建 100 GB 的卷。 |
配置和使用 "Azure NetApp Files" 后端,您需要满足以下要求:
-
subscriptionID
从启用了Azure NetApp Files 的Azure订阅。 -
tenantID
,clientID
,和clientSecret
从 "应用程序注册" 在 Azure Active Directory 中,具有足够的 Azure NetApp Files 服务权限。应用程序注册应使用Owner
或Contributor
Azure预定义的角色。要了解有关 Azure 内置角色的详细信息,请参见 "Azure 文档"。 -
Azure
location
至少包含一个 "委派子网"。 -
如果您是首次使用 Azure NetApp Files 或在新位置使用,则需要进行一些初始配置。请参见 "《快速入门指南》"。
根据后端配置(子网,虚拟网络,服务级别和位置), Trident 会在请求位置提供的容量池上创建 ANF 卷,并与请求的服务级别和子网匹配。
Astra Trident 21.04.0 及更早版本不支持手动 QoS 容量池。 |
后端配置选项
有关后端配置选项,请参见下表:
参数 | Description | Default |
---|---|---|
|
始终为 1 |
|
|
存储驱动程序的名称 |
"Azure-netapp-files" |
|
自定义名称或存储后端 |
驱动程序名称 + "_" + 随机字符 |
|
Azure 订阅中的订阅 ID |
|
|
应用程序注册中的租户 ID |
|
|
应用程序注册中的客户端 ID |
|
|
应用程序注册中的客户端密钥 |
|
|
其中一个 |
"" (随机) |
|
要创建新卷的 Azure 位置的名称 |
"" (随机) |
|
具有委派子网的虚拟网络的名称 |
"" (随机) |
|
委派给的子网的名称 |
"" (随机) |
|
精细控制 NFS 挂载选项。 |
"nfsvers=3" |
|
如果请求的卷大小超过此值,则配置失败 |
"" (默认情况下不强制实施) |
|
故障排除时要使用的调试标志。示例、 |
空 |
修改 capacityPools 字段、以减少用于配置的容量池的数量会导致孤立卷、这些卷会配置在不属于的容量池/池上 capacityPools 列表。对这些孤立卷执行克隆操作将失败。
|
如果在尝试创建 PVC 时遇到 " 未找到容量池 " 错误,则您的应用程序注册可能没有关联的所需权限和资源(子网,虚拟网络,容量池)。启用调试后, Astra Trident 将记录在创建后端时发现的 Azure 资源。请务必检查是否正在使用适当的角色。 |
如果要使用NFS 4.1挂载卷、可以包括 nfsvers=4 在逗号分隔的挂载选项列表中选择NFS v4.1。存储类中设置的任何挂载选项都会覆盖后端配置文件中设置的挂载选项。
|
您可以通过在配置文件的特殊部分中指定以下选项来控制默认配置每个卷的方式。请参见以下配置示例。
参数 | Description | Default |
---|---|---|
|
新卷的导出规则 |
"0.0.0.0/0 |
|
新卷的默认大小 |
"100 克 " |
。 exportRule
值必须是以CIDR表示法表示的IPv4地址或IPv4子网任意组合的逗号分隔列表。
对于在 ANF 后端创建的所有卷, Astra Trident 会在配置存储池时将存储池上的所有标签复制到该存储卷。存储管理员可以为每个存储池定义标签,并对存储池中创建的所有卷进行分组。这样,您就可以根据后端配置中提供的一组可自定义标签来方便地区分卷了。 |
示例 1 :最低配置
这是绝对的最低后端配置。借助此配置, Astra Trident 可以发现全球每个位置委派给 ANF 的所有 NetApp 帐户,容量池和子网,并随机将新卷放置在其中一个上。
当您刚开始使用 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" }
示例 2 :单个位置和特定服务级别配置
此后端配置会将卷放置在Azure中 eastus
位置在中 Premium
容量池。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": "Premium" }
示例 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": "Premium", "virtualNetwork": "my-virtual-network", "subnet": "my-subnet", "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", "size": "200Gi" } }
示例 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", "nfsMountOptions": "vers=3,proto=tcp,timeo=600", "labels": { "cloud": "azure" }, "location": "eastus", "storage": [ { "labels": { "performance": "gold" }, "serviceLevel": "Ultra" }, { "labels": { "performance": "silver" }, "serviceLevel": "Premium" }, { "labels": { "performance": "bronze" }, "serviceLevel": "Standard", } ] }
以下内容 StorageClass
定义是指上述存储池。使用 parameters.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
下一步是什么?
创建后端配置文件后,运行以下命令:
tridentctl create backend -f <backend-file>
如果后端创建失败,则后端配置出现问题。您可以运行以下命令来查看日志以确定发生原因:
tridentctl logs
确定并更正配置文件中的问题后,您可以再次运行 create 命令。