Sdílet prostřednictvím


Vytvoření a použití svazku se službou Azure Files ve službě Azure Kubernetes Service (AKS)

Trvalý svazek představuje část úložiště, která byla zřízena pro použití s pody Kubernetes. Můžete použít trvalý svazek s jedním nebo několika pody a může být dynamicky nebo staticky zřízen. Pokud více podů potřebuje souběžný přístup ke stejnému svazku úložiště, můžete se pomocí služby Soubory Azure připojit pomocí protokolu SMB (Server Message Block). V tomto článku se dozvíte, jak dynamicky vytvořit sdílenou složku Azure pro použití několika pody v clusteru Azure Kubernetes Service (AKS).

V tomto článku se dozvíte, jak:

  • Spolupracujte s dynamickým trvalým svazkem (PV) instalací ovladače rozhraní kontejnerového úložiště (CSI) a dynamickým vytvořením jedné nebo více sdílených složek Azure pro připojení k podu.
  • S statickou pv můžete pracovat tak, že vytvoříte jednu nebo více sdílených složek Azure nebo použijete existující sdílenou složku a připojíte ji k podu.

Další informace o svazcích Kubernetes najdete v tématu Možnosti úložiště pro aplikace v AKS.

Než začnete

  • Potřebujete účet úložiště Azure.
  • Ujistěte se, že máte nainstalované a nakonfigurované Rozhraní příkazového řádku Azure CLI verze 2.0.59 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.
  • Při výběru mezi sdílenými složkami úrovně Standard a Premium je důležité porozumět modelu zřizování a požadavkům očekávaného způsobu použití, který plánujete spustit ve službě Azure Files. Další informace najdete v tématu Volba úrovně výkonu služby Azure Files na základě vzorů využití.

Dynamické zřizování svazku

Tato část obsahuje pokyny pro správce clusteru, kteří chtějí zřídit jeden nebo více trvalých svazků, které obsahují podrobnosti o jedné nebo více sdílených složkách ve službě Azure Files. Deklarace identity trvalého svazku (PVC) používá objekt třídy úložiště k dynamickému zřizování sdílené složky Azure Files.

Parametry třídy úložiště pro dynamické trvalévolumes

Následující tabulka obsahuje parametry, které můžete použít k definování vlastní třídy úložiště pro persistentVolumeClaim.

Název Význam Dostupná hodnota Povinný Default value
accountAccessTier Úroveň přístupu pro účet úložiště Účet Úrovně Standard může zvolit Hot nebo Coola účet Premium může zvolit Premiumpouze . No Prázdný. Pro různé typy účtů úložiště použijte výchozí nastavení.
accountQuota Omezuje kvótu pro účet. Maximální kvótu můžete zadat v GB (ve výchozím nastavení 102400 GB). Pokud účet překročí zadanou kvótu, ovladač přeskočí výběr účtu. No 102400
allowBlobPublicAccess Povolí nebo zakáže veřejný přístup ke všem objektům blob nebo kontejnerům pro účet úložiště vytvořený ovladačem. true nebo false No false
disableDeleteRetentionPolicy Určete, zda zakázat DeleteRetentionPolicy pro účet úložiště vytvořený ovladačem. true nebo false No false
enableLargeFileShares Určete, jestli se má účet úložiště používat s povolenými velkými sdílenými složkami. Pokud je tento příznak nastavený true a účet úložiště s povolenými velkými sdílenými složkami neexistuje, vytvoří se nový účet úložiště s povolenými velkými sdílenými složkami. Tento příznak by se měl používat se skladovou jednotkou Standard, protože účty úložiště vytvořené pomocí skladové položky Premium mají largeFileShares ve výchozím nastavení povolenou možnost. true nebo false No false (nepravda)
folderName Zadejte název složky ve sdílené složce Azure. Název existující složky ve sdílené složce Azure No Pokud název složky ve sdílené složce neexistuje, připojení selže.
getLatestAccount Určuje, jestli se má na základě času vytvoření získat nejnovější klíč účtu. Tento ovladač ve výchozím nastavení získá první klíč. true nebo false No false
location Zadejte oblast Azure účtu úložiště Azure. Například eastus. No Pokud je prázdný, ovladač používá stejný název umístění jako aktuální cluster AKS.
matchTags Porovná značky, když se ovladač pokusí najít vhodný účet úložiště. true nebo false No false
networkEndpointType Zadejte typ koncového bodu sítě pro účet úložiště vytvořený ovladačem. Pokud privateEndpoint je zadaný, vytvoří se pro účet úložiště privátní koncový bod. V jiných případech se ve výchozím nastavení vytvoří koncový bod služby. "",privateEndpoint No ""
protokol Zadejte protokol sdílené složky. smb, nfs No smb
requireInfraEncryption Určete, jestli služba použije sekundární vrstvu šifrování s klíči spravovanými platformou pro neaktivní uložená data pro účet úložiště vytvořený ovladačem. true nebo false No false
resourceGroup Zadejte skupinu prostředků pro disky Azure. Název existující skupiny prostředků No Pokud je prázdný, ovladač použije stejný název skupiny prostředků jako aktuální cluster AKS.
selectRandomMatchingAccount Určuje, zda se má náhodně vybrat odpovídající účet. Ve výchozím nastavení ovladač vždy vybere první odpovídající účet v abecedním pořadí (Poznámka: Tento ovladač používá mezipaměť vyhledávání účtů, což vede k nerovnoměrné distribuci vytváření souborů napříč více účty). true nebo false No false
server Zadejte adresu serveru účtu úložiště Azure. Existující adresa serveru, například accountname.privatelink.file.core.windows.net. No Pokud je prázdný, ovladač používá výchozí accountname.file.core.windows.net nebo jinou adresu účtu suverénního cloudu.
shareAccessTier Úroveň přístupu pro sdílenou složku Účet pro obecné účely verze 2 si může vybrat mezi TransactionOptimized (výchozí) Hota Cool. Typ účtu služby Premium Storage pouze pro sdílené složky. No Prázdný. Pro různé typy účtů úložiště použijte výchozí nastavení.
shareName Zadejte název sdílené složky Azure. Název existující nebo nové sdílené složky Azure No Pokud je prázdný, ovladač vygeneruje název sdílené složky Azure.
shareNamePrefix Zadejte předponu názvu sdílené složky Azure vytvořenou ovladačem. Název sdílené složky může obsahovat jenom malá písmena, číslice, pomlčky a délku kratší než 21 znaků. No
skuName Typ účtu úložiště Azure Files (alias: storageAccountType) Standard_LRS, Standard_ZRS, Standard_GRS, Standard_RAGRS, ,Premium_LRSStandard_RAGZRS,Premium_ZRS No StandardSSD_LRS
Minimální velikost sdílené složky pro typ účtu Premium je 100 GB.
Typ účtu ZRS se podporuje v omezených oblastech.
Sdílená složka NFS podporuje pouze typ účtu Premium.
storageAccount Zadejte název účtu úložiště Azure. storageAccountName -Ne Pokud není zadaný konkrétní název účtu úložiště, ovladač vyhledá vhodný účet úložiště, který odpovídá nastavení účtu ve stejné skupině prostředků. Pokud se nepodaří najít odpovídající účet úložiště, vytvoří nový účet. Pokud je však zadaný název účtu úložiště, účet úložiště už musí existovat.
storageEndpointSuffix Zadejte příponu koncového bodu úložiště Azure. core.windows.net, core.chinacloudapi.cnatd. No Pokud je prázdný, ovladač použije výchozí příponu koncového bodu úložiště v závislosti na cloudovém prostředí. Například core.windows.net.
značky Značky se vytvářejí v novém účtu úložiště. Formát značky: 'foo=aaa,bar=bbb' No ""
--- Následující parametry jsou určené pouze pro protokol SMB. --- ---
subscriptionID Zadejte ID předplatného Azure, ve kterém se vytvoří sdílená složka Azure. ID předplatného Azure No Pokud není prázdný, resourceGroup je nutné zadat.
storeAccountKey Určete, jestli se má klíč účtu ukládat do tajného kódu Kubernetes. true nebo false
false znamená, že ovladač používá k získání klíče účtu identitu kubeletu.
No true
secretName Zadejte název tajného kódu pro uložení klíče účtu. No
secretNamespace Zadejte obor názvů tajného kódu pro uložení klíče účtu.

Poznámka:
Pokud secretNamespace není zadaný, tajný klíč se vytvoří ve stejném oboru názvů jako pod.
defaultatdkube-system. No Obor názvů PVC, například csi.storage.k8s.io/pvc/namespace
useDataPlaneAPI Určete, jestli se má použít rozhraní API roviny dat pro vytvoření, odstranění nebo změnu velikosti sdílené složky, což by mohlo vyřešit problém s omezováním rozhraní API SRP, protože rozhraní API roviny dat nemá téměř žádný limit, zatímco při nastavení brány firewall nebo virtuální sítě v účtu úložiště dojde k selhání. true nebo false No false
--- Následující parametry jsou určené pouze pro protokol NFS. --- ---
mountPermissions Oprávnění připojené složky. Výchozí hodnota je 0777. Pokud je nastavená hodnota 0, ovladač se po připojení neprovádí chmod . 0777 No
rootSquashType Zadejte chování kořenového squashingu ve sdílené složce. Výchozí hodnota je NoRootSquash. AllSquash, , NoRootSquashRootSquash No
--- Následující parametry platí jenom pro nastavení virtuální sítě. Například NFS, privátní koncový bod --- ---
fsGroupChangePolicy Určuje, jak ovladač mění vlastnictví svazku. Pod securityContext.fsGroupChangePolicy se ignoruje. OnRootMismatch (výchozí), Always, None No OnRootMismatch
subnetName Název podsítě Název existující podsítě uzlu agenta No Pokud je prázdný, ovladač použije hodnotu v konfiguračním subnetName souboru cloudu Azure.
vnetName Název virtuální sítě Název existující virtuální sítě No Pokud je prázdný, ovladač použije hodnotu v konfiguračním vnetName souboru cloudu Azure.
vnetResourceGroup Zadejte skupinu prostředků virtuální sítě, ve které je definována virtuální síť. Název existující skupiny prostředků No Pokud je prázdný, ovladač použije hodnotu v konfiguračním vnetResourceGroup souboru cloudu Azure.

Vytvoření třídy úložiště

Třídy úložiště definují, jak vytvořit sdílenou složku Azure. Účet úložiště se automaticky vytvoří ve skupině prostředků uzlu pro použití s třídou úložiště pro uložení sdílené složky Azure Files. Vyberte následující skladové položky úložiště Azure Storage pro skuName:

  • Standard_LRS: Místně redundantní úložiště úrovně Standard (LRS)
  • Standard_GRS: Standardní geograficky redundantní úložiště (GRS)
  • Standard_ZRS: Zónově redundantní úložiště úrovně Standard (ZRS)
  • Standard_RAGRS: Standardní geograficky redundantní úložiště jen pro čtení (RA-GRS)
  • Premium_LRS: Místně redundantní úložiště úrovně Premium (LRS)
  • Premium_ZRS: Zónově redundantní úložiště úrovně Premium (ZRS)

Poznámka:

Minimální sdílená složka úrovně Premium je 100 GB.

Další informace o třídách úložiště Kubernetes pro Azure Files najdete v tématu Třídy úložiště Kubernetes.

  1. Vytvořte soubor s názvem azure-file-sc.yaml a zkopírujte ho v následujícím ukázkovém manifestu. Další informace najdete mountOptionsv části Možnosti připojení.

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: my-azurefile
    provisioner: file.csi.azure.com # replace with "kubernetes.io/azure-file" if aks version is less than 1.21
    allowVolumeExpansion: true
    mountOptions:
     - dir_mode=0777
     - file_mode=0777
     - uid=0
     - gid=0
     - mfsymlinks
     - cache=strict
     - actimeo=30
     - nobrl  # disable sending byte range lock requests to the server and for applications which have challenges with posix locks
    parameters:
      skuName: Premium_LRS
    
  2. Pomocí příkazu vytvořte třídu kubectl apply úložiště.

    kubectl apply -f azure-file-sc.yaml
    

Vytvoření deklarace trvalého svazku

Deklarace identity trvalého svazku (PVC) používá objekt třídy úložiště k dynamickému zřizování sdílené složky Azure. Pomocí následujícího YAML můžete vytvořit trvalou deklaraci identity svazku o velikosti 100 GB s přístupem ReadWriteMany . Další informace o režimech přístupu najdete v tématu Trvalý svazek Kubernetes.

  1. Vytvořte soubor s názvem azure-file-pvc.yaml a zkopírujte ho v následujícím jazyce YAML. Ujistěte se, storageClassName že odpovídá třídě úložiště, kterou jste vytvořili v předchozím kroku.

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

    Poznámka:

    Pokud pro třídu úložiště používáte Premium_LRS skladovou položku, musí být 100Giminimální hodnota storage .

  2. Pomocí příkazu vytvořte trvalou deklaraci identity svazku kubectl apply .

    kubectl apply -f azure-file-pvc.yaml
    

    Po dokončení se sdílená složka vytvoří. Vytvoří se také tajný klíč Kubernetes, který obsahuje informace o připojení a přihlašovací údaje. Pomocí příkazu můžete kubectl get zobrazit stav PVC:

    kubectl get pvc my-azurefile
    

    Výstup příkazu se podobá následujícímu příkladu:

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

Použití trvalého svazku

Následující YAML vytvoří pod, který používá trvalé deklarace identity svazku my-azurefile k připojení sdílené složky Azure Files na cestě /mnt/azure . Pro kontejnery Windows Serveru zadejte mountPath pomocí konvence cesty systému Windows, například D:.

  1. Vytvořte soubor s názvem azure-pvc-files.yamla zkopírujte ho do následujícího YAML. Ujistěte se, že odpovídá claimName PVC, který jste vytvořili v předchozím kroku.

    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
              readOnly: false
      volumes:
       - name: volume
         persistentVolumeClaim:
           claimName: my-azurefile
    
  2. Vytvořte pod pomocí kubectl apply příkazu.

    kubectl apply -f azure-pvc-files.yaml
    

    Teď máte spuštěný pod se sdílenou složkou Azure Files připojenou v adresáři /mnt/azure . Tuto konfiguraci můžete vidět při kontrole podu kubectl describe pomocí příkazu. Následující zhuštěný ukázkový výstup ukazuje svazek připojený v kontejneru.

    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
    [...]
    

Možnosti připojení

Výchozí hodnota fileMode pro Kubernetes verze 1.13.0 a dirMode vyšší je 0777 . Pokud dynamicky vytváříte trvalý svazek s třídou úložiště, můžete zadat možnosti připojení k objektu třídy úložiště. Další informace najdete v tématu Možnosti připojení. Následující příklad nastaví 0777:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: my-azurefile
provisioner: file.csi.azure.com # replace with "kubernetes.io/azure-file" if aks version is less than 1.21
allowVolumeExpansion: true
mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=0
  - gid=0
  - mfsymlinks
  - cache=strict
  - actimeo=30
  - nobrl  # disable sending byte range lock requests to the server and for applications which have challenges with posix locks
parameters:
  skuName: Premium_LRS

Použití značek Azure

Další informace o používání značek Azure najdete v tématu Použití značek Azure ve službě Azure Kubernetes Service (AKS).

Statické zřízení svazku

Tato část obsahuje pokyny pro správce clusteru, kteří chtějí vytvořit jeden nebo více trvalých svazků, které obsahují podrobnosti o existující sdílené složce Azure, která se má použít s úlohou.

Statické parametry zřizování pro PersistentVolume

Následující tabulka obsahuje parametry, které můžete použít k definování PersistentVolume.

Název Význam Dostupná hodnota Povinný Default value
volumeAttributes.resourceGroup Zadejte název skupiny prostředků Azure. myResourceGroup No Pokud je prázdný, ovladač použije stejný název skupiny prostředků jako aktuální cluster.
volumeAttributes.storageAccount Zadejte název existujícího účtu úložiště Azure. storageAccountName Ano
volumeAttributes.shareName Zadejte název sdílené složky Azure. fileShareName Ano
volumeAttributes.folderName Zadejte název složky ve sdílené složce Azure. folderName No Pokud název složky ve sdílené složce neexistuje, připojení selže.
volumeAttributes.protocol Zadejte protokol sdílené složky. smb, nfs No smb
volumeAttributes.server Zadání adresy serveru účtu úložiště Azure Existující adresa serveru, například accountname.privatelink.file.core.windows.net. No Pokud je prázdný, ovladač používá výchozí accountname.file.core.windows.net nebo jinou adresu účtu suverénního cloudu.
--- Následující parametry jsou určené pouze pro protokol SMB. --- --- ---
volumeAttributes.secretName Zadejte název tajného kódu, který ukládá název a klíč účtu úložiště. No
volumeAttributes.secretNamespace Zadejte obor názvů tajných kódů. defaultatdkube-system. No Obor názvů PVC (csi.storage.k8s.io/pvc/namespace)
nodeStageSecretRef.name Zadejte název tajného kódu, který ukládá název a klíč účtu úložiště. Existující název tajného kódu. No Pokud je prázdný, ovladač k získání klíče účtu používá identitu kubeletu.
nodeStageSecretRef.namespace Zadejte obor názvů tajných kódů. Obor názvů Kubernetes No
--- Následující parametry jsou určené pouze pro protokol NFS. --- --- ---
volumeAttributes.fsGroupChangePolicy Určuje, jak ovladač změní vlastnictví svazku. Pod securityContext.fsGroupChangePolicy se ignoruje. OnRootMismatch (výchozí), Always, None No OnRootMismatch
volumeAttributes.mountPermissions Zadejte oprávnění připojené složky. Výchozí hodnota je 0777. No

Vytvoření sdílené složky Azure

Než budete moct jako svazek Kubernetes použít sdílenou složku Azure Files, musíte vytvořit účet služby Azure Storage a sdílenou složku.

  1. Pomocí příkazu s parametrem az aks show --query nodeResourceGroup získejte název skupiny prostředků.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
    

    Výstup příkazu se podobá následujícímu příkladu:

    MC_myResourceGroup_myAKSCluster_eastus
    
  2. Vytvořte účet úložiště pomocí az storage account create příkazu s parametrem --sku . Následující příkaz vytvoří účet úložiště pomocí skladové Standard_LRS položky. Nezapomeňte nahradit následující zástupné symboly:

    • myAKSStorageAccount s názvem účtu úložiště
    • nodeResourceGroupName s názvem skupiny prostředků, ve které jsou uzly clusteru AKS hostované
    • location s názvem oblasti, ve které se má prostředek vytvořit. Měla by to být stejná oblast jako uzly clusteru AKS.
    az storage account create -n myAKSStorageAccount -g nodeResourceGroupName -l location --sku Standard_LRS
    
  3. Exportujte připojovací řetězec jako proměnnou prostředí pomocí následujícího příkazu, který použijete k vytvoření sdílené složky.

    export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string -n storageAccountName -g resourceGroupName -o tsv)
    
  4. Pomocí příkazu vytvořte sdílenou az storage share create složku. Nezapomeňte nahradit shareName názvem sdílené složky.

    az storage share create -n shareName --connection-string $AZURE_STORAGE_CONNECTION_STRING
    
  5. Pomocí následujícího příkazu exportujte klíč účtu úložiště jako proměnnou prostředí.

    STORAGE_KEY=$(az storage account keys list --resource-group nodeResourceGroupName --account-name myAKSStorageAccount --query "[0].value" -o tsv)
    
  6. Pomocí následujícího příkazu ozvěte název a klíč účtu úložiště. Tyto informace zkopírujte, protože tyto hodnoty potřebujete při vytváření svazku Kubernetes.

    echo Storage account key: $STORAGE_KEY
    

Vytvoření tajného kódu Kubernetes

Kubernetes potřebuje přihlašovací údaje pro přístup ke sdílené složce vytvořené v předchozím kroku. Tyto přihlašovací údaje se ukládají do tajného kódu Kubernetes, na který se odkazuje při vytváření podu Kubernetes.

  1. Vytvořte tajný kód pomocí kubectl create secret příkazu. Následující příklad vytvoří tajný klíč s názvem azure-secret a naplní název azurestorageaccountname a azurestorageaccountkey z předchozího kroku. Pokud chcete použít existující účet úložiště Azure, zadejte název a klíč účtu.

    kubectl create secret generic azure-secret --from-literal=azurestorageaccountname=myAKSStorageAccount --from-literal=azurestorageaccountkey=$STORAGE_KEY
    

Připojení sdílené složky jako trvalého svazku

  1. Vytvořte nový soubor s názvem azurefiles-pv.yaml a zkopírujte ho do následujícího obsahu. V části csi, update resourceGroup, volumeHandlea shareName. Pro možnosti připojení je výchozí hodnota a fileMode dirMode je 0777.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      annotations:
        pv.kubernetes.io/provisioned-by: file.csi.azure.com
      name: azurefile
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      storageClassName: azurefile-csi
      csi:
        driver: file.csi.azure.com
        volumeHandle: "{resource-group-name}#{account-name}#{file-share-name}"  # make sure this volumeid is unique for every identical share in the cluster
        volumeAttributes:
          shareName: aksshare
        nodeStageSecretRef:
          name: azure-secret
          namespace: default
      mountOptions:
        - dir_mode=0777
        - file_mode=0777
        - uid=0
        - gid=0
        - mfsymlinks
        - cache=strict
        - nosharesock
        - nobrl  # disable sending byte range lock requests to the server and for applications which have challenges with posix locks
    
  2. Pomocí příkazu vytvořte trvalý svazek kubectl create .

    kubectl create -f azurefiles-pv.yaml
    
  3. Vytvořte nový soubor s názvem azurefiles-mount-options-pvc.yaml a zkopírujte následující obsah.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: azurefile
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: azurefile-csi
      volumeName: azurefile
      resources:
        requests:
          storage: 5Gi
    
  4. Pomocí příkazu vytvořte PersistentVolumeClaim kubectl apply .

    kubectl apply -f azurefiles-mount-options-pvc.yaml
    
  5. Pomocí příkazu ověřte, že je váš PersistentVolumeClaim vytvořený a svázaný s TrvalýVolume kubectl get .

    kubectl get pvc azurefile
    

    Výstup příkazu vypadá podobně jako v následujícím příkladu:

    NAME        STATUS   VOLUME      CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    azurefile   Bound    azurefile   5Gi        RWX            azurefile      5s
    
  6. Aktualizujte specifikaci kontejneru tak, aby odkazoval na persistentVolumeClaim a pod v souboru YAML. Příklad:

    ...
      volumes:
      - name: azure
        persistentVolumeClaim:
          claimName: azurefile
    
  7. Specifikace podu se nedá aktualizovat, proto odstraňte pod pomocí kubectl delete příkazu a vytvořte ho kubectl apply znovu pomocí příkazu.

    kubectl delete pod mypod
    
    kubectl apply -f azure-files-pod.yaml
    

Připojení sdílené složky jako vloženého svazku

Poznámka:

Pokud se chcete vyhnout problémům s výkonem, doporučujeme místo vloženého svazku použít trvalý svazek, když ke stejné sdílené složce přistupuje mnoho podů. Vložený svazek má přístup pouze k tajným kódům ve stejném oboru názvů jako pod. Pokud chcete zadat jiný obor názvů tajných kódů, použijte trvalý svazek.

Pokud chcete připojit sdílenou složku Azure Files k podu, nakonfigurujte svazek ve specifikaci kontejneru.

  1. Vytvořte nový soubor s názvem azure-files-pod.yaml a zkopírujte ho do následujícího obsahu. Pokud jste změnili název sdílené složky nebo názvu tajného kódu, aktualizujte soubor shareName a secretName. Můžete také aktualizovat mountPath, což je cesta, kde je sdílená složka připojena v podu. Pro kontejnery Windows Serveru zadejte mountPath pomocí konvence cesty systému Windows, například D:.
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  nodeSelector:
    kubernetes.io/os: linux
  containers:
    - image: 'mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine'
      name: mypod
      resources:
        requests:
          cpu: 100m
          memory: 128Mi
        limits:
          cpu: 250m
          memory: 256Mi
      volumeMounts:
        - name: azure
          mountPath: /mnt/azure
          readOnly: false
  volumes:
    - name: azure
      csi:
        driver: file.csi.azure.com
        volumeAttributes:
          secretName: azure-secret  # required
          shareName: aksshare  # required
          mountOptions: 'dir_mode=0777,file_mode=0777,cache=strict,actimeo=30,nosharesock,nobrl'  # optional
  1. Vytvořte pod pomocí kubectl apply příkazu.

    kubectl apply -f azure-files-pod.yaml
    

    Teď máte spuštěný pod se sdílenou složkou Azure Files připojenou v /mnt/azure. Pomocí příkazu můžete ověřit, že je sdílená složka úspěšně kubectl describe připojená.

    kubectl describe pod mypod
    

Další kroky

Informace o parametrech ovladače CSI služby Azure Files najdete v tématu Parametry ovladače CSI.

Přidružené osvědčené postupy najdete v tématu Osvědčené postupy pro ukládání a zálohování v AKS.