作为 Kubernetes 社区工作(树中的 Kubernetes 到 CSI 卷的迁移)的一部分,若要将树中的卷提供程序移至容器存储接口 CSI,可以在 Azure Stack 中找到以下 CSI 驱动程序:Azure 磁盘。
详细信息 | Azure 磁盘 CSI 驱动程序 |
---|---|
项目存储库 | azuredisk-csi-driver |
CSI 驱动程序版本 | v1.0.0+ |
访问模式 | ReadWriteOnce |
Windows 代理节点 | 支持 |
动态预配 | 支持 |
注意事项 | Azure 磁盘 CSI 驱动程序限制 |
Slack 支持渠道 | #provider-azure |
在 AKSe v0.75.3 及更高版本中,Azure 磁盘 CSI 驱动程序通过 azuredisk-csi-driver 加载项或 helm chart 用于 Linux 和 Windows 节点。 在离线环境中,仅支持 azuredisk-csi-driver 加载项。
要求
- Azure Stack 版本 2011 及更高版本。
- AKS 引擎版本 v0.60.1 及更高版本。
- Kubernetes 版本 1.18 及更高版本。
- 由于 CSI 驱动程序的控制器服务器需要两个副本,因此不建议使用单节点主池。
- Helm 3
安装和卸载 CSI 驱动程序
在本部分中,请按照示例命令部署使用 CSI 驱动程序的 StatefulSet 应用程序。
Azure 磁盘 CSI 驱动程序
安装 CSI 驱动程序
DRIVER_VERSION=v1.10.0
helm repo add azuredisk-csi-driver https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts
helm install azuredisk-csi-driver azuredisk-csi-driver/azuredisk-csi-driver \
--namespace kube-system \
--set cloud=AzureStackCloud \
--set controller.runOnMaster=true \
--version ${DRIVER_VERSION}
部署存储类
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/storageclass-azuredisk-csi-azurestack.yaml
部署示例 StatefulSet 应用程序
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/statefulset.yaml
验证卷和应用程序
应会看到时间戳序列在卷中持久保存。
kubectl exec statefulset-azuredisk-0 -- tail /mnt/azuredisk/outfile
删除示例 StatefulSet 应用程序
kubectl delete -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/statefulset.yaml
删除存储类
删除存储类之前,请确保已终止使用存储类的 Pod。
kubectl delete -f https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/deploy/example/storageclass-azuredisk-csi-azurestack.yaml
卸载 CSI 驱动程序
helm uninstall azuredisk-csi-driver --namespace kube-system
helm repo remove azuredisk-csi-driver
Azure Stack Hub 上的 Azure Disk CSI 驱动程序限制
- Azure 磁盘 IOPS 上限为 2300。 有关详细信息,请参阅 Azure Stack Hub 中支持的 VM 大小。
- Azure Stack Hub 不支持共享磁盘,因此,大于 1 的
maxShares
值在 StorageClass 中无效。 - Azure Stack Hub 仅支持标准本地冗余 (Standard_LRS) 和高级本地冗余 (Premium_LRS) 存储帐户类型,因此,对于
StorageClass
中的skuName
参数,只有Standard_LRS
和Premium_LRS
有效。 - Azure Stack Hub 不支持增量磁盘快照,因此仅 false 对
VolumeSnapshotClass
中的参数incremental
有效。 - 对于 Windows 代理节点,你需要安装 Windows CSI 代理。 有关详细信息,请参阅 Windows CSI 代理。 若要通过 AKS 引擎 API 模型启用代理,请参阅适用于 Windows 的 CSI 代理。