问题标签 [rook-storage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - Rook ceph 在 Kubernetes 上坏了?
在本地 k8s 1.16 上使用 Ceph v1.14.10、Rook v1.3.8。在 10 天没有任何问题之后,我们决定排空一些节点,然后,所有移动的 pod 都无法再附加到它们的 PV,看起来 Ceph 集群坏了:
我的 ConfigMaprook-ceph-mon-endpoints
引用了 2 个缺失的 mon pod IP:
但
这是正常的还是我必须运行一种“和解”任务来用新的 mon pod IP 更新 CM?
(可能与https://github.com/rook/rook/issues/2262有关)
我不得不手动更新:
- 秘密车头配置
- cm rook-ceph-mon-endpoints
- cm rook-ceph-csi-config
kubernetes - 从磁盘恢复 Rook 集群
当从所有节点中删除所有 /var/lib/rook/ 目录时,有什么方法可以恢复数据?我已经恢复了我的集群,但 rook 没有拾取我原来的 Ceph 驱动器分区。
kubernetes - 卷“rook-ceph-crash-collector-keyring”的 MountVolume.SetUp 失败:找不到秘密“rook-ceph-crash-collector-keyring”
我正在尝试使用 rook 在 kubernetes 集群上配置 ceph,我运行了以下命令:
我有三个带有附加卷的工作节点,并且在主节点上,除了三个节点的 rook-ceph-crashcollector pod 之外,所有创建的 pod 都在运行,当我描述这些 pod 时,我收到了这条消息
但是所有节点都在运行和工作
storage - 这个计算正确吗?(车复制)
如果 1 个 OSD 崩溃,rook-ceph 最终会尝试将丢失的数据复制到仍在工作的 OSD 上,还是等待所有 OSD 恢复健康?假设是这样,我可以解释我是如何计算的:
我开始为 kubernetes PVC 和 3 个 745 GB 的节点(总共 2.23 TB)预置 1.71 TB。Rook 的复制因子为 2 (RF=2)。
为了使复制工作,我需要 2 倍 1,71 TB(3,42 TB),所以我添加了 2 个节点,每个节点 745 GB(总共 3,72 TB)假设我使用了所有 1,71 TB 的预置。
如果我丢失了一个 OSD,我的 K8S 集群仍然运行,因为数据被复制了,但是当丢失的数据在仍然工作的 OSD 上被复制时,其他 OSD 可能会崩溃,因为假设 OSD 总是均匀分布(我知道这在很长一段时间内是不正确的)跑) :
- 我的集群上有 290 GB 未使用空间(总共 3,72 - 3,42 PVC 配置)
- 每个 OSD 58 GB (290 / 5)
- 崩溃的 OSD 有 687 GB(总共 745 个磁盘 - 58 GB 未使用)
- Ceph 尝试在剩余的每个 OSD 上复制 172 GB 缺失数据 (687/4)
- 这太多了,因为我们只剩下 58 GB,这应该会导致 OSD 故障级联
如果我有 6 个节点而不是 5 个,我可以无限期地释放 1 个 OSD:
- 新池为 4.5 TB (6x745)
- 我在集群上有 1+ TB 可用空间(总共 4,5 - 3,42 PVC 配置)
- 每个 OSD 166+ GB (~1 TB / 6)
- 崩溃的 OSD 最大有 579+ GB 数据。(745 - 166)
- Ceph 尝试在剩余的每个 OSD 上复制少于 100 GB 的缺失数据 (579 / 6)
- 这小于每个 OSD 上的可用空间(166+ GB)所以复制再次工作只剩下 5 个节点但如果另一个 OSD 崩溃我注定要失败。
最初的假设是否正确?如果是这样,数学听起来对你吗?
kubernetes - CephFS 无法附加或挂载卷:unmounted volumes=[image-store]
我无法在 cephfs 上启动和运行我的 Kube 注册表。我正在使用 rook 来设置这个集群。如您所见,我无法附加该卷。知道什么会导致这个问题吗?任何帮助表示赞赏。
kube-registry.yaml
Storagelas.yaml
kubectl 描述 pod --namespace=kube-system kube-registry-58659ff99b-j2b4d
ceph 配置程序日志,我重新启动了我的集群,所以名称会不同但输出是相同的
windows - Minikube 服务未显示
您好,我目前正在使用在 Windows 10 上运行的 minikube 设置 rook-cephfs 测试环境。到目前为止,我已经运行了 crds.yaml、common.yaml、operator.yaml 和 cluster-test.yaml。我按照https://github.com/kubernetes/kubernetes/tree/release-1.9/cluster/addons/registry上的指南设置存储。在本指南中,我创建了 ReplicationController 和服务。我遇到的问题是,当我运行 kubectl get svc 时,我看不到该服务。知道为什么它没有出现吗?谢谢
服务.yaml
Docker 注册表
kubernetes - 裸机上的 Rook ceph 块存储 - 如何从 pod 中导出文件?
我正在尝试研究如何从 ceph 块存储中传输文件,例如数据库备份。
我已经按照此处的示例进行操作: https ://github.com/rook/rook/blob/master/Documentation/ceph-block.md ,这样我就可以使用 Wordpress 和 mysql 了rook-ceph-block
。
然后如何从正在运行的 pod 传输文件。例如,如果我想将数据库备份下载到另一台主机上?
kubernetes - RookIO AttachVolume.Attach 卷失败
我有 Kubernetes 1.18 和 rookio 设置,这个 pod 运行了一段时间。Ready
由于某种原因,其中一个节点失去了状态。我重新启动了节点,现在它处于Ready
状态。
但是 Pod 停留在ContainerCreating
状态上。它正在等待安装 rookio PVC
。
吊舱状态
豆荚事件
PVC 附加状态设置为false
我尝试将 pod 移动到不同的节点,仍然是同样的问题。
PV和PVC状态
如何解决这个挂载问题?
谢谢
ceph - pvc 卡在等待创建卷的等待中,无论是通过外部配置程序“rook-ceph.rbd.csi.ceph.com”还是手动创建
我使用 rook 构建了一个 ceph 集群。但是我的 pvc 卡在了待处理状态。当我使用 kubectl describe pvc 时,我发现了来自 persistentvolume-controller 的事件:
我所有的 pod 都处于运行状态:
这里是kubectl logs -n rook-ceph csi-cephfsplugin-provisioner-c68f789b8-dt4jf csi-provisioner
这是工具箱容器中的 ceph 状态:
我想是因为集群的health是health_err,但是我不知道怎么解决……我目前使用raw partitions来构建ceph集群:一个节点上的一个partition,另一个node上的两个partition。
我发现重启几次的pod很少,所以我检查了他们的日志。至于csi-rbdplugin-provisioner pod,在csi-resizer,csi attacher和csi-snapshotter容器中存在相同的错误:
,以及 csi-snapshotter 中的重复错误:
至于mgr pod,有一条重复记录:
mon pod 的名称是 at、av 和 aw 而不是 a、b 和 c 也很奇怪。似乎 mon pod 被删除和创建了好几次,但我不知道为什么。
感谢您的任何建议。
kubernetes - 计算机进入睡眠状态后,Rook Ceph 监视器和 osd 失败
我想我会发布一个在 K8s 上本地运行 Rook Ceph 的问题。我暂时不期待答案,但我认为这些信息可能有用。
环境:
- 带有 MicroK8s 的 WSL2
- 测试集群设置为 1 mon 和 osd 的 Rook Ceph
- 为 OSD 挂载的 VHDX
/var/lib/rook/mon-{a,b,c}
监视器的路径。
如何重现
- 将具有上述设置的 rook-ceph 部署到您的 K8s 集群。
- 在所有 pod 运行后,让您的机器进入睡眠状态。
- 恢复机器并检查 rook-ceph 命名空间中的 pod
- 看到 osd 是 missig 并检查监控日志是否有错误。
如何手动修复
- 删除
/var/rook/mon-{a,b,c}
目录 - 删除监控器
- 删除 rook ceph operator pod
- 一切都应该重新启动并再次工作
我希望这对某人有所帮助,我们会找到更好的解决方法。