使用rook搭建Ceph集群

这篇具有很好参考价值的文章主要介绍了使用rook搭建Ceph集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

宿主机:

MacBook Pro(Apple M2 Max)

VMware Fusion Player 版本 13.0.2 

VM软硬件:

ubuntu 22.04.2

4核 CPU,5G 内存,40G硬盘

*每台机器分配硬件资源很重要,可以适当超过宿主机的资源量,否则会导致各种问题

IP和角色(163为master,其他为node):

192.168.19.163 k8smaster

192.168.19.161 k8sworker3

192.168.19.162 k8sworker2

192.168.19.164 k8sworker1

k8s套件:

Kubernetes v1.28.0

Docker version 24.0.5

containerd.io 1.6.22

Rook v1.12.2

1、确保各机器时间同步

配置参考:Ubuntu开启NTP时间同步_ubuntu 同步时间_现代的三流魔法使的博客-CSDN博客

2、保证每台worker节点都存在一个裸磁盘

VM关机后直接在设置中添加 “新硬盘”即可。

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

添加好新硬盘再启动虚拟机,执行如下 lsblk -f 即可查看到新的硬盘名称,笔者这里为 nvme0n2,注意 FSTYPE列的值为空。

保证除master外的k8sworker1、k8sworker2、k8sworker3这3台机器上都有新硬盘。

 lsblk -f

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

3、下载Rook v1.12.2源代码

git clone --single-branch --branch v1.12.2 ​​​​​​​https://github.com/rook/rook.git

  笔者这里下载后的目录是 /home/zhangzhaokun/rook,接下来的步骤都是基于这个目录来的。

4、修改Rook的CSI镜像地址

进入目录rook/deploy/examples修改Rook的CSI镜像地址,原本的地址是registry.k8s.io,由于墙的原因国内访问不了,需要统一替换为registry.lank8s.cn。

至于registry.lank8s.cn是什么可以参考文档 lank8s.cn是什么

cat operator.yaml |grep IMAGE

结果如下:

​​​​​​​使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

 修改后的内容参考如下:

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

5、修改operator.yam配置

cat operator.yaml |grep DISCOVERY

ROOK_ENABLE_DISCOVERY_DAEMON: "false"

需要修改为:true

6、提前拉取rook的镜像

1)找到 operator.yaml 文件中的镜像

  1.1)找"image:"格式的镜像文件:

cat operator.yaml |grep "image:"

    结果如下:

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

 1.2)找“_IMAGE"格式的镜像文件:

 cat operator.yaml |grep "_IMAGE"

     结果如下:

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

2)找到 cluster.yaml文件中的镜像

cat cluster.yaml |grep image

 结果如下:

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

3)通过containerd提前拉取镜像

这里就要看人品了,可能有的时候速度超级慢,甚至会失败,有的时候又很快,在速度超级慢的时候切换一下网络(比如从移动切换为电信WI-FI)可能又巨快速了。

sudo ctr images pull docker.io/rook/ceph:v1.12.2
sudo ctr images pull quay.io/csiaddons/k8s-sidecar:v0.7.0
sudo ctr images pull quay.io/ceph/ceph:v17.2.6
sudo ctr images pull quay.io/cephcsi/cephcsi:v3.9.0
sudo ctr images pull registry.lank8s.cn/sig-storage/csi-node-driver-registrar:v2.8.0
sudo ctr images pull registry.lank8s.cn/sig-storage/csi-resizer:v1.8.0
sudo ctr images pull registry.lank8s.cn/sig-storage/csi-provisioner:v3.5.0
sudo ctr images pull registry.lank8s.cn/sig-storage/csi-snapshotter:v6.2.2
sudo ctr images pull registry.lank8s.cn/sig-storage/csi-attacher:v4.3.0

7、部署Rook

注意,这里是在进入目录rook/deploy/examples才执行。

kubectl create -f crds.yaml -f common.yaml -f operator.yaml

注意,rook-ceph命名空间下的所有pod都要变为 1/1 Running才算是OK,才能进行下一步。

kubectl get pods -n rook-ceph

NAME                                            READY    STATUS     RESTARTS     AGE

rook-ceph-operator-6ff688d999-wkhcb 1/1    Running 2 (93m ago) 11h

rook-discover-86vc8                              1/1    Running 1 (3h32m ago) 11h

rook-discover-b56f8                               1/1    Running 1 (3h32m ago) 11h

rook-discover-djfqw                                1/1    Running 2 (93m ago) 11h

8、修改cluster.yaml

第1处修改:

useAllNodes: false

useAllDevices: false

第2处修改:

指定Ceph所用到的node和磁盘名称,OSD节点就运行在这些节点上。

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

nodes:
  - name: "k8sworker1"
    devices:
      - name: "nvme0n2"
  - name: "k8sworker2"
    devices:
      - name: "nvme0n2"
  - name: "k8sworker3"
    devices:
      - name: "nvme0n2"

9、部署Ceph集群

kubectl create -f cluster.yaml

创建完成后可以查看Pod的状态,注意osd-0/1/2,mon-a/b/c 这些POD出来的较为靠后,并且有问题的时候往往也是他们状态不正常。

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

查看ceph集群状态:

kubectl get cephcluster -n rook-ceph

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

10、安装ceph客户端工具 toolbox

kubectl apply -f toolbox.yaml

结果如下,找到rook-ceph-tools

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

进入命令行:

kubectl exec -it -n rook-ceph rook-ceph-tools-84f9854d5f-cr7kt -- bash

在命令行下查看ceph的状态:

ceph -s
ceph osd status

输出如下:

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

11、部署Dashboard

部署dashboard:

kubectl create -f dashboard-external-https.yaml

查看service:

kubectl get svc -n rook-ceph

结果如下:

使用rook搭建Ceph集群,ceph,kubernetes,ceph,kubernetes,rook-ceph

可以在宿主机上访问任意一个worker即可进入dashboard:

https://192.168.19.161:31052

用户名默认是admin,密码可以通过以下代码获取:

kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}"|base64 --decode && echo

结果如下:

a's?6XlvZk'75dc7*X[~文章来源地址https://www.toymoban.com/news/detail-673664.html

到了这里,关于使用rook搭建Ceph集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ceph集群搭建

    一、前言      本次搭建ceph集群,使用centos7版本的系统,最高支持ceph版本为15.2.13,如需更高的版本需要使用centos8版本以上的系统,使用cephadm进行搭建,Cephadm 是一个用于部署、管理和监控 Ceph 集群的工具,它是 Ceph 社区官方提供的一种部署方式。Cephadm 的目标是简化 Ceph

    2024年04月15日
    浏览(31)
  • 使用cephadm部署ceph集群

    从红帽ceph5开始使用cephadm代替之前的ceph-ansible作为管理整个集群生命周期的工具,包括部署,管理,监控。 cephadm引导过程在单个节点(bootstrap节点)上创建一个小型存储集群,包括一个Ceph Monitor和一个Ceph Manager,以及任何所需的依赖项。 如下图所示: cephadm可以登录到容器

    2024年01月17日
    浏览(42)
  • Ubuntu20.04使用cephadm部署ceph集群

    Cephadm通过在单个主机上创建一个Ceph单机集群,然后向集群中添加主机以扩展集群,进而部署其他服务。 VMware安装Ubuntu20.04并使用Xshell连接虚拟机:https://blog.csdn.net/gengduc/article/details/134889416 Python3 Systemd Podman或Docker 时间同步chrony或NTP LVM2 主机名hostname 硬盘设备 ip地址 Ceph服务

    2024年02月05日
    浏览(42)
  • 【Ceph】Ceph集群应用详解

    接上文基于ceph-deploy部署Ceph集群详解 Pool是Ceph中 存储Object对象抽象概念 。我们可以将其理解为 Ceph存储上划分的逻辑分区 ,Pool由多个PG组成;而 PG通过CRUSH算法映射到不同的OSD上 ;同时Pool可以设置副本size大小,默认副本数量为3。 Ceph客户端向monitor请求集群的状态,并向P

    2024年02月16日
    浏览(40)
  • Centos stream 8 使用 cephadm 安装 Ceph (17.2.6 quincy)集群

    名称 IP 角色 备注 cephnode120 10.0.49.120 _admin 双网卡 双硬盘/sda/60G  /sdb/160G cephnode121 10.0.49.121 _storage 双网卡 双硬盘/sda/60G  /sdb/160G    cephnode122 10.0.49.122 _storage 双网卡 双硬盘/sda/60G  /sdb/160G centos8 因不再维护需将repos源换成阿里源  保存退出 :wq  cephadm 手动安装系统要求: Pyth

    2024年02月07日
    浏览(33)
  • 【Ceph】基于ceph-deploy部署Ceph集群详解

    DAS(直接附加存储,是 直接接到计算机主板总线上的存储 ) IDE、SATA、SCSI、SAS、USB接口的磁盘 所谓接口就是一种 存储设备驱动下的磁盘设备 ,提供 块级别的存储 NAS(网络附加存储,是 通过网络附加到当前主机文件系统之上的存储 ) NFS、CIFS、FTP 文件系统级别的存储,本

    2024年02月16日
    浏览(38)
  • Ceph:关于Ceph 集群如何访问的一些笔记

    准备考试,整理 Ceph 相关笔记 博文内容涉及,Ceph 集群四种访问方式介绍及 Demo,Ceph 客户端支持的操作介绍 理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式

    2024年02月09日
    浏览(40)
  • 【Ceph集群应用】Ceph块存储之RBD接口详解

    接上文基于ceph-deploy部署Ceph集群详解 (1)创建一个名为rbd-demo的专门用于RBD的存储池 (2)将存储池转换为RBD模式 (3)初始化存储池 (4)创建镜像 (5)镜像管理 查看存储池下存在哪些镜像 查看镜像的详细信息 修改镜像大小 直接删除镜像 推荐使用trash命令,这个命令删除

    2024年02月16日
    浏览(53)
  • Ceph:关于Ceph 集群中池管理的一些笔记

    准备考试,整理 Ceph 相关笔记 博文内容涉及, Ceph 中的 两种 pool 介绍,创建操作管理池 理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的

    2024年02月09日
    浏览(42)
  • 【Ceph集群应用】Ceph对象存储系统之RGW接口详解

    接上文基于ceph-deploy部署Ceph集群详解 (1)对象存储概念 对象存储(object storage)是非结构数据的存储方法,对象存储中每一条数据都作为单独的对象存储,拥有唯一的地址来识别数据对象,通常用于云计算环境中。 不同于其他数据存储方法, 基于对象的存储不使用目录树

    2024年02月17日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包