![Kubernetes volumeMount:可以创建/删除但不能读取/写入文件](https://linux22.com/image/775511/Kubernetes%20volumeMount%EF%BC%9A%E5%8F%AF%E4%BB%A5%E5%88%9B%E5%BB%BA%2F%E5%88%A0%E9%99%A4%E4%BD%86%E4%B8%8D%E8%83%BD%E8%AF%BB%E5%8F%96%2F%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6.png)
我们在某个部署的某个 volumeMount 中遇到了奇怪的问题。以下是相关清单的片段:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: xxx-media-pv-resource-claim
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: cephfs
...
apiVersion: extensions/v1beta1
kind: Deployment
...
volumeMounts:
- mountPath: /opt/media/logs
name: xxx-media-log-storage
- mountPath: /shared-media-files
name: xxx-media-resource-storage
...
volumes:
- name: xxx-media-log-storage
persistentVolumeClaim:
claimName: xxx-media-pv-log-claim
- name: xxx-media-resource-storage
persistentVolumeClaim:
claimName: xxx-media-pv-resource-claim
...
我们尝试执行 cat/echo from/to files 等操作时,会收到读/写错误:“操作不允许”,尽管/shared-media-files
:a) 可以成功 touch/mkdir/chmod/rm 那里;b) 可以执行所有操作,/opt/media/logs
其中由相同的 PVC 备份(名称除外)。Cephfs storageclass 和相应的 Ceph 集群是整个 k8s 集群的存储,所有使用它的 k8s 实体的xxx-media-resource-storage
行为均符合预期。
k8s master:v1.14.1
k8s worker:v1.16.0
cephfs-provisioner:v2.1.0-k8s1.11
Ceph:14.2.1
我们检查了所有显而易见的东西,比如 Ceph 集群健康、可用存储空间、文件权限和 ACL、挂载模式、PV/PVC 描述、日志,但没有发现任何特殊情况。由于xxx-media-pv-resource-claim
PVC 访问模式是 RWX,我们尝试将其与另一个测试 pod 一起使用,但得到了相同的错误。我们也尝试在 Google 上搜索这个问题,但没有成功。
请帮助解决该问题。
答案1
不支持以下情况:
k8s master: v1.14.1
k8s workers: v1.16.0