K8S 使用阿里云 NAS 配额问题
注意
默认情况下,阿里云的 NAS 不限制配额,使用 StorageClass + PVC 或 PV + PVC 进行测试都无法对容量进行限制。
官方说明
配置NAS NFS存储卷容量
https://help.aliyun.com/document_detail/477385.htm?spm=a2c4g.11186623.0.0.2f166d0cwvbdrt#task-2287334
测试
在 NAS 中新建目录配额

创建 StorageClass, subpath 要对应上面创建的配额目录,要开启 volumeCapacity 和 allowVolumeExpansion 功能
cat sc.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: alicloud-nas-test
mountOptions:
- nolock,tcp,noresvport
- vers=3
parameters:
volumeAs: subpath
server: "214ce4b610-quv89.cn-shenzhen.nas.aliyuncs.com:/default/test/"
volumeCapacity: "true" # 创建动态卷带有配额能力。
provisioner: nasplugin.csi.alibabacloud.com
reclaimPolicy: Delete
allowVolumeExpansion: true # 开启允许动态卷扩容能力。
cat pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
namespace: default
annotations:
volume.beta.kubernetes.io/storage-class: "alicloud-nas-test"
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
name: test
name: test
spec:
replicas: 1
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
terminationGracePeriodSeconds: 60
containers:
- name: test
image: nginx
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 2000m
memory: 4096Mi
volumeMounts:
- name: data
mountPath: /mnt
volumes:
- name: data
persistentVolumeClaim:
claimName: test-pvc
kubectl apply -f sc.yaml -f pvc.yaml -f deployment.yaml
# 进入容器测试
kubectl exec -it test-76b9946bf-vkvn4 -- /bin/bash
cd /mnt
dd if=/dev/zero of=1G.txt bs=1M count=1024

成功限制住
扩容
在目录配额修改容量限制

# 修改 pvc
cat pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
namespace: default
annotations:
volume.beta.kubernetes.io/storage-class: "alicloud-nas-test"
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
kubectl apply -f pvc.yaml
# 注意 pvc 的生效有延迟,一般5分钟
# 进入 容器测试
kubectl exec -it test-76b9946bf-vkvn4 -- /bin/bash
cd /mnt
dd if=/dev/zero of=10M.txt bs=1M count=10
dd if=/dev/zero of=100M.txt bs=1M count=100

总结
阿里云 NAS 限制容量目前体验比较差,很多时候会延迟 5~15 分钟(官方说法,测试上也有分钟级别的延迟)
配置比较麻烦,需要通过 目录配额 + StorageClass + PVC 的方式使用,暂时不推荐。

浙公网安备 33010602011771号