Skip to content

Commit 19664b6

Browse files
authored
Merge pull request #207540 from MGoedtel/task1977648
minor edits and updates to storage concepts
2 parents f3749de + 8746d2d commit 19664b6

File tree

1 file changed

+44
-28
lines changed

1 file changed

+44
-28
lines changed

articles/aks/concepts-storage.md

Lines changed: 44 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,20 @@ title: Concepts - Storage in Azure Kubernetes Services (AKS)
33
description: Learn about storage in Azure Kubernetes Service (AKS), including volumes, persistent volumes, storage classes, and claims
44
services: container-service
55
ms.topic: conceptual
6-
ms.date: 03/08/2022
6+
ms.date: 08/10/2022
77

88
---
99

1010
# Storage options for applications in Azure Kubernetes Service (AKS)
1111

12-
Applications running in Azure Kubernetes Service (AKS) may need to store and retrieve data. While some application workloads can use local, fast storage on unneeded, emptied nodes, others require storage that persists on more regular data volumes within the Azure platform.
12+
Applications running in Azure Kubernetes Service (AKS) may need to store and retrieve data. While some application workloads can use local, fast storage on unneeded, emptied nodes, others require storage that persists on more regular data volumes within the Azure platform.
1313

1414
Multiple pods may need to:
15-
* Share the same data volumes.
16-
* Reattach data volumes if the pod is rescheduled on a different node.
1715

18-
Finally, you may need to inject sensitive data or application configuration information into pods.
16+
* Share the same data volumes.
17+
* Reattach data volumes if the pod is rescheduled on a different node.
18+
19+
Finally, you might need to collect and store sensitive data or application configuration information into pods.
1920

2021
This article introduces the core concepts that provide storage to your applications in AKS:
2122

@@ -30,36 +31,44 @@ This article introduces the core concepts that provide storage to your applicati
3031

3132
Kubernetes typically treats individual pods as ephemeral, disposable resources. Applications have different approaches available to them for using and persisting data. A *volume* represents a way to store, retrieve, and persist data across pods and through the application lifecycle.
3233

33-
Traditional volumes are created as Kubernetes resources backed by Azure Storage. You can manually create data volumes to be assigned to pods directly, or have Kubernetes automatically create them. Data volumes can use: [Azure Disks][disks-types], [Azure Files][storage-files-planning], [Azure NetApp Files][azure-netapp-files-service-levels], or [Azure Blobs][storage-account-overview].
34+
Traditional volumes are created as Kubernetes resources backed by Azure Storage. You can manually create data volumes to be assigned to pods directly, or have Kubernetes automatically create them. Data volumes can use: [Azure Disks][disks-types], [Azure Files][storage-files-planning], [Azure NetApp Files][azure-netapp-files-service-levels], or [Azure Blobs][storage-account-overview].
3435

3536
### Azure Disks
3637

37-
Use *Azure Disks* to create a Kubernetes *DataDisk* resource. Disks types include:
38+
Use *Azure Disks* to create a Kubernetes *DataDisk* resource. Disks types include:
39+
3840
* Ultra Disks
3941
* Premium SSDs
4042
* Standard SSDs
4143
* Standard HDDs
4244

4345
> [!TIP]
44-
>For most production and development workloads, use Premium SSD.
46+
>For most production and development workloads, use Premium SSD.
4547
4648
Since Azure Disks are mounted as *ReadWriteOnce*, they're only available to a single node. For storage volumes that can be accessed by pods on multiple nodes simultaneously, use Azure Files.
4749

4850
### Azure Files
49-
Use *Azure Files* to mount an SMB 3.1.1 share or NFS 4.1 share backed by an Azure storage accounts to pods. Files let you share data across multiple nodes and pods and can use:
51+
52+
Use *Azure Files* to mount a Server Message Block (SMB) version 3.1.1 share or Network File System (NFS) version 4.1 share backed by an Azure storage accounts to pods. Files let you share data across multiple nodes and pods and can use:
53+
5054
* Azure Premium storage backed by high-performance SSDs
5155
* Azure Standard storage backed by regular HDDs
5256

5357
### Azure NetApp Files
54-
* Ultra Storage
58+
59+
* Ultra Storage
5560
* Premium Storage
56-
* Standard Storage
61+
* Standard Storage
5762

5863
### Azure Blob Storage
59-
* Block Blobs
64+
65+
Use *Azure Blob Storage* to create a blob storage container and mount it using the NFS v3.0 protocol or BlobFuse.
66+
67+
* Block Blobs
6068

6169
### Volume types
62-
Kubernetes volumes represent more than just a traditional disk for storing and retrieving information. Kubernetes volumes can also be used as a way to inject data into a pod for use by the containers.
70+
71+
Kubernetes volumes represent more than just a traditional disk for storing and retrieving information. Kubernetes volumes can also be used as a way to inject data into a pod for use by the containers.
6372

6473
Common volume types in Kubernetes include:
6574

@@ -69,21 +78,23 @@ Commonly used as temporary space for a pod. All containers within a pod can acce
6978

7079
#### secret
7180

72-
You can use *secret* volumes to inject sensitive data into pods, such as passwords.
73-
1. Create a Secret using the Kubernetes API.
74-
1. Define your pod or deployment and request a specific Secret.
81+
You can use *secret* volumes to inject sensitive data into pods, such as passwords.
82+
83+
1. Create a Secret using the Kubernetes API.
84+
1. Define your pod or deployment and request a specific Secret.
7585
* Secrets are only provided to nodes with a scheduled pod that requires them.
76-
* The Secret is stored in *tmpfs*, not written to disk.
86+
* The Secret is stored in *tmpfs*, not written to disk.
7787
1. When you delete the last pod on a node requiring a Secret, the Secret is deleted from the node's tmpfs.
7888
* Secrets are stored within a given namespace and can only be accessed by pods within the same namespace.
7989

8090
#### configMap
8191

82-
You can use *configMap* to inject key-value pair properties into pods, such as application configuration information. Define application configuration information as a Kubernetes resource, easily updated and applied to new instances of pods as they're deployed.
92+
You can use *configMap* to inject key-value pair properties into pods, such as application configuration information. Define application configuration information as a Kubernetes resource, easily updated and applied to new instances of pods as they're deployed.
8393

84-
Like using a Secret:
85-
1. Create a ConfigMap using the Kubernetes API.
86-
1. Request the ConfigMap when you define a pod or deployment.
94+
Like using a secret:
95+
96+
1. Create a ConfigMap using the Kubernetes API.
97+
1. Request the ConfigMap when you define a pod or deployment.
8798
* ConfigMaps are stored within a given namespace and can only be accessed by pods within the same namespace.
8899

89100
## Persistent volumes
@@ -110,6 +121,8 @@ For clusters using the [Container Storage Interface (CSI) drivers][csi-storage-d
110121
| `managed-csi-premium` | Uses Azure Premium locally redundant storage (LRS) to create a Managed Disk. The reclaim policy again ensures that the underlying Azure Disk is deleted when the persistent volume that used it is deleted. Similarly, this storage class allows for persistent volumes to be expanded. |
111122
| `azurefile-csi` | Uses Azure Standard storage to create an Azure File Share. The reclaim policy ensures that the underlying Azure File Share is deleted when the persistent volume that used it is deleted. |
112123
| `azurefile-csi-premium` | Uses Azure Premium storage to create an Azure File Share. The reclaim policy ensures that the underlying Azure File Share is deleted when the persistent volume that used it is deleted.|
124+
| `azureblob-nfs-premium` | Uses Azure Premium storage to create an Azure Blob storage container and connect using the NFS v3 protocol. The reclaim policy ensures that the underlying Azure Blob storage container is deleted when the persistent volume that used it is deleted. |
125+
| `azureblob-fuse-premium` | Uses Azure Premium storage to create an Azure Blob storage container and connect using BlobFuse. The reclaim policy ensures that the underlying Azure Blob storage container is deleted when the persistent volume that used it is deleted. |
113126

114127
Unless you specify a StorageClass for a persistent volume, the default StorageClass will be used. Ensure volumes use the appropriate storage you need when requesting persistent volumes.
115128

@@ -136,7 +149,7 @@ allowVolumeExpansion: true
136149
137150
## Persistent volume claims
138151
139-
A PersistentVolumeClaim requests storage of a particular StorageClass, access mode, and size. The Kubernetes API server can dynamically provision the underlying Azure storage resource if no existing resource can fulfill the claim based on the defined StorageClass.
152+
A PersistentVolumeClaim requests storage of a particular StorageClass, access mode, and size. The Kubernetes API server can dynamically provision the underlying Azure storage resource if no existing resource can fulfill the claim based on the defined StorageClass.
140153
141154
The pod definition includes the volume mount once the volume has been connected to the pod.
142155
@@ -161,8 +174,9 @@ spec:
161174
```
162175
163176
When you create a pod definition, you also specify:
164-
* The persistent volume claim to request the desired storage.
165-
* The *volumeMount* for your applications to read and write data.
177+
178+
* The persistent volume claim to request the desired storage.
179+
* The *volumeMount* for your applications to read and write data.
166180
167181
The following example YAML manifest shows how the previous persistent volume claim can be used to mount a volume at */mnt/azure*:
168182
@@ -202,10 +216,11 @@ For associated best practices, see [Best practices for storage and backups in AK
202216

203217
To see how to use CSI drivers, see the following how-to articles:
204218

205-
- [Enable Container Storage Interface(CSI) drivers for Azure disks and Azure Files on Azure Kubernetes Service(AKS)][csi-storage-drivers]
206-
- [Use Azure disk Container Storage Interface(CSI) drivers in Azure Kubernetes Service(AKS)][azure-disk-csi]
207-
- [Use Azure Files Container Storage Interface(CSI) drivers in Azure Kubernetes Service(AKS)][azure-files-csi]
208-
- [Integrate Azure NetApp Files with Azure Kubernetes Service][azure-netapp-files]
219+
- [Enable Container Storage Interface (CSI) drivers for Azure Disks, Azure Files, and Azure Blob storage on Azure Kubernetes Service][csi-storage-drivers]
220+
- [Use Azure Disks CSI driver in Azure Kubernetes Service][azure-disk-csi]
221+
- [Use Azure Files CSI driver in Azure Kubernetes Service][azure-files-csi]
222+
- [Use Azure Blob storage CSI driver (preview) in Azure Kubernetes Service][azure-blob-csi]
223+
- [Integrate Azure NetApp Files with Azure Kubernetes Service][azure-netapp-files]
209224

210225
For more information on core Kubernetes and AKS concepts, see the following articles:
211226

@@ -233,3 +248,4 @@ For more information on core Kubernetes and AKS concepts, see the following arti
233248
[aks-concepts-network]: concepts-network.md
234249
[operator-best-practices-storage]: operator-best-practices-storage.md
235250
[csi-storage-drivers]: csi-storage-drivers.md
251+
[azure-blob-csi]: azure-blob-csi.md

0 commit comments

Comments
 (0)