你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
为 Azure Kubernetes 服务配置 Azure NetApp 文件
永久性卷表示已经过预配可以用于 Kubernetes Pod 的存储块。 永久性卷可供一个或多个 Pod 使用,并可静态或动态预配。 本文介绍如何在 Azure Kubernetes 服务 (AKS) 群集上配置可供 Pod 使用的 Azure NetApp 文件。
Azure NetApp 文件是在 Azure 上运行的企业级高性能计量文件存储服务,支持使用 NFS(NFSv3 或 NFSv4.1)、SMB 和双协议(NFSv3 和 SMB,或 NFSv4.1 和 SMB)的卷。 Kubernetes 用户在将 Azure NetApp 文件卷用于 Kubernetes 工作负荷时有两个选项:
- 静态创建 Azure NetApp 文件卷。 在此方案中,卷的创建在 AKS 外部进行。 卷使用 Azure CLI 或 Azure 门户创建,然后通过创建
PersistentVolume
向 Kubernetes 公开。 以静态方式创建的 Azure NetApp 文件卷存在很多限制(例如,无法扩展、需要过度预配等)。 对于大多数用例,不建议使用静态创建的卷。 - 通过 Kubernetes 动态创建 Azure NetApp 文件卷。 此方法是直接通过 Kubernetes 创建多个卷的首选方法,是使用 Astra Trident 实现的。 Astra Trident 是符合 CSI 规范的动态存储业务流程协调程序,可帮助通过 Kubernetes 在本地预配卷。
注意
双协议卷只能静态创建。 有关在 Azure Kubernetes 服务中使用双协议卷的详细信息,请参阅为 Azure Kubernetes 服务预配 Azure NetApp 文件双协议卷。
对于大多数用例,建议的配置是通过 CSI 驱动程序直接使用来自 AKS 工作负荷的 Azure NetApp 文件卷。 可以使用适用于 Kubernetes 的开源动态存储业务流程协调程序 Astra Trident 实现此要求。 Astra Trident 是专为 Kubernetes 构建的企业级存储业务流程协调程序,得到 NetApp 的全面支持。 其可通过自动执行存储预配,简化从 Kubernetes 群集对存储的访问。
你可以利用 Astra Trident 适用于 Azure NetApp 文件的容器存储接口 (CSI) 驱动程序,抽象基础详细信息并按需创建和扩展卷以及生成卷的快照。 另外,使用 Astra Trident,你可以使用在 Astra Trident 之上构建的 Astra Control Service。 使用 Astra Control Service,你可以在 Azure 区域内以及跨 Azure 区域跨群集备份、恢复和移动 AKS 工作负荷并管理其应用程序数据生命周期,以满足你的业务和服务连续性需求。
重要
AKS 文档和示例中都提到了开源软件。 AKS 服务级别协议、有限保修和 Azure 支持不涵盖你部署的软件。 将开源技术与 AKS 一起使用时,请查阅相应社区和项目维护者提供的支持选项来制定计划。
例如,Ray GitHub 存储库描述了多个在响应时间、用途和支持级别方面各不相同的平台。
Microsoft 将负责生成我们在 AKS 上部署的开源包。 该责任包括对生成、扫描、签名、验证和修补过程拥有完整的所有权,以及对容器映像中的二进制文件的控制。 如需了解详细信息,请参阅 AKS 漏洞管理和 AKS 支持范围。
开始之前
使用 Azure NetApp 文件时需注意以下事项:
- 此外,你的 AKS 群集必须位于支持 Azure NetApp 文件的区域中。
- 安装并配置了 Azure CLI 2.0.59 或更高版本。 运行
az --version
即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。 - 初始部署 AKS 群集后,可以选择以静态或动态方式预配 Azure NetApp 文件。
- 要在包含网络文件系统 (NFS) 的 Azure NetApp 文件中使用动态预配,请安装并配置 Astra Trident 版本 19.07 或更高版本。 要通过安全消息块 (SMB) 对 Azure NetApp 文件使用动态预配,请安装并配置 Astra Trident 版本 22.10 或更高版本。 仅在 Windows 工作器节点上支持 SMB 共享的动态预配。
- 部署 Azure NetApp 文件 SMB 卷之前,必须确定 Azure NetApp 文件的 AD DS 集成要求,以确保 Azure NetApp 文件与 AD DS 良好连接。 有关详细信息,请参阅了解 Active Directory 域服务站点设计和规划指南。 AKS 群集和 Azure NetApp 文件必须连接到同一 AD。
为 AKS 工作负载配置 Azure NetApp 文件
本节介绍如何为 AKS 工作负载设置 Azure NetApp 文件。 本节的内容适用于本文中的所有场景。
定义变量供以后使用。 将 myresourcegroup、mylocation、myaccountname、mypool1、poolsize、premium、myvnet、myANFSubnet 和 myprefix 替换为适合你环境的值。
RESOURCE_GROUP="myresourcegroup" LOCATION="mylocation" ANF_ACCOUNT_NAME="myaccountname" POOL_NAME="mypool1" SIZE="poolsize" # size in TiB SERVICE_LEVEL="Premium" # valid values are Standard, Premium and Ultra VNET_NAME="myvnet" SUBNET_NAME="myANFSubnet" ADDRESS_PREFIX="myprefix"
通过运行以下命令注册 Microsoft.NetApp 资源提供程序:
az provider register --namespace Microsoft.NetApp --wait
注意
此操作可能需要几分钟才能完成。
使用
az netappfiles account create
命令创建新帐户。 创建用于 AKS 的 Azure NetApp 帐户时,可以在现有资源组中创建帐户,也可以在 AKS 群集所在的区域中创建新帐户。az netappfiles account create \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --account-name $ANF_ACCOUNT_NAME
使用
az netappfiles pool create
命令创建新的容量池。 将命令中显示的变量替换为你的 Azure NetApp 文件信息。account_name
应与步骤 3 中创建的相同。az netappfiles pool create \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --account-name $ANF_ACCOUNT_NAME \ --pool-name $POOL_NAME \ --size $SIZE \ --service-level $SERVICE_LEVEL
使用
az network vnet subnet create
命令创建要委派给 Azure NetApp 文件的子网。 指定托管 AKS 群集的现有虚拟网络的资源组。 将命令中显示的变量替换为你的 Azure NetApp 文件信息。注意
此子网必须与 AKS 群集位于同一虚拟网络中。
az network vnet subnet create \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --delegations "Microsoft.Netapp/volumes" \ --address-prefixes $ADDRESS_PREFIX
为 NFS 或 SMB 静态或动态预配 Azure NetApp 文件卷
为 AKS 工作负载配置 Azure NetApp 文件后,可以使用容量池中的 NFS、SMB 或双协议卷来静态或动态预配 Azure NetApp 文件。 按照以下中的说明操作:
- 为 Azure Kubernetes 服务预配 Azure NetApp 文件 NFS 卷
- 为 Azure Kubernetes 服务预配 Azure NetApp 文件 SMB 卷
- 为 Azure Kubernetes 服务预配 Azure NetApp 文件双重协议卷
后续步骤
Astra Trident 支持 Azure NetApp 文件的许多功能。 有关详细信息,请参阅: