Skapa och använda en beständig volym dynamiskt med Azure Files i Azure Kubernetes service (AKS)Dynamically create and use a persistent volume with Azure Files in Azure Kubernetes Service (AKS)

En beständig volym representerar en lagrings enhet som har etablerats för användning med Kubernetes poddar.A persistent volume represents a piece of storage that has been provisioned for use with Kubernetes pods. En permanent volym kan användas av en eller flera poddar och kan vara dynamiskt eller statiskt etablerad.A persistent volume can be used by one or many pods, and can be dynamically or statically provisioned. Om flera poddar behöver samtidig åtkomst till samma lagrings volym kan du använda Azure Files för att ansluta med SMB-protokollet (Server Message Block).If multiple pods need concurrent access to the same storage volume, you can use Azure Files to connect using the Server Message Block (SMB) protocol. Den här artikeln visar hur du skapar en Azure Files-resurs dynamiskt för användning av flera poddar i ett Azure Kubernetes service-kluster (AKS).This article shows you how to dynamically create an Azure Files share for use by multiple pods in an Azure Kubernetes Service (AKS) cluster.

Mer information om Kubernetes-volymer finns i lagrings alternativ för program i AKS.For more information on Kubernetes volumes, see Storage options for applications in AKS.

Innan du börjarBefore you begin

Den här artikeln förutsätter att du har ett befintligt AKS-kluster.This article assumes that you have an existing AKS cluster. Om du behöver ett AKS-kluster kan du läsa snabb starten för AKS med hjälp av Azure CLI eller Azure Portal.If you need an AKS cluster, see the AKS quickstart using the Azure CLI or using the Azure portal.

Du måste också ha Azure CLI-versionen 2.0.59 eller senare installerad och konfigurerad.You also need the Azure CLI version 2.0.59 or later installed and configured. Kör az --version för att hitta versionen.Run az --version to find the version. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.If you need to install or upgrade, see Install Azure CLI.

Skapa en lagrings klassCreate a storage class

En lagrings klass används för att definiera hur en Azure-filresurs skapas.A storage class is used to define how an Azure file share is created. Ett lagrings konto skapas automatiskt i resurs gruppen nod för användning med lagrings klassen för att lagra Azure-filresurserna.A storage account is automatically created in the node resource group for use with the storage class to hold the Azure file shares. Välj följande Azure Storage-redundans för skuName :Choose of the following Azure storage redundancy for skuName :

  • Standard_LRS -standard lokalt redundant lagring (LRS)Standard_LRS - standard locally redundant storage (LRS)
  • Standard_GRS -standard Geo-redundant lagring (GRS)Standard_GRS - standard geo-redundant storage (GRS)
  • Standard_ZRS -standard zon redundant lagring (ZRS)Standard_ZRS - standard zone redundant storage (ZRS)
  • Standard_RAGRS -standard Geo-redundant lagring med Läs behörighet (RA-GRS)Standard_RAGRS - standard read-access geo-redundant storage (RA-GRS)
  • Premium_LRS – Premium lokalt redundant lagring (LRS)Premium_LRS - premium locally redundant storage (LRS)
  • Premium_ZRS -Premium Zone-redundant lagring (ZRS)Premium_ZRS - premium zone redundant storage (ZRS)

Anteckning

Azure Files support Premium Storage i AKS-kluster som kör Kubernetes 1,13 eller högre, är den minsta Premium-filresursen 100 GBAzure Files support premium storage in AKS clusters that run Kubernetes 1.13 or higher, minimum premium file share is 100GB

Mer information om Kubernetes lagrings klasser för Azure Files finns i Kubernetes Storage-klasser.For more information on Kubernetes storage classes for Azure Files, see Kubernetes Storage Classes.

Skapa en fil med namnet azure-file-sc.yaml och kopiera i följande exempel manifest.Create a file named azure-file-sc.yaml and copy in the following example manifest. Mer information om mountOptions finns i avsnittet monterings alternativ .For more information on mountOptions , see the Mount options section.

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: my-azurefile
provisioner: kubernetes.io/azure-file
mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=0
  - gid=0
  - mfsymlinks
  - cache=strict
parameters:
  skuName: Standard_LRS

Skapa lagrings klassen med kommandot kubectl Apply :Create the storage class with the kubectl apply command:

kubectl apply -f azure-file-sc.yaml

Skapa ett beständigt volym anspråkCreate a persistent volume claim

Ett permanent volym anspråk (PVC) använder lagrings klass objekt för att dynamiskt etablera en Azure-filresurs.A persistent volume claim (PVC) uses the storage class object to dynamically provision an Azure file share. Följande YAML kan användas för att skapa ett beständigt volym anspråk 5 GB i storlek med ReadWriteMany -åtkomst.The following YAML can be used to create a persistent volume claim 5 GB in size with ReadWriteMany access. Mer information om åtkomst lägen finns i dokumentationen för Kubernetes-beständig volym .For more information on access modes, see the Kubernetes persistent volume documentation.

Skapa nu en fil med namnet azure-file-pvc.yaml och kopiera den i följande yaml.Now create a file named azure-file-pvc.yaml and copy in the following YAML. Kontrol lera att storageClassName matchar lagrings klassen som skapades i det senaste steget:Make sure that the storageClassName matches the storage class created in the last step:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-azurefile
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: my-azurefile
  resources:
    requests:
      storage: 5Gi

Anteckning

Om du använder Premium_LRS SKU för lagrings klassen måste det lägsta värdet för lagring vara 100Gi .If using the Premium_LRS sku for your storage class, the minimum value for storage must be 100Gi .

Skapa ett beständigt volym anspråk med kommandot kubectl Apply :Create the persistent volume claim with the kubectl apply command:

kubectl apply -f azure-file-pvc.yaml

När den är klar skapas fil resursen.Once completed, the file share will be created. En Kubernetes-hemlighet skapas också som innehåller anslutnings information och autentiseringsuppgifter.A Kubernetes secret is also created that includes connection information and credentials. Du kan använda kommandot kubectl get för att visa status för PVC: n:You can use the kubectl get command to view the status of the PVC:

$ kubectl get pvc my-azurefile

NAME           STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
my-azurefile   Bound     pvc-8436e62e-a0d9-11e5-8521-5a8664dc0477   5Gi        RWX            my-azurefile      5m

Använd beständig volymUse the persistent volume

Följande YAML skapar en pod som använder beständiga volym anspråk My-azurefile för att montera Azure-filresursen på /mnt/Azure -sökvägen.The following YAML creates a pod that uses the persistent volume claim my-azurefile to mount the Azure file share at the /mnt/azure path. För Windows Server-behållare anger du en mountPath med hjälp av Windows Sök vägs konvention, till exempel ":" .For Windows Server containers, specify a mountPath using the Windows path convention, such as 'D:' .

Skapa en fil med namnet azure-pvc-files.yaml och kopiera i följande yaml.Create a file named azure-pvc-files.yaml, and copy in the following YAML. Kontrol lera att claimName matchar den PVC som skapades i det sista steget.Make sure that the claimName matches the PVC created in the last step.

kind: Pod
apiVersion: v1
metadata:
  name: mypod
spec:
  containers:
  - name: mypod
    image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 250m
        memory: 256Mi
    volumeMounts:
    - mountPath: "/mnt/azure"
      name: volume
  volumes:
    - name: volume
      persistentVolumeClaim:
        claimName: my-azurefile

Skapa Pod med kommandot kubectl Apply .Create the pod with the kubectl apply command.

kubectl apply -f azure-pvc-files.yaml

Nu har du en aktiv Pod med din Azure Files resurs som är monterad i katalogen /mnt/Azure .You now have a running pod with your Azure Files share mounted in the /mnt/azure directory. Den här konfigurationen kan ses när du inspekterar din POD via kubectl describe pod mypod .This configuration can be seen when inspecting your pod via kubectl describe pod mypod. I följande komprimerade exempel utdata visas den volym som är monterad i behållaren:The following condensed example output shows the volume mounted in the container:

Containers:
  mypod:
    Container ID:   docker://053bc9c0df72232d755aa040bfba8b533fa696b123876108dec400e364d2523e
    Image:          mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
    Image ID:       docker-pullable://nginx@sha256:d85914d547a6c92faa39ce7058bd7529baacab7e0cd4255442b04577c4d1f424
    State:          Running
      Started:      Fri, 01 Mar 2019 23:56:16 +0000
    Ready:          True
    Mounts:
      /mnt/azure from volume (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-8rv4z (ro)
[...]
Volumes:
  volume:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  my-azurefile
    ReadOnly:   false
[...]

MonteringsalternativMount options

Standardvärdet för fileMode och dirMode är 0777 för Kubernetes version 1.13.0 och senare.The default value for fileMode and dirMode is 0777 for Kubernetes version 1.13.0 and above. Om du dynamiskt skapar den permanenta volymen med en lagrings klass kan monterings alternativ anges för objektet lagrings klass.If dynamically creating the persistent volume with a storage class, mount options can be specified on the storage class object. I följande exempel anges 0777 :The following example sets 0777 :

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: my-azurefile
provisioner: kubernetes.io/azure-file
mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=0
  - gid=0
  - mfsymlinks
  - cache=strict
parameters:
  skuName: Standard_LRS

Nästa stegNext steps

För associerade metod tips, se metod tips för lagring och säkerhets kopiering i AKS.For associated best practices, see Best practices for storage and backups in AKS.

För lagrings klass parametrar, se dynamisk etablering.For storage class parameters, see Dynamic Provision.

Läs mer om Kubernetes-beständiga volymer med Azure Files.Learn more about Kubernetes persistent volumes using Azure Files.