Поделиться через


Создание и использование тома с Файлы Azure в Служба Azure Kubernetes (AKS)

Постоянный том — это часть хранилища, которая подготовлена к использованию для модулей pod Kubernetes. Постоянный том можно использовать с одним или несколькими модулями pod, и он может быть динамически подготовлен или статически подготовлен. Если несколько объектов pod требуют одновременный доступ в одно и то же хранилище, используйте службу Файлов Azure для подключения с помощью протокола Server Message Block (SMB). В этой статье показано, как динамически создать общую папку Azure для использования несколькими модулями pod в кластере Служба Azure Kubernetes (AKS).

Из этой статьи вы узнаете, как выполнять следующие задачи:

  • Работа с динамическим постоянным томом (PV) путем установки драйвера интерфейса хранилища контейнеров (CSI) и динамического создания одного или нескольких общих папок Azure для подключения к pod.
  • Работа со статическим PV путем создания одной или нескольких общих папок Azure или использования существующей и присоединения ее к модулем pod.

Дополнительные сведения о томах Kubernetes см. в статье, посвященной возможностям хранения данных приложений в AKS.

Подготовка к работе

  • Вам потребуется учетная запись хранения Azure.
  • Убедитесь, что вы установили и настроили Azure CLI версии 2.0.59 или более поздней версии. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.
  • При выборе общих папок уровня "Стандартный" и "Премиум" важно понимать модель подготовки и требования ожидаемого шаблона использования, который планируется запустить на Файлы Azure. Дополнительные сведения см. в статье Выбор уровня производительности Файлы Azure на основе шаблонов использования.

Динамическое подготовка тома

В этом разделе приводятся рекомендации для администраторов кластера, которые хотят подготовить один или несколько постоянных томов, которые содержат сведения об одном или нескольких общих ресурсах в Файлы Azure. Утверждение постоянного тома (PVC) использует объект класса хранилища для динамической подготовки Файлы Azure файлового ресурса.

Параметры класса хранилища для dynamic PersistentVolumes

В следующей таблице приведены параметры, которые можно использовать для определения пользовательского класса хранилища для объекта PersistentVolumeClaim.

Имя. Значение Доступное значение Обязательно Default value
accountAccessTier Уровень доступа для учетной записи хранения Стандартная учетная запись может выбрать Hot или Coolвыбрать только Premiumучетную запись Premium. No Пусто Используйте параметр по умолчанию для различных типов учетных записей хранения.
accountQuota Ограничивает квоту для учетной записи. Можно указать максимальную квоту в ГБ (102400 ГБ по умолчанию). Если учетная запись превышает указанную квоту, драйвер пропускает выбор учетной записи. No 102400
allowBlobPublicAccess Разрешает или запрещает общий доступ ко всем большим двоичным объектам или контейнерам для учетной записи хранения, созданной драйвером. true или false No false
disableDeleteRetentionPolicy Укажите, отключите ли DeleteRetentionPolicy для учетной записи хранения, созданной драйвером. true или false No false
enableLargeFileShares Укажите, следует ли использовать учетную запись хранения с включенными большими файловыми ресурсами. Если этот флаг установлен true и учетная запись хранения с включенными большими общими папками не существует, создается новая учетная запись хранения с большими файловыми ресурсами. Этот флаг должен использоваться со стандартным номером SKU, так как учетные записи хранения, созданные с помощью номера SKU уровня "Премиум", по largeFileShares умолчанию включены. true или false No false
folderName Укажите имя папки в общей папке Azure. Существующее имя папки в общей папке Azure. No Если имя папки не существует в общей папке, подключение завершается ошибкой.
getLatestAccount Определяет, следует ли получить последний ключ учетной записи на основе времени создания. Этот драйвер получает первый ключ по умолчанию. true или false No false
расположение Укажите регион Azure учетной записи хранения Azure. Например, eastus. No Если это пусто, драйвер использует то же имя расположения, что и текущий кластер AKS.
matchTags Сопоставляет теги, когда драйвер пытается найти подходящую учетную запись хранения. true или false No false
networkEndpointType Укажите тип сетевой конечной точки для учетной записи хранения, созданной драйвером. Если privateEndpoint задано, для учетной записи хранения создается частная конечная точка. В других случаях конечная точка службы создается по умолчанию. "",privateEndpoint No ""
protocol Укажите протокол общей папки. smb, nfs No smb
requireInfraEncryption Укажите, применяет ли служба дополнительный уровень шифрования с управляемыми платформой ключами для неактивных данных для учетной записи хранения, созданной драйвером. true или false No false
resourceGroup Укажите группу ресурсов для дисков Azure. Имя существующей группы ресурсов No Если это пусто, драйвер использует то же имя группы ресурсов, что и текущий кластер AKS.
selectRandomMatchingAccount Определяет, следует ли случайным образом выбрать соответствующую учетную запись. По умолчанию драйвер всегда выбирает первую соответствующую учетную запись в алфавитном порядке (примечание. Этот драйвер использует кэш поиска учетных записей, что приводит к неравномерному распределению файлов в нескольких учетных записях). true или false No false
server Укажите адрес сервера учетной записи хранения Azure. Например, accountname.privatelink.file.core.windows.netсуществующий адрес сервера. No Если драйвер пустой, драйвер использует адрес учетной записи по умолчанию accountname.file.core.windows.net или другую учетную запись для государственных облачных служб.
shareAccessTier Уровень доступа для общей папки Учетная запись общего назначения версии 2 может выбирать между TransactionOptimized (по умолчанию) Hotи Cool. Тип учетной записи хранения "Премиум" только для общих папок. No Пусто Используйте параметр по умолчанию для различных типов учетных записей хранения.
shareName Укажите имя общей папки Azure. Существующее или новое имя общей папки Azure. No Если это пусто, драйвер создает имя общей папки Azure.
shareNamePrefix Укажите префикс имени общей папки Azure, созданный драйвером. Имя общего ресурса может содержать только строчные буквы, цифры, дефисы и длину не более 21 символов. No
skuName тип учетной записи хранения Файлы Azure (псевдоним: storageAccountType) Standard_LRS, Standard_ZRS, Standard_GRS, Standard_RAGRSStandard_RAGZRS, ,Premium_LRSPremium_ZRS No StandardSSD_LRS
Минимальный размер общей папки для типа учетной записи Premium составляет 100 ГБ.
Тип учетной записи ZRS поддерживается в ограниченных регионах.
Общий файловый ресурс NFS поддерживает только тип учетной записи Premium.
storageAccount Указывает имя учетной записи хранения Azure. storageAccountName Нет Если имя учетной записи хранения не указано, драйвер будет искать подходящую учетную запись хранения, соответствующую параметрам учетной записи в одной группе ресурсов. Если не удается найти соответствующую учетную запись хранения, она создаст новую. Однако если указано имя учетной записи хранения, учетная запись хранения должна существовать.
storageEndpointSuffix Указывает суффикс конечной точки хранилища Azure. core.windows.net, core.chinacloudapi.cnи т. д. No Если это пусто, драйвер использует суффикс конечной точки хранилища по умолчанию в соответствии с облачной средой. Например, core.windows.net.
tags Теги создаются в новой учетной записи хранения. Формат тега: 'foo=aaa,bar=bbb' No ""
--- Следующие параметры предназначены только для протокола SMB --- ---
subscriptionID Укажите идентификатор подписки Azure, в котором создается общая папка Azure. Идентификатор подписки Azure No Если значение не пустое, необходимо указать resourceGroup.
storeAccountKey Укажите, следует ли хранить ключ учетной записи в секрет Kubernetes. true или false
false означает, что для получения ключа учетной записи драйвер использует удостоверение kubelet.
No true
secretName; Указывает имя секрета для хранения ключа учетной записи. No
secretNamespace Указывает пространство имен секрета для хранения ключа учетной записи.

Примечание.
Если secretNamespace это не указано, секрет создается в том же пространстве имен, что и модуль pod.
default,kube-system и т. д. No Пространство имен ПВХ, например csi.storage.k8s.io/pvc/namespace
useDataPlaneAPI Укажите, следует ли использовать API плоскости данных для общей папки создания и удаления или изменения размера, что может решить проблему регулирования API SRP, так как API плоскости данных почти не ограничивается, в то время как он завершится ошибкой, если в учетной записи хранения есть параметры брандмауэра или виртуальной сети. true или false No false
--- Следующие параметры предназначены только для протокола NFS --- ---
mountPermissions Подключенные разрешения папки. Значение по умолчанию — 0777. Если задано значение 0, драйвер не выполняется chmod после подключения 0777 No
rootSquashType Укажите поведение корневого скваширования в общей папке. Значение по умолчанию — NoRootSquash. AllSquash, , NoRootSquashRootSquash No
--- Следующие параметры предназначены только для параметра виртуальной сети. Например, NFS, частная конечная точка --- ---
fsGroupChangePolicy Указывает, как драйвер изменяет владение томом. Модуль Pod securityContext.fsGroupChangePolicy игнорируется. OnRootMismatch(по умолчанию), AlwaysNone No OnRootMismatch
subnetName Имя подсети Существующее имя подсети узла агента. No Если этот параметр пуст, драйвер использует значение subnetName, указанное в файле конфигурации облака Azure.
vnetName имя виртуальной сети; Существующее имя виртуальной сети. No Если этот параметр пуст, драйвер использует значение vnetName, указанное в файле конфигурации облака Azure.
vnetResourceGroup Укажите группу ресурсов виртуальной сети, в которой определена виртуальная сеть. Существующее имя группы ресурсов. No Если этот параметр пуст, драйвер использует значение vnetResourceGroup, указанное в файле конфигурации облака Azure.

Создание класса хранения

Классы хранилища определяют, как создать общую папку Azure. Учетная запись хранения автоматически создается в группе ресурсов узла для использования с классом хранилища для хранения Файлы Azure общей папки. Выберите следующие номера SKU избыточности службы хранилища Azure для skuName:

  • Standard_LRS: локально избыточное хранилище (LRS) уровня "Стандартный"
  • Standard_GRS: стандартное геоизбыточное хранилище (GRS)
  • Standard_ZRS: хранилище с избыточностью между зонами (ZRS)
  • Standard_RAGRS: стандартное геоизбыточное хранилище для чтения (RA-GRS)
  • Premium_LRS: локально избыточное хранилище класса Premium (LRS)
  • Premium_ZRS: хранилище, избыточное между зонами уровня "Премиум" (ZRS)

Примечание.

Минимальный размер общей папки класса Premium составляет 100 ГБ.

Дополнительные сведения о классах хранения Kubernetes для файлов Azure см. в разделе о классах хранения Kubernetes.

  1. Создайте файл под названием azure-file-sc.yaml и скопируйте в него следующий пример манифеста. Дополнительные сведения см mountOptions. в разделе "Параметры подключения".

    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. Создайте класс хранилища с помощью kubectl apply команды.

    kubectl apply -f azure-file-sc.yaml
    

Создание заявки на доступ к постоянному тому

Утверждение постоянного тома (PVC) использует объект класса хранения для динамической подготовки файлового ресурса Azure. Чтобы создать утверждение постоянного тома размером 100 ГБ с доступом ReadWriteMany , можно использовать следующий YAML. Дополнительные сведения о режимах доступа см. в разделе "Постоянный том Kubernetes".

  1. Создайте файл azure-file-pvc.yaml и скопируйте в него следующий код YAML. Убедитесь, storageClassName что соответствует классу хранилища, созданному на предыдущем шаге.

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

    Примечание.

    Если используется Premium_LRS номер SKU для класса хранилища, минимальное значение storage должно быть 100Gi.

  2. Создайте утверждение постоянного тома kubectl apply с помощью команды.

    kubectl apply -f azure-file-pvc.yaml
    

    После завершения будет создан общий файловый ресурс. Также будет создан секрет Kubernetes, содержащий сведения о подключении и учетные данные. Вы можете использовать kubectl get команду для просмотра состояния ПВХ:

    kubectl get pvc my-azurefile
    

    Выходные данные команды будут выглядеть примерно так:

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

Использование постоянного тома

В следующем YAML создается модуль pod, использующий утверждение постоянного тома my-azurefile для подключения общей папки Файлы Azure в пути /mnt/azure. Для контейнеров Windows Server укажите mountPath соглашение о пути Windows, например "D:".

  1. Создайте файл azure-pvc-files.yaml и скопируйте в него следующий код YAML. Убедитесь, claimName что соответствует ПВХ, созданному на предыдущем шаге.

    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. Создайте pod с помощью kubectl apply команды.

    kubectl apply -f azure-pvc-files.yaml
    

    Теперь у вас есть запущенный модуль pod с Файлы Azure общей папкой, подключенной в каталоге /mnt/azure. Эту конфигурацию можно увидеть при проверке kubectl describe pod с помощью команды. В следующем сжатом примере выходных данных показан том, подключенный к контейнеру.

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

Параметры подключения

Значение по умолчанию для fileMode Kubernetes dirMode версии 1.13.0 и более поздней — 0777 . Если вы динамически создаете постоянный том с классом хранилища, можно указать параметры подключения в объекте класса хранилища. Дополнительные сведения см. в разделе "Параметры подключения". В следующем примере задается значение 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

Использование тегов Azure

Дополнительные сведения об использовании тегов Azure см. в разделе Использование тегов Azure в кластере Службы Azure Kubernetes (AKS).

Статическая подготовка тома

В этом разделе содержатся рекомендации для администраторов кластера, которые хотят создать один или несколько постоянных томов, включающих сведения о существующей Файлы Azure общей папке для использования с рабочей нагрузкой.

Параметры статической подготовки для PersistentVolume

В следующей таблице содержатся параметры, которые можно использовать для определения PersistentVolume.

Имя. Значение Доступное значение Обязательно Default value
volumeAttributes.resourceGroup Указывает имя группы ресурсов Azure. myResourceGroup No Если это пусто, драйвер использует то же имя группы ресурсов, что и текущий кластер.
volumeAttributes.storageAccount Укажите существующее имя учетной записи хранения Azure. storageAccountName Да
volumeAttributes.shareName Укажите имя общей папки Azure. fileShareName Да
volumeAttributes.folderName Укажите имя папки в общей папке Azure. folderName No Если имя папки не существует в общей папке, подключение завершится ошибкой.
volumeAttributes.protocol Укажите протокол общей папки. smb, nfs No smb
volumeAttributes.server Указание адреса сервера учетной записи хранения Azure Например, accountname.privatelink.file.core.windows.netсуществующий адрес сервера. No Если драйвер пустой, драйвер использует адрес учетной записи по умолчанию accountname.file.core.windows.net или другую учетную запись для государственных облачных служб.
--- Следующие параметры предназначены только для протокола SMB --- --- ---
volumeAttributes.secretName Укажите имя секрета, которое хранит имя и ключ учетной записи хранения. No
volumeAttributes.secretNamespace Укажите пространство имен секрета. default,kube-system и т. д. No Пространство имен ПВХ (csi.storage.k8s.io/pvc/namespace)
nodeStageSecretRef.name Укажите имя секрета, которое хранит имя и ключ учетной записи хранения. Существующее имя секрета. No Если это пусто, драйвер использует удостоверение kubelet для получения ключа учетной записи.
nodeStageSecretRef.namespace Укажите пространство имен секрета. Пространство имен Kubernetes No
--- Следующие параметры предназначены только для протокола NFS --- --- ---
volumeAttributes.fsGroupChangePolicy Указывает, как драйвер изменяет владение томом. Модуль Pod securityContext.fsGroupChangePolicy игнорируется. OnRootMismatch(по умолчанию), AlwaysNone No OnRootMismatch
volumeAttributes.mountPermissions Укажите разрешения подключенной папки. Значение по умолчанию — 0777. No

Создание общей папки Azure

Прежде чем использовать общую папку Файлы Azure в качестве тома Kubernetes, необходимо создать учетную запись служба хранилища Azure и общую папку.

  1. Получите имя группы ресурсов с помощью az aks show команды с параметром --query nodeResourceGroup .

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

    Выходные данные команды будут выглядеть примерно так:

    MC_myResourceGroup_myAKSCluster_eastus
    
  2. Создайте учетную запись хранения с помощью az storage account create команды с параметром --sku . Следующая команда создает учетную запись хранения с помощью Standard_LRS номера SKU. Обязательно замените следующие заполнители:

    • myAKSStorageAccount с именем учетной записи хранения
    • nodeResourceGroupName с именем группы ресурсов, в которую размещаются узлы кластера AKS.
    • location с именем региона для создания ресурса. Это должен быть тот же регион, что и узлы кластера AKS.
    az storage account create -n myAKSStorageAccount -g nodeResourceGroupName -l location --sku Standard_LRS
    
  3. Экспортируйте строка подключения в качестве переменной среды с помощью следующей команды, которая используется для создания общей папки.

    export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string -n storageAccountName -g resourceGroupName -o tsv)
    
  4. Создайте общую папку az storage share create с помощью команды. Обязательно замените shareName имя общей папки.

    az storage share create -n shareName --connection-string $AZURE_STORAGE_CONNECTION_STRING
    
  5. Экспорт ключа учетной записи хранения в качестве переменной среды с помощью следующей команды.

    STORAGE_KEY=$(az storage account keys list --resource-group nodeResourceGroupName --account-name myAKSStorageAccount --query "[0].value" -o tsv)
    
  6. Эхо имени учетной записи хранения и ключа с помощью следующей команды. Скопируйте эти сведения, так как вам нужны эти значения при создании тома Kubernetes.

    echo Storage account key: $STORAGE_KEY
    

Создание секрета Kubernetes

Kubernetes требуются учетные данные для доступа к файловому ресурсу, созданные на предыдущем шаге. Эти учетные данные хранятся в секрете Kubernetes, который указывается при создании pod Kubernetes.

  1. Создайте секрет с помощью kubectl create secret команды. Следующий пример создает ресурс с именем azure-secret и заполняет параметры azurestorageaccountname и azurestorageaccountkey данными, созданными в предыдущем шаге. Чтобы использовать существующую учетную запись Azure, укажите имя и ключ учетной записи.

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

Подключение общей папки в качестве постоянного тома

  1. Создайте файл с именем azurefiles-pv.yaml и скопируйте его в следующее содержимое. В объекте csi измените resourceGroup, volumeHandle и shareName. Для параметров подключения значение fileMode по умолчанию и dirMode равно 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:
          resourceGroup: resourceGroupName  # optional, only set this when storage account is not in the same resource group as node
          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. Создайте постоянный том с помощью kubectl create команды.

    kubectl create -f azurefiles-pv.yaml
    
  3. Создайте файл с именем azurefiles-mount-options-pvc.yaml и скопируйте следующее содержимое.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: azurefile
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: azurefile-csi
      volumeName: azurefile
      resources:
        requests:
          storage: 5Gi
    
  4. Создайте PersistentVolumeClaim с помощью kubectl apply команды.

    kubectl apply -f azurefiles-mount-options-pvc.yaml
    
  5. Убедитесь, что объект PersistentVolumeClaim создается и привязан к PersistentVolume с помощью kubectl get команды.

    kubectl get pvc azurefile
    

    Выходные данные команды будут выглядеть примерно так:

    NAME        STATUS   VOLUME      CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    azurefile   Bound    azurefile   5Gi        RWX            azurefile      5s
    
  6. Обновите спецификацию контейнера, чтобы ссылаться на PersistentVolumeClaim и pod в файле YAML. Например:

    ...
      volumes:
      - name: azure
        persistentVolumeClaim:
          claimName: azurefile
    
  7. Спецификация pod не может быть обновлена на месте, поэтому удалите модуль pod с помощью kubectl delete команды и повторно создайте его с помощью kubectl apply команды.

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

Подключение файлового ресурса в качестве встроенного тома

Примечание.

Чтобы избежать проблем с производительностью, рекомендуется использовать постоянный том вместо встроенного тома, когда множество модулей pod обращаются к одной общей папке. Встроенный том может обращаться только к секретам в том же пространстве имен, что и модуль pod. Чтобы указать другое пространство имен секрета, используйте постоянный том.

Чтобы подключить общую папку Файлы Azure в модуль pod, настройте том в спецификации контейнера.

  1. Создайте файл с именем azure-files-pod.yaml и скопируйте его в следующее содержимое. Если имя общей папки или секретного имени изменено, обновите shareName и secretName. Вы также можете обновить mountPathпуть, по которому общая папка "Файлы" подключена в модуле pod. Для контейнеров Windows Server укажите mountPath соглашение о пути Windows, например "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. Создайте pod с помощью kubectl apply команды.

    kubectl apply -f azure-files-pod.yaml
    

    Теперь у вас есть запущенный модуль pod с Файлы Azure общей папкой, подключенной к /mnt/azure. Вы можете убедиться, что общая папка подключена успешно с помощью kubectl describe команды.

    kubectl describe pod mypod
    

Следующие шаги

Параметры драйвера CSI Файлы Azure см. в разделе "Параметры драйвера CSI".

Соответствующие рекомендации см. в разделе Рекомендации по хранению и резервному копированию в AKS.