配置 Azure NetApp Files 后端
使用 Azure NetApp Files 作为 Trident 的后端。此后端支持 NFS 和 SMB 卷。Trident 支持 Azure Kubernetes Service (AKS) 集群的托管身份和工作负载身份。
支持的 Azure 云环境
Trident 支持多个 Azure 云环境中的 Azure NetApp Files 后端。
支持的 Azure 云包括:
-
Azure 商业版
-
Azure Government(Azure Government / MAG)
部署 Trident 或配置 Azure NetApp Files 后端时,请确保 Azure Resource Manager 和身份验证终结点与 Azure 云环境匹配。
查看 Azure NetApp Files 驱动程序支持
Trident 提供了以下 Azure NetApp Files 存储驱动程序。
支持的访问模式包括 ReadWriteOnce (RWO)、ReadOnlyMany (ROX)、ReadWriteMany (RWX) 和 ReadWriteOncePod (RWOP)。
| 驱动程序 | 协议 | 卷模式 | 支持的访问模式 | 支持的文件系统 |
|---|---|---|---|---|
|
NFS |
文件系统 |
Rwo、ROX、rwx、RWOP |
|
查看考虑事项
-
Azure NetApp Files 不支持小于 50 GiB 的卷。当请求较小的卷时,Trident 会创建 50-GiB 卷。
-
Trident仅支持挂载到Windows节点上运行的Pod的SMB卷。
-
非商业 Azure 云中的 Azure NetApp Files 部署需要特定于云的 Azure Resource Manager 和身份验证端点。确保 Trident 和任何后端配置使用适合您的 Azure 云环境的端点。
对 AKS 使用托管标识
Trident 支持 "受管身份" AKS 集群。
如果使用 tridentctl 来创建或管理 Azure NetApp Files 后端,请确保为正确的 Azure 云环境配置它。
要使用托管身份,必须具有:
-
使用AKS部署的Kubbernetes集群
-
在 AKS Kubernetes 集群上配置的托管身份
-
Trident 已安装,
cloudProvider设置为"Azure"
编辑 tridentorchestrator_cr.yaml 并设置 cloudProvider 为 "Azure"。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullPolicy: IfNotPresent
cloudProvider: "Azure"
以下示例安装 Trident 并通过环境变量 cloudProvider`进行设置 `$CP:
helm install trident trident-operator-100.2506.0.tgz --create-namespace --namespace <trident-namespace> --set cloudProvider=$CP
以下示例安装 Trident 并将 cloud-provider 标志设置为 Azure:
tridentctl install --cloud-provider="Azure" -n trident
使用 AKS 的工作负载标识
工作负载标识使 Kubernetes Pod 能够通过作为工作负载标识进行身份验证来访问 Azure 资源。
如果使用 tridentctl 来创建或管理 Azure NetApp Files 后端,请确保为正确的 Azure 云环境配置它。
要使用工作负载标识,必须具有:
-
使用AKS部署的Kubbernetes集群
-
在AKS Kubelnetes集群上配置的工作负载身份和oidc-Issuer
-
已安装 Trident,其中
cloudProvider`设置为 `"Azure", `cloudIdentity`设置为工作负载身份值
编辑 tridentorchestrator_cr.yaml 并设置 cloudProvider 为 "Azure"。设置 cloudIdentity 为 azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullPolicy: IfNotPresent
cloudProvider: "Azure"
cloudIdentity: 'azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx' # Edit
使用以下环境变量设置 cloud-provider (CP) 和 cloud-identity (CI) 标志的值:
export CP="Azure"
export CI="'azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx'"
以下示例安装 Trident,并使用 cloudProvider`进行设置,使用 `$CP,并使用 cloudIdentity`进行设置,使用 `$CI:
helm install trident trident-operator-100.6.0.tgz --set cloudProvider=$CP --set cloudIdentity="$CI"
使用以下环境变量设置 cloud provider 和 cloud identity 标志的值:
export CP="Azure"
export CI="azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
以下示例安装 Trident 并将 cloud-provider`设置为 `$CP`并将 `cloud-identity`设置为 `$CI:
tridentctl install --cloud-provider=$CP --cloud-identity="$CI" -n trident