gpt4 book ai didi

kubernetes - 能够使基本的Rook/Ceph示例工作,但所有数据显然位于单个节点上

转载 作者:行者123 更新时间:2023-12-02 11:43:33 25 4
gpt4 key购买 nike

使用Rook 0.9.3,我能够在三节点Kubernetes集群(1个主服务器,两个工作服务器)上为MySQL数据库建立基于Ceph的目录,如下所示:

kubectl create -f cluster/examples/kubernetes/ceph/operator.yaml
kubeclt create -f cluster/examples/kubernetes/ceph/cluster.yaml
vim cluster/examples/kubernetes/ceph/storageclass.yaml # change xfs to ext4
kubectl create -f cluster/examples/kubernetes/ceph/storageclass.yaml
kubectl create -f cluster/examples/kubernetes/mysql.yaml

现在将 bash放入容器 wordpress-mysql-*中时,我可以看到 /var/lib/mysql是从 /dev/rbd1挂载的。如果我在此目录中创建了一个随机文件,然后删除了Pod,则在出现Pod的新实例时,该文件将继续存在。

我的第一个工作人员将这些目录包含在 /var/lib/rook中: mon-a mon-c mon-d osd0 rook-ceph。我的第二个工作人员在 /var/lib/rook中只包含一个目录: mon-b。这个和其他证据(来自 df)表明,Rook(以及扩展名为Ceph)将其所有文件数据(例如构成已安装 /var/lib/mysql的所有块)存储在 /var/lib/rook/osd0中,即一次在单个节点上存储。

我本来希望块分布在多个节点上,所以当一个节点(在我的情况下,第一个工作节点)发生故障时,数据访问仍然可用。这是天真的期望吗?如果没有,如何配置Rook?另外,我在两个工作节点上都有第二个未格式化的磁盘,我希望Rook / Ceph使用它们。如何做到这一点?

最佳答案

用于将其他分区用作osd
您应该更改cluster.yml并添加

nodes:
- name: "kube-node1"
devices:
- name: "sdb"
- name: "kube-node2"
devices:
- name: "sdb"
- name: "kube-node3"
devices:
- name: "sdb"

关于kubernetes - 能够使基本的Rook/Ceph示例工作,但所有数据显然位于单个节点上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55744843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com