本文为您介绍NAS存储卷常见问题的处理方法。
使用NAS时,提示chown: Operation not permitted
问题现象:
使用NAS时,提示chown: Operation not permitted。
问题原因:
您的容器没有权限使用该NAS。
解决方法:
使用Root权限启动容器。
使用NAS动态存储卷时Controller的任务队列已满且无法创建新的PV
问题现象:
使用NAS动态存储卷时,若创建子目录写入速度快于Controller删除子目录速度,将可能导致Controller的任务队列阻塞且无法创建新的PV。
问题原因:
当集群使用动态NAS存储卷时,配置的StorageClass回收策略reclaimPolicy为Delete且archiveOnDelete为false。
解决方法:
将archiveOnDelete配置为true,当删除PV时只是修改NAS文件系统中子目录的名称,而不是真正删除文件。
具体的文件删除操作需要您自行处理,例如:在某个节点过载根目录启动定时删除机制,或启动多个Pod并发删除某种格式的子目录。
NAS存储卷挂载时间延长
问题现象:
NAS存储卷挂载时间延长。
问题原因:
同时满足以下配置时,挂载的PV及PVC将执行chmod或chown,导致挂载时间延长。
- 在PV及PVC模板中配置的参数AccessModes值为ReadWriteOnce。
- 在应用模板中配置了securityContext.fsgroup参数。
解决方法:
- 若应用模板中配置了securityContext.fsgroup参数,请删除securityContext下的fsgroup参数。
- 若需要将挂载目录内文件变成期望的UID和mode,可以手动将目标目录挂载到一台ECS。关于ECS实例挂载文件系统,请参见通过控制台实现ECS实例一键挂载文件系统。再通过命令行执行
chown
和chmod
,完成后通过CSI使用NAS存储卷。关于如何通过CSI使用NAS存储卷,请参见使用NAS静态存储卷或使用NAS动态存储卷。 - 对于1.20及之后版本的Kubernetes集群,除了上述两种解决方法外,也可通过将fsGroupChangePolicy配置为OnRootMismatch,这时只有在首次启动时才会执行
chmod
或chown
操作,导致存在挂载时间延长的问题,后续挂载OSS存储卷时挂载时间将恢复正常。关于fsGroupChangePolicy参数的更多信息,请参见为Pod或容器配置安全性上下文。