我正在尝试使mongo-replicaset图表正常工作。
Kubelet在部署mongo-replicaset图表时报告此错误:
MountVolume.SetUp failed for volume "mongo-two": lstat /mongo/data: no such file or directory
在每个节点上,/ mongo / data文件夹存在,使我发疯。注意:在节点上,lstat命令不存在,但是我怀疑kubelet容器要带它。
我有3个永久卷:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mongo-[one/two/three]
spec:
capacity:
storage: 40Gi
accessModes:
- ReadWriteOnce
storageClassName: local-storage
local:
path: /mongo/data
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- [one/two/three]
StatefulSet yaml:(mongo-replicaset头盔图3.8.0)
...
volumeMounts:
- mountPath: /data/db
name: datadir
...
volumeClaimTemplates:
- metadata:
creationTimestamp: null
name: datadir
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-storage
resources:
requests:
storage: 40Gi
...
在现有目录上仍然没有“这样的目录”。 什么不对如果需要,我可以提供其他数据。
谢谢
答案 0 :(得分:3)
问题来自容器化的kubelet(由于安装了Rancher)
我将体积定义添加到kubelet容器中,没关系。
对于那些对在Rancher-Kubernetes安装中创建持久本地卷感兴趣的人,只需将其添加到群集yaml中,以便kubelet可以挂载您的卷:
services:
kubelet:
extra_binds:
- /path_to_mount:/path_to_mount:rshared
别忘了共享两个点。
答案 1 :(得分:0)
在状态集中,您必须具有带有subPath
字段的卷预配器。如果您从statefulset yaml文件中删除该subPath
字段,则不会遇到此错误。
问题在于,如果部署/状态集中存在子路径字段,即使该字段为空,主机路径卷配置程序中也会存在一个错误,该错误会出现“ lstat:无此类文件或目录”错误。此错误不会让statefulset出现,而是进入containerCreatingConfigErr(在kubeadm上与我一起发生)
有关更多信息,您可以访问此链接