如何解决在AKS上使用Statefulset共享Azure文件存储
我在Azure Kubernetes 1.16上有一个包含3个实例的Statefulset,在这里我尝试使用Azure文件存储为这3个实例创建单个文件共享。
我使用Azure Files dynamic来声明所有内容,即自动创建存储帐户,秘密,pvc和pv。
通过VolumeClaimTemplate进行显示
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: xxx
spec:
replicas: 3
...
volumeClaimTemplates:
- metadata:
name: xxx-data-shared
spec:
accessModes: [ ReadWriteMany ]
storageClassName: azfile-zrs-sc
resources:
requests:
storage: 1Gi
StorageClass:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: azfile-zrs-sc
provisioner: kubernetes.io/azure-file
reclaimPolicy: Retain
volumeBindingMode: WaitForFirstConsumer
mountOptions:
- dir_mode=0777
- file_mode=0777
- uid=0
- gid=0
- mfsymlinks
- cache=strict
parameters:
resourceGroup: xxx
skuName: Standard_ZRS
shareName: data
我最终得到了3个pv,而不是一个共享,它们分别指向一个单独创建的Azure存储帐户,每个共享都有data
。
问题:我可以在清单中进行其他配置的情况下使用Azure文件动态来获得单个文件共享吗?还是我必须做静态的?
解决方法
结果发现volumeClaimTemplates
不是正确的位置(reference)。
请改为使用persistentVolumeClaim
。
对于Azure文件存储,它变为:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data-shared-claim
spec:
accessModes:
- ReadWriteMany
storageClassName: azfile-zrs-sc
resources:
requests:
storage: 1Gi
并在清单中引用它:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: xxx
spec:
replicas: 3
...
template:
spec:
containers:
...
volumeMounts:
- name: data-shared
mountPath: /data
volumes:
- name: data-shared
persistentVolumeClaim:
claimName: data-shared-claim
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。