Skip to content

Commit f1f1a1c

Browse files
committed
Refresh azure-netapp-files-dual-protocol
1 parent b7ee276 commit f1f1a1c

File tree

1 file changed

+55
-64
lines changed

1 file changed

+55
-64
lines changed

articles/aks/azure-netapp-files-dual-protocol.md

Lines changed: 55 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@ title: Provision Azure NetApp Files dual-protocol volumes for Azure Kubernetes S
33
description: Describes how to statically provision Azure NetApp Files dual-protocol volumes for Azure Kubernetes Service.
44
ms.topic: article
55
ms.custom:
6-
ms.date: 05/08/2023
6+
ms.date: 02/26/2024
77
---
88

99
# Provision Azure NetApp Files dual-protocol volumes for Azure Kubernetes Service
1010

11-
After you [configure Azure NetApp Files for Azure Kubernetes Service](azure-netapp-files.md), you can provision Azure NetApp Files volumes for Azure Kubernetes Service.
11+
After you [configure Azure NetApp Files for Azure Kubernetes Service][azure-netapp-files], you can provision Azure NetApp Files volumes for Azure Kubernetes Service.
1212

13-
Azure NetApp Files supports volumes using [NFS](azure-netapp-files-nfs.md) (NFSv3 or NFSv4.1), [SMB](azure-netapp-files-smb.md), and dual-protocol (NFSv3 and SMB, or NFSv4.1 and SMB).
14-
* This article describes details for statically provisioning volumes for dual-protocol access.
15-
* For information about provisioning SMB volumes statically or dynamically, see [Provision Azure NetApp Files SMB volumes for Azure Kubernetes Service](azure-netapp-files-smb.md).
16-
* For information about provisioning NFS volumes statically or dynamically, see [Provision Azure NetApp Files NFS volumes for Azure Kubernetes Service](azure-netapp-files-nfs.md).
13+
Azure NetApp Files supports volumes using [NFS][azure-netapp-nfs] (NFSv3 or NFSv4.1), [SMB][azure-netapp-smb], and dual-protocol (NFSv3 and SMB, or NFSv4.1 and SMB).
14+
15+
This article shows how to statically provisioning volumes for dual-protocol access.
16+
17+
* For information about provisioning SMB volumes statically or dynamically, see [Provision Azure NetApp Files SMB volumes for Azure Kubernetes Service][azure-netapp-smb].
18+
* For information about provisioning NFS volumes statically or dynamically, see [Provision Azure NetApp Files NFS volumes for Azure Kubernetes Service][azure-netapp-nfs].
1719

1820
## Before you begin
1921

20-
* You must have already created a dual-protocol volume. See [create a dual-protocol volume for Azure NetApp Files](../azure-netapp-files/create-volumes-dual-protocol.md).
22+
* You must have already created a dual-protocol volume. See [create a dual-protocol volume for Azure NetApp Files][azure-netapp-files-volume-dual-protocol].
2123

2224
## Provision a dual-protocol volume in Azure Kubernetes Service
2325

@@ -34,9 +36,9 @@ This section describes how to expose an Azure NetApp Files dual-protocol volume
3436
ANF_ACCOUNT_NAME="myaccountname"
3537
POOL_NAME="mypool1"
3638
VOLUME_NAME="myvolname"
37-
```
38-
39-
2. List the details of your volume using [`az netappfiles volume show`](/cli/azure/netappfiles/volume#az-netappfiles-volume-show) command.
39+
```
40+
41+
2. List the details of your volume using the [`az netappfiles volume show`][az-netappfiles-volume-show] command.
4042
4143
```azurecli-interactive
4244
az netappfiles volume show \
@@ -46,7 +48,7 @@ This section describes how to expose an Azure NetApp Files dual-protocol volume
4648
--volume-name $VOLUME_NAME -o JSON
4749
```
4850
49-
The following output is an example of the above command executed with real values.
51+
The following output is an example of the above command executed with real values.
5052
5153
```output
5254
{
@@ -83,13 +85,13 @@ This section describes how to expose an Azure NetApp Files dual-protocol volume
8385
path: /myfilepath2
8486
```
8587
86-
4. Create the persistent volume using the [`kubectl apply`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) command:
88+
4. Create the persistent volume using the [`kubectl apply`][kubectl-apply] command:
8789
8890
```bash
8991
kubectl apply -f pv-nfs.yaml
9092
```
9193
92-
5. Verify the status of the persistent volume is *Available* by using the [`kubectl describe`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#describe) command:
94+
5. Verify the status of the persistent volume is *Available* by using the [`kubectl describe`][kubectl-describe] command:
9395
9496
```bash
9597
kubectl describe pv pv-nfs
@@ -113,13 +115,13 @@ This section describes how to expose an Azure NetApp Files dual-protocol volume
113115
storage: 100Gi
114116
```
115117
116-
2. Create the persistent volume claim using the [`kubectl apply`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) command:
118+
2. Create the persistent volume claim using the [`kubectl apply`][kubectl-apply] command:
117119
118120
```bash
119121
kubectl apply -f pvc-nfs.yaml
120122
```
121123
122-
3. Verify the *Status* of the persistent volume claim is *Bound* by using the [`kubectl describe`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#describe) command:
124+
3. Verify the *Status* of the persistent volume claim is *Bound* by using the [`kubectl describe`][kubectl-describe] command:
123125
124126
```bash
125127
kubectl describe pvc pvc-nfs
@@ -151,19 +153,19 @@ This section describes how to expose an Azure NetApp Files dual-protocol volume
151153
claimName: pvc-nfs
152154
```
153155
154-
2. Create the pod using the [`kubectl apply`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) command:
156+
2. Create the pod using the [`kubectl apply`][kubectl-apply][kubectl-apply] command:
155157
156158
```bash
157159
kubectl apply -f nginx-nfs.yaml
158160
```
159161
160-
3. Verify the pod is *Running* by using the [`kubectl apply`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) command:
162+
3. Verify the pod is *Running* by using the [`kubectl apply`][kubectl-apply] command:
161163
162164
```bash
163165
kubectl describe pod nginx-nfs
164166
```
165167
166-
4. Verify your volume has been mounted on the pod by using [`kubectl exec`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#exec) to connect to the pod, and then use `df -h` to check if the volume is mounted.
168+
4. Verify your volume has been mounted on the pod by using [`kubectl exec`][kubectl-exec] to connect to the pod, and then use `df -h` to check if the volume is mounted.
167169
168170
```bash
169171
kubectl exec -it nginx-nfs -- sh
@@ -181,38 +183,43 @@ This section describes how to expose an Azure NetApp Files dual-protocol volume
181183
182184
### Create a secret with the domain credentials
183185
184-
1. Create a secret on your AKS cluster to access the AD server using the [`kubectl create secret`](https://kubernetes.io/docs/tasks/configmap-secret/managing-secret-using-kubectl/) command. This secret will be used by the Kubernetes persistent volume to access the Azure NetApp Files SMB volume. Use the following command to create the secret, replacing `USERNAME` with your username, `PASSWORD` with your password, and `DOMAIN_NAME` with your domain name for your Active Directory.
186+
1. Create a secret on your AKS cluster to access the AD server using the [`kubectl create secret`][kubectl-create-secret] command. This secret will be used by the Kubernetes persistent volume to access the Azure NetApp Files SMB volume. Use the following command to create the secret, replacing `USERNAME` with your username, `PASSWORD` with your password, and `DOMAIN_NAME` with your Active Directory domain name.
185187
186188
```bash
187189
kubectl create secret generic smbcreds --from-literal=username=USERNAME --from-literal=password="PASSWORD" --from-literal=domain='DOMAIN_NAME'
188190
```
189191
190-
2. Check the secret has been created.
192+
2. To verify the secret has been created, run the [`kubectl get`][kubectl-get] command.
191193
192194
```bash
193195
kubectl get secret
196+
```
197+
198+
```output
194199
NAME TYPE DATA AGE
195200
smbcreds Opaque 2 20h
196201
```
197202
198203
### Install an SMB CSI driver
199204
200-
You must install a Container Storage Interface (CSI) driver to create a Kubernetes SMB `PersistentVolume`.
205+
You must install a Container Storage Interface (CSI) driver to create a Kubernetes SMB `PersistentVolume`.
201206
202-
1. Install the SMB CSI driver on your cluster using helm. Be sure to set the `windows.enabled` option to `true`:
207+
1. Install the SMB CSI driver on your cluster using helm. Be sure to set the `windows.enabled` option to `true`:
203208
204209
```bash
205210
helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts
206211
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.10.0 –-set windows.enabled=true
207212
```
208213
209-
For other methods of installing the SMB CSI Driver, see [Install SMB CSI driver master version on a Kubernetes cluster](https://github.com/kubernetes-csi/csi-driver-smb/blob/master/docs/install-csi-driver-master.md).
214+
For other methods of installing the SMB CSI Driver, see [Install SMB CSI driver master version on a Kubernetes cluster][install-smb-csi-driver].
210215
211-
2. Verify that the `csi-smb` controller pod is running and each worker node has a pod running using the [`kubectl get pods`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get) command:
216+
2. Verify the `csi-smb` controller pod is running and each worker node has a pod running using the [`kubectl get pods`][kubectl-get-pods] command:
212217
213218
```bash
214219
kubectl get pods -n kube-system | grep csi-smb
215-
220+
```
221+
222+
```output
216223
csi-smb-controller-68df7b4758-xf2m9 3/3 Running 0 3m46s
217224
csi-smb-node-s6clj 3/3 Running 0 3m47s
218225
csi-smb-node-win-tfxvk 3/3 Running 0 3m47s
@@ -227,9 +234,9 @@ You must install a Container Storage Interface (CSI) driver to create a Kubernet
227234
ANF_ACCOUNT_NAME="myaccountname"
228235
POOL_NAME="mypool1"
229236
VOLUME_NAME="myvolname"
230-
```
231-
232-
2. List the details of your volume using [`az netappfiles volume show`](/cli/azure/netappfiles/volume#az-netappfiles-volume-show).
237+
```
238+
239+
2. List the details of your volume using [`az netappfiles volume show`][az-netappfiles-volume-show] command.
233240
234241
```azurecli-interactive
235242
az netappfiles volume show \
@@ -239,7 +246,7 @@ You must install a Container Storage Interface (CSI) driver to create a Kubernet
239246
--volume-name "$VOLUME_NAME -o JSON
240247
```
241248
242-
The following output is an example of the above command executed with real values.
249+
The following output is an example of the above command executed with real values.
243250
244251
```output
245252
{
@@ -287,21 +294,21 @@ You must install a Container Storage Interface (CSI) driver to create a Kubernet
287294
namespace: default
288295
```
289296
290-
4. Create the persistent volume using the [`kubectl apply`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) command:
297+
4. Create the persistent volume using the [`kubectl apply`][kubectl-apply] command:
291298
292299
```bash
293300
kubectl apply -f pv-smb.yaml
294301
```
295302
296-
5. Verify the status of the persistent volume is *Available* using the [`kubectl describe`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#describe) command:
303+
5. Verify the status of the persistent volume is *Available* using the [`kubectl describe`][kubectl-describe] command:
297304
298305
```bash
299306
kubectl describe pv anf-pv-smb
300307
```
301308
302309
### Create a persistent volume claim for SMB
303310
304-
1. Create a file name `pvc-smb.yaml` and copy in the following YAML.
311+
1. Create a file name `pvc-smb.yaml` and copy in the following YAML.
305312
306313
```yaml
307314
apiVersion: v1
@@ -318,19 +325,19 @@ You must install a Container Storage Interface (CSI) driver to create a Kubernet
318325
storage: 100Gi
319326
```
320327
321-
2. Create the persistent volume claim using the [`kubectl apply`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) command:
328+
2. Create the persistent volume claim using the [`kubectl apply`][kubectl-apply] command:
322329
323330
```bash
324331
kubectl apply -f pvc-smb.yaml
325332
```
326333
327-
Verify the status of the persistent volume claim is *Bound* by using the [`kubectl describe`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#describe) command:
334+
Verify the status of the persistent volume claim is *Bound* by using the [`kubectl describe`][kubectl-describe] command:
328335
329336
```bash
330337
kubectl describe pvc anf-pvc-smb
331338
```
332339
333-
### Mount within a pod using SMB
340+
### Mount within a pod using SMB
334341
335342
1. Create a file named `iis-smb.yaml` and copy in the following YAML. This file will be used to create an Internet Information Services pod to mount the volume to path `/inetpub/wwwroot`.
336343
@@ -363,19 +370,19 @@ You must install a Container Storage Interface (CSI) driver to create a Kubernet
363370
readOnly: false
364371
```
365372
366-
2. Create the pod using the [kubectl apply](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) command:
373+
2. Create the pod using the [kubectl apply][kubectl-apply] command:
367374
368375
```bash
369376
kubectl apply -f iis-smb.yaml
370377
```
371378
372-
3. Verify the pod is *Running* and `/inetpub/wwwroot` is mounted from SMB by using the [`kubectl describe`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#describe) command:
379+
3. Verify the pod is *Running* and `/inetpub/wwwroot` is mounted from SMB by using the [`kubectl describe`][kubectl-describe] command:
373380
374381
```bash
375382
kubectl describe pod iis-pod
376383
```
377384
378-
The output of the command resembles the following example:
385+
The output of the command resembles the following example:
379386
380387
```output
381388
Name: iis-pod
@@ -413,12 +420,13 @@ You must install a Container Storage Interface (CSI) driver to create a Kubernet
413420
...
414421
```
415422
416-
4. Verify your volume has been mounted on the pod by using the [kubectl exec](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#exec) command to connect to the pod, and then use `dir` command in the correct directory to check if the volume is mounted and the size matches the size of the volume you provisioned.
423+
4. Verify your volume has been mounted on the pod by using the [kubectl exec][kubectl-exec] command to connect to the pod. Then use the `dir` command in the correct directory to check if the volume is mounted and the size matches the size of the volume you provisioned.
417424
418425
```bash
419426
kubectl exec -it iis-pod –- cmd.exe
420427
```
421-
The output of the command resembles the following example:
428+
429+
The output of the command resembles the following example:
422430
423431
```output
424432
Microsoft Windows [Version 10.0.20348.1668]
@@ -449,37 +457,20 @@ Astra Trident supports many features with Azure NetApp Files. For more informati
449457
* [Importing volumes][importing-trident-volumes]
450458
451459
<!-- EXTERNAL LINKS -->
452-
[astra-trident]: https://docs.netapp.com/us-en/trident/index.html
453-
[kubectl-create]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#create
454460
[kubectl-apply]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply
455461
[kubectl-describe]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#describe
456462
[kubectl-exec]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#exec
457-
[astra-control-service]: https://cloud.netapp.com/astra-control
458-
[kubernetes-csi-driver]: https://kubernetes-csi.github.io/docs/
459-
[trident-install-guide]: https://docs.netapp.com/us-en/trident/trident-get-started/kubernetes-deploy.html
460-
[trident-helm-chart]: https://docs.netapp.com/us-en/trident/trident-get-started/kubernetes-deploy-operator.html
461-
[tridentctl]: https://docs.netapp.com/us-en/trident/trident-get-started/kubernetes-deploy-tridentctl.html
462-
[trident-backend-install-guide]: https://docs.netapp.com/us-en/trident/trident-use/backends.html
463+
[kubectl-create-secret]: https://kubernetes.io/docs/tasks/configmap-secret/managing-secret-using-kubectl/
464+
[kubectl-get-pods]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get
463465
[kubectl-get]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get
464466
[expand-trident-volumes]: https://docs.netapp.com/us-en/trident/trident-use/vol-expansion.html
467+
[install-smb-csi-driver]: https://github.com/kubernetes-csi/csi-driver-smb/blob/master/docs/install-csi-driver-master.md
465468
[on-demand-trident-volume-snapshots]: https://docs.netapp.com/us-en/trident/trident-use/vol-snapshots.html
466469
[importing-trident-volumes]: https://docs.netapp.com/us-en/trident/trident-use/vol-import.html
467-
[backend-anf.yaml]: https://raw.githubusercontent.com/NetApp/trident/v23.01.1/trident-installer/sample-input/backends-samples/azure-netapp-files/backend-anf.yaml
468470
469471
<!-- INTERNAL LINKS -->
470-
[aks-quickstart-cli]: ./learn/quick-kubernetes-deploy-cli.md
471-
[aks-quickstart-portal]: ./learn/quick-kubernetes-deploy-portal.md
472-
[aks-quickstart-powershell]: ./learn/quick-kubernetes-deploy-powershell.md
473-
[anf]: ../azure-netapp-files/azure-netapp-files-introduction.md
474-
[anf-delegate-subnet]: ../azure-netapp-files/azure-netapp-files-delegate-subnet.md
475-
[anf-regions]: https://azure.microsoft.com/global-infrastructure/services/?products=netapp&regions=all
476-
[az-aks-show]: /cli/azure/aks#az_aks_show
477-
[az-netappfiles-account-create]: /cli/azure/netappfiles/account#az_netappfiles_account_create
478-
[az-netapp-files-dynamic]: azure-netapp-files-dynamic.md
479-
[az-netappfiles-pool-create]: /cli/azure/netappfiles/pool#az_netappfiles_pool_create
480-
[az-netappfiles-volume-create]: /cli/azure/netappfiles/volume#az_netappfiles_volume_create
481472
[az-netappfiles-volume-show]: /cli/azure/netappfiles/volume#az_netappfiles_volume_show
482-
[az-network-vnet-subnet-create]: /cli/azure/network/vnet/subnet#az_network_vnet_subnet_create
483-
[install-azure-cli]: /cli/azure/install-azure-cli
484-
[use-tags]: use-tags.md
485-
[azure-ad-app-registration]: ../active-directory/develop/howto-create-service-principal-portal.md
473+
[azure-netapp-nfs]: azure-netapp-files-nfs.md
474+
[azure-netapp-smb]: azure-netapp-files-smb.md
475+
[azure-netapp-files]: azure-netapp-files.md
476+
[azure-netapp-files-volume-dual-protocol]: ../azure-netapp-files/create-volumes-dual-protocol.md

0 commit comments

Comments
 (0)