kubernetes - 卷“mongo-two”的 MountVolume.SetUp 失败:lstat /var/lib/mongo:没有这样的文件或目录
问题描述
我正在尝试让 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 helm chart 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
...
现有目录上仍然有“没有这样的目录”。有什么不正确的?如果需要,我可以提供额外的数据。
谢谢
解决方案
问题来自容器化的 kubelet(因为安装了 Rancher)
我在 kubelet 容器中添加了一个卷定义,就可以了。
对于那些对在 Rancher - Kubernetes 安装中创建持久本地卷感兴趣的人,只需将其添加到您的集群 yaml 中,以便 kubelet 可以挂载您的卷:
services:
kubelet:
extra_binds:
- /path_to_mount:/path_to_mount:rshared
不要忘记两个点 rshared。
推荐阅读
- android - Firebase 问题
- sql - 如何在sql teradata中找到最近的邻居?
- c# - C#:返回通用列表的问题
- vba - 使用 VBA for Microsoft Word 查找和替换具有通配符的特定内容
- spring-mvc - 设置 Spring-Boot Maven 项目
- python - Python - 使用选择器的非阻塞套接字
- wordpress - 带分页的 Wordpress 自定义帖子类型(带价格的元数据)
- python - 从字符串将键分配给字典
- asp.net-core - ASP 核心 - Url.Action 不尊重本地化路由
- angular - 如何停止
从外部按钮点击触发