AKS内AzureFile的持久化配置要点

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文件系统  
手动创建存储账户的自定以存储类
  1. 创建Secret
kubectl create secret generic azure-storageaccount-secret --from-literal=azurestorageaccountname=<STORAGE_ACCOUNT_NAME> --from-literal=azurestorageaccountkey=<STORAGE_ACCOUNT_KEY>
  1. 创建自定义存储类
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

静态卷

前置条件:

  1. 创建Azurer 存储账户, 并获取storage account key
  2. 创建FileShare
  1. 创建Secret
kubectl create secret generic azure-storageaccount-secret --from-literal=azurestorageaccountname=<STORAGE_ACCOUNT_NAME> --from-literal=azurestorageaccountkey=<STORAGE_ACCOUNT_KEY>
  1. 创建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
  1. 创建PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-log
  namespace: cdp
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: ""
  volumeName: pv-log
  resources:
    requests:
      storage: 500Gi

文件共享卷

前置条件:

  1. 创建Azurer 存储账户, 并获取storage account key
  2. 创建FileShare
  1. 创建Secret
kubectl create secret generic azure-storageaccount-secret --from-literal=azurestorageaccountname=<STORAGE_ACCOUNT_NAME> --from-literal=azurestorageaccountkey=<STORAGE_ACCOUNT_KEY>
  1. 挂载使用
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值