FileShare
SKU:
- Standard_LRS - 标准本地冗余存储 (LRS)
- Standard_GRS** **- 标准异地冗余存储 (GRS)
- Standard_ZRS** **- 标准区域冗余存储 (ZRS)
- Standard_RAGRS - 标准读取访问异地冗余存储 (RA-GRS)
- Premium_LRS - 高级本地冗余存储 (LRS)
- Premium_ZRS - 高级区域冗余存储 (ZRS)
动态卷
存储类
动态创建NFS协议的自定义存储类
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: azurefile-nfs-sc
provisioner: file.csi.azure.com
reclaimPolicy: Retain
volumeBindingMode: Immediate
allowVolumeExpansion: true
mountOptions:
- nconnect=4
parameters:
skuName: Premium_LRS ## Azure 文件存储存储帐户类型,只有Premium版存储账户支持nfs协议,这里选择Premium_LRS(高级版本地冗余),如果指定了protocol: nfs, sku则自动指定为 Premium_LRS,AzureFile会默认创建在MC_的资源组内
protocol: nfs ## 指定文件共享协议类型;若使用nfs,必须指定
动态创建SMB协议的自定义存储类
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: azurefile-smb-sc
provisioner: file.csi.azure.com
reclaimPolicy: Retain
volumeBindingMode: Immediate
allowVolumeExpansion: true
mountOptions:
- dir_mode=0777
- file_mode=0777
- uid=1000
- gid=1000
- mfsymlinks
- cache=strict # https://linux.die.net/man/8/mount.cifs
- nosharesock
parameters:
skuName: Standard_LRS ## 若当前地区没有该规格的AzureFile, AKS则会默认在MC_的资源组内创建一个新的AzureFile
# protocol: smb ## 可以不不指定协议类型,默认创建出来的就是smb文件系统
手动创建存储账户的自定以存储类
- 创建Secret
kubectl create secret generic azure-storageaccount-secret --from-literal=azurestorageaccountname=<STORAGE_ACCOUNT_NAME> --from-literal=azurestorageaccountkey=<STORAGE_ACCOUNT_KEY>
- 创建自定义存储类
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: azurefile-smb-sc
provisioner: file.csi.azure.com
reclaimPolicy: Retain
volumeBindingMode: Immediate
allowVolumeExpansion: true
mountOptions:
- dir_mode=0777
- file_mode=0777
- uid=1000
- gid=1000
- mfsymlinks
- cache=strict # https://linux.die.net/man/8/mount.cifs
- nosharesock
parameters:
secretName: azure-storageaccount-secret
# shareName: dynamic ## 可选,若不指定,csi将生成一个 Azure 文件共享名称
动态创建存储卷
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-log
namespace: cdp
spec:
accessModes:
- ReadWriteMany
storageClassName: <storageClass_name> # azurefile-nfs-sc,azurefile-smb-sc
resources:
requests:
storage: 500Gi
静态卷
前置条件:
- 创建Azurer 存储账户, 并获取storage account key
- 创建FileShare
- 创建Secret
kubectl create secret generic azure-storageaccount-secret --from-literal=azurestorageaccountname=<STORAGE_ACCOUNT_NAME> --from-literal=azurestorageaccountkey=<STORAGE_ACCOUNT_KEY>
- 创建PV
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-log
spec:
capacity:
storage: 500Gi
accessModes:
- ReadWriteMany
azureFile:
secretName: azure-storageaccount-secret
shareName: pvc-log # 文件共享名称
readOnly: false
mountOptions:
- dir_mode=0777
- file_mode=0777
- uid=1000
- gid=1000
- mfsymlinks
- nobrl
- 创建PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-log
namespace: cdp
spec:
accessModes:
- ReadWriteMany
storageClassName: ""
volumeName: pv-log
resources:
requests:
storage: 500Gi
文件共享卷
前置条件:
- 创建Azurer 存储账户, 并获取storage account key
- 创建FileShare
- 创建Secret
kubectl create secret generic azure-storageaccount-secret --from-literal=azurestorageaccountname=<STORAGE_ACCOUNT_NAME> --from-literal=azurestorageaccountkey=<STORAGE_ACCOUNT_KEY>
- 挂载使用
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
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
subPath: mypod
mountPath: /mnt/azure
volumes:
- name: azure
azureFile:
secretName: azure-storageaccount-secret
shareName: pvc-log # 文件共享名称
readOnly: false
参考链接
在 Azure Kubernetes 服务 (AKS) 中通过 Azure 文件存储创建永久性卷 - Azure Kubernetes Service
在 Azure Kubernetes 服务 (AKS) 中使用 Azure 文件存储的容器存储接口 (CSI) 驱动程序 - Azure Kubernetes Service
azure-docs.zh-cn/articles/aks/azure-files-volume.md at master · MicrosoftDocs/azure-docs.zh-cn
azure-docs.zh-cn/articles/aks/azure-files-dynamic-pv.md at master · MicrosoftDocs/azure-docs.zh-cn