Skip to content

Commit 3886a3d

Browse files
authored
Merge pull request #214910 from MGoedtel/task1983864
GA CSI Blob storage driver
2 parents 1182f08 + d37f3bb commit 3886a3d

File tree

2 files changed

+41
-149
lines changed

2 files changed

+41
-149
lines changed

articles/aks/azure-blob-csi.md

Lines changed: 17 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
---
22
title: Use Container Storage Interface (CSI) driver for Azure Blob storage on Azure Kubernetes Service (AKS)
3-
description: Learn how to use the Container Storage Interface (CSI) driver for Azure Blob storage (preview) in an Azure Kubernetes Service (AKS) cluster.
3+
description: Learn how to use the Container Storage Interface (CSI) driver for Azure Blob storage in an Azure Kubernetes Service (AKS) cluster.
44
services: container-service
55
ms.topic: article
6-
ms.date: 08/10/2022
6+
ms.date: 11/16/2022
77
author: mgoedtel
88

99
---
1010

11-
# Use Azure Blob storage Container Storage Interface (CSI) driver (preview)
11+
# Use Azure Blob storage Container Storage Interface (CSI) driver
1212

13-
The Azure Blob storage Container Storage Interface (CSI) driver (preview) is a [CSI specification][csi-specification]-compliant driver used by Azure Kubernetes Service (AKS) to manage the lifecycle of Azure Blob storage. The CSI is a standard for exposing arbitrary block and file storage systems to containerized workloads on Kubernetes.
13+
The Azure Blob storage Container Storage Interface (CSI) driver is a [CSI specification][csi-specification]-compliant driver used by Azure Kubernetes Service (AKS) to manage the lifecycle of Azure Blob storage. The CSI is a standard for exposing arbitrary block and file storage systems to containerized workloads on Kubernetes.
1414

1515
By adopting and using CSI, AKS now can write, deploy, and iterate plug-ins to expose new or improve existing storage systems in Kubernetes. Using CSI drivers in AKS avoids having to touch the core Kubernetes code and wait for its release cycles.
1616

@@ -20,91 +20,27 @@ Mounting Azure Blob storage as a file system into a container or pod, enables yo
2020
* Images, documents, and streaming video or audio
2121
* Disaster recovery data
2222

23-
The data on the object storage can be accessed by applications using BlobFuse or Network File System (NFS) 3.0 protocol. Before the introduction of the Azure Blob storage CSI driver (preview), the only option was to manually install an unsupported driver to access Blob storage from your application running on AKS. When the Azure Blob storage CSI driver (preview) is enabled on AKS, there are two built-in storage classes: *azureblob-fuse-premium* and *azureblob-nfs-premium*.
23+
The data on the object storage can be accessed by applications using BlobFuse or Network File System (NFS) 3.0 protocol. Before the introduction of the Azure Blob storage CSI driver, the only option was to manually install an unsupported driver to access Blob storage from your application running on AKS. When the Azure Blob storage CSI driver is enabled on AKS, there are two built-in storage classes: *azureblob-fuse-premium* and *azureblob-nfs-premium*.
24+
25+
> [!NOTE]
26+
> Azure Blob CSI driver only supports NFS 3.0 protocol for Kubernetes versions 1.25 (preview) on AKS.
2427
2528
To create an AKS cluster with CSI drivers support, see [CSI drivers on AKS][csi-drivers-aks]. To learn more about the differences in access between each of the Azure storage types using the NFS protocol, see [Compare access to Azure Files, Blob Storage, and Azure NetApp Files with NFS][compare-access-with-nfs].
2629

27-
## Azure Blob storage CSI driver (preview) features
30+
## Azure Blob storage CSI driver features
2831

29-
Azure Blob storage CSI driver (preview) supports the following features:
32+
Azure Blob storage CSI driver supports the following features:
3033

3134
- BlobFuse and Network File System (NFS) version 3.0 protocol
3235

3336
## Before you begin
3437

35-
- The Azure CLI version 2.37.0 or later. Run `az --version` to find the version, and run `az upgrade` to upgrade the version. If you need to install or upgrade, see [Install Azure CLI][install-azure-cli].
36-
37-
- Install the aks-preview Azure CLI extension version 0.5.85 or later.
38-
39-
- If the open-source CSI Blob storage driver is installed on your cluster, uninstall it before enabling the preview driver.
38+
Review the prerequisites listed in the [CSI storage drivers overview][csi-storage-driver-overview] article to verify the requirements before using this feature.
4039

4140
### Uninstall open-source driver
4241

4342
Perform the steps in this [link][csi-blob-storage-open-source-driver-uninstall-steps] if you previously installed the [CSI Blob Storage open-source driver][csi-blob-storage-open-source-driver] to access Azure Blob storage from your cluster.
4443

45-
## Install the Azure CLI aks-preview extension
46-
47-
The following steps are required to install and register the Azure CLI aks-preview extension and driver in your subscription.
48-
49-
1. To use the Azure CLI aks-preview extension for enabling the Blob storage CSI driver (preview) on your AKS cluster, run the following command to install it:
50-
51-
```azurecli
52-
az extension add --name aks-preview
53-
```
54-
55-
2. Run the following command to register the CSI driver (preview):
56-
57-
```azurecli
58-
az feature register --name EnableBlobCSIDriver --namespace Microsoft.ContainerService
59-
```
60-
61-
3. To register the provider, run the following command:
62-
63-
```azurecli
64-
az provider register -n Microsoft.ContainerService
65-
```
66-
67-
When newer versions of the extension are released, run the following command to upgrade the extension to the latest release:
68-
69-
```azurecli
70-
az extension update --name aks-preview
71-
```
72-
73-
## Enable CSI driver on a new or existing AKS cluster
74-
75-
Using the Azure CLI, you can enable the Blob storage CSI driver (preview) on a new or existing AKS cluster before you configure a persistent volume for use by pods in the cluster.
76-
77-
To enable the driver on a new cluster, include the `--enable-blob-driver` parameter with the `az aks create` command as shown in the following example:
78-
79-
```azurecli
80-
az aks create --enable-blob-driver -n myAKSCluster -g myResourceGroup
81-
```
82-
83-
To enable the driver on an existing cluster, include the `--enable-blob-driver` parameter with the `az aks update` command as shown in the following example:
84-
85-
```azurecli
86-
az aks update --enable-blob-driver -n myAKSCluster -g myResourceGroup
87-
```
88-
89-
You're prompted to confirm there isn't an open-source Blob CSI driver installed. After confirming, it may take several minutes to complete this action. Once it's complete, you should see in the output the status of enabling the driver on your cluster. The following example is resembles the section indicating the results of the previous command:
90-
91-
```output
92-
"storageProfile": {
93-
"blobCsiDriver": {
94-
"enabled": true
95-
},
96-
```
97-
98-
## Disable CSI driver on an existing AKS cluster
99-
100-
Using the Azure CLI, you can disable the Blob storage CSI driver on an existing AKS cluster after you remove the persistent volume from the cluster.
101-
102-
To disable the driver on an existing cluster, include the `--disable-blob-driver` parameter with the `az aks update` command as shown in the following example:
103-
104-
```azurecli
105-
az aks update --disable-blob-driver -n myAKSCluster -g myResourceGroup
106-
```
107-
10844
## Use a persistent volume with Azure Blob storage
10945

11046
A [persistent volume][persistent-volume] (PV) represents a piece of storage that's provisioned for use with Kubernetes pods. A PV can be used by one or many pods and can be dynamically or statically provisioned. If multiple pods need concurrent access to the same storage volume, you can use Azure Blob storage to connect by using the Network File System (NFS) or blobfuse. This article shows you how to dynamically create an Azure Blob storage container for use by multiple pods in an AKS cluster.
@@ -120,7 +56,7 @@ A storage class is used to define how an Azure Blob storage container is created
12056
* **Standard_GRS**: Standard geo-redundant storage
12157
* **Standard_RAGRS**: Standard read-access geo-redundant storage
12258

123-
When you use storage CSI drivers on AKS, there are two additional built-in StorageClasses that use the Azure Blob CSI storage driver (preview).
59+
When you use storage CSI drivers on AKS, there are two additional built-in StorageClasses that use the Azure Blob CSI storage driver.
12460

12561
The reclaim policy on both storage classes ensures that the underlying Azure Blob storage is deleted when the respective PV is deleted. The storage classes also configure the container to be expandable by default, as the `set allowVolumeExpansion` parameter is set to **true**.
12662

@@ -244,49 +180,23 @@ To have a storage volume persist for your workload, you can use a StatefulSet. T
244180

245181
- To learn how to manually set up a static persistent volume, see [Create and use a volume with Azure Blob storage][azure-csi-blob-storage-static].
246182
- To learn how to dynamically set up a persistent volume, see [Create and use a dynamic persistent volume with Azure Blob storage][azure-csi-blob-storage-dynamic].
247-
- To learn how to use CSI driver for Azure Disks, see [Use Azure Disks with CSI driver](azure-disk-csi.md).
248-
- To learn how to use CSI driver for Azure Files, see [Use Azure Files with CSI driver](azure-files-csi.md).
183+
- To learn how to use CSI driver for Azure Disks, see [Use Azure Disks with CSI driver][azure-disk-csi-driver]
184+
- To learn how to use CSI driver for Azure Files, see [Use Azure Files with CSI driver][azure-files-csi-driver]
249185
- For more about storage best practices, see [Best practices for storage and backups in Azure Kubernetes Service][operator-best-practices-storage].
250186

251187
<!-- LINKS - external -->
252-
[access-modes]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
253-
[kubectl-apply]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply
254-
[kubectl-create]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#create
255-
[kubectl-get]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get
256-
[kubernetes-storage-classes]: https://kubernetes.io/docs/concepts/storage/storage-classes/
257-
[kubernetes-volumes]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
258-
[managed-disk-pricing-performance]: https://azure.microsoft.com/pricing/details/managed-disks/
259188
[csi-specification]: https://github.com/container-storage-interface/spec/blob/master/spec.md
260189
[csi-blob-storage-open-source-driver]: https://github.com/kubernetes-sigs/blob-csi-driver
261190
[csi-blob-storage-open-source-driver-uninstall-steps]: https://github.com/kubernetes-sigs/blob-csi-driver/blob/master/docs/install-csi-driver-master.md#clean-up-blob-csi-driver
262191

263192
<!-- LINKS - internal -->
264-
[install-azure-cli]: /cli/azure/install-azure-cli
265-
[azure-disk-volume]: azure-disk-volume.md
266-
[azure-files-pvc]: azure-files-dynamic-pv.md
267-
[premium-storage]: ../virtual-machines/disks-types.md
268193
[compare-access-with-nfs]: ../storage/common/nfs-comparison.md
269-
[az-disk-list]: /cli/azure/disk#az_disk_list
270-
[az-snapshot-create]: /cli/azure/snapshot#az_snapshot_create
271-
[az-disk-create]: /cli/azure/disk#az_disk_create
272-
[az-disk-show]: /cli/azure/disk#az_disk_show
273-
[aks-quickstart-cli]: ./learn/quick-kubernetes-deploy-cli.md
274-
[aks-quickstart-portal]: ./learn/quick-kubernetes-deploy-portal.md
275-
[aks-quickstart-powershell]: ./learn/quick-kubernetes-deploy-powershell.md
276-
[install-azure-cli]: /cli/azure/install-azure-cli
277194
[operator-best-practices-storage]: operator-best-practices-storage.md
278195
[concepts-storage]: concepts-storage.md
279196
[persistent-volume]: concepts-storage.md#persistent-volumes
280197
[csi-drivers-aks]: csi-storage-drivers.md
281-
[storage-class-concepts]: concepts-storage.md#storage-classes
282-
[az-extension-add]: /cli/azure/extension#az_extension_add
283-
[az-extension-update]: /cli/azure/extension#az_extension_update
284-
[az-feature-register]: /cli/azure/feature#az_feature_register
285-
[az-feature-list]: /cli/azure/feature#az_feature_list
286-
[az-provider-register]: /cli/azure/provider#az_provider_register
287-
[node-resource-group]: faq.md#why-are-two-resource-groups-created-with-aks
288-
[storage-skus]: ../storage/common/storage-redundancy.md
289-
[use-tags]: use-tags.md
290-
[az-tags]: ../azure-resource-manager/management/tag-resources.md
291198
[azure-csi-blob-storage-dynamic]: azure-csi-blob-storage-dynamic.md
292199
[azure-csi-blob-storage-static]: azure-csi-blob-storage-static.md
200+
[csi-storage-driver-overview]: csi-storage-drivers.md
201+
[azure-disk-csi-driver]: azure-disk-csi.md
202+
[azure-files-csi-driver]: azure-files-csi.md

articles/aks/csi-storage-drivers.md

Lines changed: 24 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ title: Container Storage Interface (CSI) drivers on Azure Kubernetes Service (AK
33
description: Learn about and deploy the Container Storage Interface (CSI) drivers for Azure Disks and Azure Files in an Azure Kubernetes Service (AKS) cluster
44
services: container-service
55
ms.topic: article
6-
ms.date: 09/18/2022
7-
author: palma21
6+
ms.date: 11/16/2022
87

98
---
109

@@ -28,34 +27,39 @@ The CSI storage driver support on AKS allows you to natively use:
2827
2928
## Prerequisites
3029

31-
You need the Azure CLI version 2.40 installed and configured. Run `az --version` to find the version. If you need to install or upgrade, see [Install Azure CLI][install-azure-cli].
30+
- You need the Azure CLI version 2.42 or later installed and configured. Run `az --version` to find the version. If you need to install or upgrade, see [Install Azure CLI][install-azure-cli].
31+
- If the open-source CSI Blob storage driver is installed on your cluster, uninstall it before enabling the Azure Blob storage driver.
3232

33-
## Disable CSI storage drivers on a new cluster
33+
## Disable CSI storage drivers on a new or existing cluster
3434

35-
`--disable-disk-driver` allows you to disable the [Azure Disks CSI driver][azure-disk-csi]. `--disable-file-driver` allows you to disable the [Azure Files CSI driver][azure-files-csi]. `--disable-snapshot-controller` allows you to disable the [snapshot controller][snapshot-controller ].
35+
To disable CSI storage drivers on a new cluster, include one of the following parameters depending on the storage system:
3636

37-
To disable CSI storage drivers on a new cluster, use `--disable-disk-driver`, `--disable-file-driver`, and `--disable-snapshot-controller`.
37+
* `--disable-disk-driver` allows you to disable the [Azure Disks CSI driver][azure-disk-csi].
38+
* `--disable-file-driver` allows you to disable the [Azure Files CSI driver][azure-files-csi].
39+
* `--disable-blob-driver` allows you to disable the [Azure Blob storage CSI driver][azure-blob-csi].
40+
* `--disable-snapshot-controller` allows you to disable the [snapshot controller][snapshot-controller].
3841

3942
```azurecli
40-
az aks create -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-snapshot-controller
43+
az aks create -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-blob-driver --disable-snapshot-controller
4144
```
4245

43-
## Disable CSI storage drivers on an existing cluster
44-
45-
To disable CSI storage drivers on an existing cluster, use `--disable-disk-driver`, `--disable-file-driver`, and `--disable-snapshot-controller`.
46+
To disable CSI storage drivers on an existing cluster, use one of the parameters listed earlier depending on the storage system:
4647

4748
```azurecli
48-
az aks update -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-snapshot-controller
49+
az aks update -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-blob-driver --disable-snapshot-controller
4950
```
5051

5152
## Enable CSI storage drivers on an existing cluster
5253

53-
`--enable-disk-driver` allows you enable the [Azure Disks CSI driver][azure-disk-csi]. `--enable-file-driver` allows you to enable the [Azure Files CSI driver][azure-files-csi]. `--enable-snapshot-controller` allows you to enable the [snapshot controller][snapshot-controller].
54+
To enable CSI storage drivers on a new cluster, include one of the following parameters depending on the storage system:
5455

55-
To enable CSI storage drivers on an existing cluster with CSI storage drivers disabled, use `--enable-disk-driver`, `--enable-file-driver`, and `--enable-snapshot-controller`.
56+
* `--enable-disk-driver` allows you to enable the [Azure Disks CSI driver][azure-disk-csi].
57+
* `--enable-file-driver` allows you to enable the [Azure Files CSI driver][azure-files-csi].
58+
* `--enable-blob-driver` allows you to enable the [Azure Blob storage CSI driver][azure-blob-csi].
59+
* `--enable-snapshot-controller` allows you to enable the [snapshot controller][snapshot-controller].
5660

5761
```azurecli
58-
az aks update -n myAKSCluster -g myResourceGroup --enable-disk-driver --enable-file-driver --enable-snapshot-controller
62+
az aks update -n myAKSCluster -g myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller
5963
```
6064

6165
## Migrate custom in-tree storage classes to CSI
@@ -115,43 +119,21 @@ If you have in-tree Azure File persistent volumes, get `secretName`, `shareName`
115119

116120
## Next steps
117121

118-
- To use the CSI driver for Azure Disks, see [Use Azure Disks with CSI drivers](azure-disk-csi.md).
119-
- To use the CSI driver for Azure Files, see [Use Azure Files with CSI drivers](azure-files-csi.md).
120-
- To use the CSI driver for Azure Blob storage, see [Use Azure Blob storage with CSI drivers](azure-blob-csi.md)
122+
- To use the CSI driver for Azure Disks, see [Use Azure Disks with CSI drivers][azure-disk-csi].
123+
- To use the CSI driver for Azure Files, see [Use Azure Files with CSI drivers][azure-files-csi].
124+
- To use the CSI driver for Azure Blob storage, see [Use Azure Blob storage with CSI drivers][azure-blob-csi]
121125
- For more about storage best practices, see [Best practices for storage and backups in Azure Kubernetes Service][operator-best-practices-storage].
122126
- For more information on CSI migration, see [Kubernetes In-Tree to CSI Volume Migration][csi-migration-community].
123127

124128
<!-- LINKS - external -->
125-
[access-modes]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
126129
[csi-migration-community]: https://kubernetes.io/blog/2019/12/09/kubernetes-1-17-feature-csi-migration-beta
127-
[kubectl-apply]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply
128-
[kubectl-get]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get
129-
[kubernetes-storage-classes]: https://kubernetes.io/docs/concepts/storage/storage-classes/
130-
[kubernetes-volumes]: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
131-
[managed-disk-pricing-performance]: https://azure.microsoft.com/pricing/details/managed-disks/
132-
[azure-disk-csi]: https://github.com/kubernetes-sigs/azuredisk-csi-driver
133-
[azure-files-csi]: https://github.com/kubernetes-sigs/azurefile-csi-driver
134130
[snapshot-controller]: https://kubernetes-csi.github.io/docs/snapshot-controller.html
135131

136132
<!-- LINKS - internal -->
137-
[azure-disk-volume]: azure-disk-volume.md
138133
[azure-disk-static-mount]: azure-disk-volume.md#mount-disk-as-a-volume
139134
[azure-file-static-mount]: azure-files-volume.md#mount-file-share-as-a-persistent-volume
140-
[azure-files-pvc]: azure-files-dynamic-pv.md
141-
[premium-storage]: ../virtual-machines/disks-types.md
142-
[az-disk-list]: /cli/azure/disk#az_disk_list
143-
[az-snapshot-create]: /cli/azure/snapshot#az_snapshot_create
144-
[az-disk-create]: /cli/azure/disk#az_disk_create
145-
[az-disk-show]: /cli/azure/disk#az_disk_show
146-
[aks-quickstart-cli]: kubernetes-walkthrough.md
147-
[aks-quickstart-portal]: kubernetes-walkthrough-portal.md
148135
[install-azure-cli]: /cli/azure/install-azure-cli
149136
[operator-best-practices-storage]: operator-best-practices-storage.md
150-
[concepts-storage]: concepts-storage.md
151-
[storage-class-concepts]: concepts-storage.md#storage-classes
152-
[az-extension-add]: /cli/azure/extension#az_extension_add
153-
[az-extension-update]: /cli/azure/extension#az_extension_update
154-
[az-feature-register]: /cli/azure/feature#az_feature_register
155-
[az-feature-list]: /cli/azure/feature#az_feature_list
156-
[az-provider-register]: /cli/azure/provider#az_provider_register
157-
[install-azure-cli]: ../cli/azure/install-azure-cli
137+
[azure-blob-csi]: azure-blob-csi.md
138+
[azure-disk-csi]: azure-disk-csi.md
139+
[azure-files-csi]: azure-files-csi.md

0 commit comments

Comments
 (0)