Создание и использование тома с Файлы 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_RAGRS Standard_RAGZRS , ,Premium_LRS Premium_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 , , NoRootSquash RootSquash |
No | |
--- | Следующие параметры предназначены только для параметра виртуальной сети. Например, NFS, частная конечная точка | --- | --- | |
fsGroupChangePolicy | Указывает, как драйвер изменяет владение томом. Модуль Pod securityContext.fsGroupChangePolicy игнорируется. |
OnRootMismatch (по умолчанию), Always None |
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.
Создайте файл под названием
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
Создайте класс хранилища с помощью
kubectl apply
команды.kubectl apply -f azure-file-sc.yaml
Создание заявки на доступ к постоянному тому
Утверждение постоянного тома (PVC) использует объект класса хранения для динамической подготовки файлового ресурса Azure. Чтобы создать утверждение постоянного тома размером 100 ГБ с доступом ReadWriteMany , можно использовать следующий YAML. Дополнительные сведения о режимах доступа см. в разделе "Постоянный том Kubernetes".
Создайте файл
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
.Создайте утверждение постоянного тома
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:".
Создайте файл
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
Создайте 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 (по умолчанию), Always None |
No | OnRootMismatch |
volumeAttributes.mountPermissions | Укажите разрешения подключенной папки. Значение по умолчанию — 0777 . |
No |
Создание общей папки Azure
Прежде чем использовать общую папку Файлы Azure в качестве тома Kubernetes, необходимо создать учетную запись служба хранилища Azure и общую папку.
Получите имя группы ресурсов с помощью
az aks show
команды с параметром--query nodeResourceGroup
.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
Выходные данные команды будут выглядеть примерно так:
MC_myResourceGroup_myAKSCluster_eastus
Создайте учетную запись хранения с помощью
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
Экспортируйте строка подключения в качестве переменной среды с помощью следующей команды, которая используется для создания общей папки.
export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string -n storageAccountName -g resourceGroupName -o tsv)
Создайте общую папку
az storage share create
с помощью команды. Обязательно заменитеshareName
имя общей папки.az storage share create -n shareName --connection-string $AZURE_STORAGE_CONNECTION_STRING
Экспорт ключа учетной записи хранения в качестве переменной среды с помощью следующей команды.
STORAGE_KEY=$(az storage account keys list --resource-group nodeResourceGroupName --account-name myAKSStorageAccount --query "[0].value" -o tsv)
Эхо имени учетной записи хранения и ключа с помощью следующей команды. Скопируйте эти сведения, так как вам нужны эти значения при создании тома Kubernetes.
echo Storage account key: $STORAGE_KEY
Создание секрета Kubernetes
Kubernetes требуются учетные данные для доступа к файловому ресурсу, созданные на предыдущем шаге. Эти учетные данные хранятся в секрете Kubernetes, который указывается при создании pod Kubernetes.
Создайте секрет с помощью
kubectl create secret
команды. Следующий пример создает ресурс с именем azure-secret и заполняет параметры azurestorageaccountname и azurestorageaccountkey данными, созданными в предыдущем шаге. Чтобы использовать существующую учетную запись Azure, укажите имя и ключ учетной записи.kubectl create secret generic azure-secret --from-literal=azurestorageaccountname=myAKSStorageAccount --from-literal=azurestorageaccountkey=$STORAGE_KEY
Подключение общей папки в качестве постоянного тома
Создайте файл с именем
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
Создайте постоянный том с помощью
kubectl create
команды.kubectl create -f azurefiles-pv.yaml
Создайте файл с именем azurefiles-mount-options-pvc.yaml и скопируйте следующее содержимое.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: azurefile spec: accessModes: - ReadWriteMany storageClassName: azurefile-csi volumeName: azurefile resources: requests: storage: 5Gi
Создайте PersistentVolumeClaim с помощью
kubectl apply
команды.kubectl apply -f azurefiles-mount-options-pvc.yaml
Убедитесь, что объект PersistentVolumeClaim создается и привязан к PersistentVolume с помощью
kubectl get
команды.kubectl get pvc azurefile
Выходные данные команды будут выглядеть примерно так:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE azurefile Bound azurefile 5Gi RWX azurefile 5s
Обновите спецификацию контейнера, чтобы ссылаться на PersistentVolumeClaim и pod в файле YAML. Например:
... volumes: - name: azure persistentVolumeClaim: claimName: azurefile
Спецификация pod не может быть обновлена на месте, поэтому удалите модуль pod с помощью
kubectl delete
команды и повторно создайте его с помощьюkubectl apply
команды.kubectl delete pod mypod kubectl apply -f azure-files-pod.yaml
Подключение файлового ресурса в качестве встроенного тома
Примечание.
Чтобы избежать проблем с производительностью, рекомендуется использовать постоянный том вместо встроенного тома, когда множество модулей pod обращаются к одной общей папке. Встроенный том может обращаться только к секретам в том же пространстве имен, что и модуль pod. Чтобы указать другое пространство имен секрета, используйте постоянный том.
Чтобы подключить общую папку Файлы Azure в модуль pod, настройте том в спецификации контейнера.
- Создайте файл с именем
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
Создайте pod с помощью
kubectl apply
команды.kubectl apply -f azure-files-pod.yaml
Теперь у вас есть запущенный модуль pod с Файлы Azure общей папкой, подключенной к /mnt/azure. Вы можете убедиться, что общая папка подключена успешно с помощью
kubectl describe
команды.kubectl describe pod mypod
Следующие шаги
Параметры драйвера CSI Файлы Azure см. в разделе "Параметры драйвера CSI".
Соответствующие рекомендации см. в разделе Рекомендации по хранению и резервному копированию в AKS.
Azure Kubernetes Service