0

在集群更新后,在我的 kubernetes 集群(v1.14.7)中,一个节点没有正确恢复。来自该节点的 rook osd 没有重新安排(如文档中所述)所以我试图手动添加一个新的 OSD。

我的ceph status回报

这里

我的ceph osd tree回报

这里

我尝试使用将新的 osd 与节点链接ceph osd crush set osd.0 0.29199 root=default host=gke-dev-dev-110dd9ec-ntww

但它返回: 错误 ENOENT:无法在位置 {host=gke-dev-dev-110dd9ec-ntww,root=default} 设置项目 id 0 名称“osd.0”权重 0.29199:不存在

你知道如何解决这个问题吗?提前致谢

4

2 回答 2

0

对于 rook 用户:https ://rook.io/docs/rook/master/ceph-osd-mgmt.html

一个有解释的博客(中文读者):<a href="https://zhuanlan.zhihu.com/p/140486398" rel="nofollow noreferrer">https://zhuanlan.zhihu.com/p/140486398

于 2020-05-15T13:02:23.790 回答
0

这就是我的建议,与其尝试立即添加新的 osd,不如修复/删除有缺陷的 osd,然后重新创建它。

尝试这个:

1 - 标记出 osd:ceph osd out osd.0
2 - 从粉碎地图中删除:ceph osd crush remove osd.0
3 - 删除大写字母:ceph auth del osd.0
4 - 删除 osd:ceph osd rm osd.0
5 -删除部署: kubectl delete deployment -n your-cluster-namespace rook-ceph-osd-0
6 - 编辑你的 osd id 和底层设备的配置部分。
      kubectl edit configmap -n your-cluster-namespace rook-ceph-osd-nodename-config
      delete {"/var/lib/rook":x}
7 - 通过删除 rook-operator pod 重新启动 rook-operator pod
8 - 验证集群的健康状况:ceph -s;ceph osd树

希望这可以帮助!

于 2020-01-23T19:28:53.947 回答