使用rook搭建Ceph集群

news/2024/5/10 16:09:18/文章来源:https://blog.csdn.net/zhangzhaokun/article/details/132424595

宿主机:

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关机后直接在设置中添加 “新硬盘”即可。

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

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

 lsblk -f

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

结果如下:

​​​​​​​

 修改后的内容参考如下:

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:"

    结果如下:

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

 cat operator.yaml |grep "_IMAGE"

     结果如下:

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

cat cluster.yaml |grep image

 结果如下:

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节点就运行在这些节点上。

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出来的较为靠后,并且有问题的时候往往也是他们状态不正常。

查看ceph集群状态:

kubectl get cephcluster -n rook-ceph

10、安装ceph客户端工具 toolbox

kubectl apply -f toolbox.yaml

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

进入命令行:

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

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

ceph -s
ceph osd status

输出如下:

11、部署Dashboard

部署dashboard:

kubectl create -f dashboard-external-https.yaml

查看service:

kubectl get svc -n 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[~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_160298.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习在大数据分析中的应用

文章目录 机器学习在大数据分析中的原理机器学习在大数据分析中的应用示例预测销售趋势客户细分和个性化营销 机器学习在大数据分析中的前景和挑战前景挑战 总结 🎉欢迎来到AIGC人工智能专栏~探索机器学习在大数据分析中的应用 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&…

Vim学习(四)——命令使用技巧

命令模式 打开文本默认模式,按**【ESC】**重新进入 【/关键字】:搜索匹配关键字 G:最后一行 gg:第一行 hjkl:左下右上 yy: 复制一行 dd:删除一行 p:粘贴 u: 撤销插入模式 按**【i / a / o】**键均可进入文本编辑模式…

如何搭建关键字驱动自动化测试框架?

前言 那么这篇文章我们将了解关键字驱动测试又是如何驱动自动化测试完成整个测试过程的。关键字驱动框架是一种功能自动化测试框架,它也被称为表格驱动测试或者基于动作字的测试。关键字驱动的框架的基本工作是将测试用例分成四个不同的部分。首先是测试步骤&#…

在mac下,使用Docker安装达梦数据库

前言:因为业务需要安装达梦数据库 获取官网下载tar包(达梦官网的下载页面https://www.dameng.com/list_103.html),或者通过命令 一、下载tar包 命令下载:wget -O dm8_docker.tar -c https://download.dameng.com/eco/…

【无标题】 欢迎使用Markdown编辑器

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现WOA-RF鲸鱼优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)效果一览…

【中危】Apache Ivy<2.5.2 存在XXE漏洞 (CVE-2022-46751)

漏洞描述 Apache Ivy 是一个管理基于 ANT 项目依赖关系的开源工具,文档类型定义(DTD)是一种文档类型定义语言,它用于定义XML文档中所包含的元素以及元素之间的关系。 Apache Ivy 2.5.2之前版本中,当解析自身配置、Ivy 文件或 Apache Maven 的 POM 文件…

power designer 反向工程过程已中断,原因是某些字符无法通过ANSI-->UTF-16转换进行映射

起因:sqlserver导入sql时报错,一查询是power designer 反向工程过程已中断,原因是。某些字符无法通过ANSI-->UTF-16转换进行映射(会导致数据丢失) 解决办法: 导入成功

Linux下的Shell编程——正则表达式入门(四)

前言: 正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 在Linux 中,grep,sed,awk 等文本处理工具都支持…

判断三角形

int main() {int a 0;int b 0;int c 0;scanf("%d%d%d", &a, &b, &c);if ((ab>c)&&(ac>b)&&(bc>a)){if (a b && b c){printf("等边三角形\n");}else if ((a b && b ! c) || (a c && c…

Lnton羚通云算力平台OpenCV-PythonCanny边缘检测教程

Canny 边缘检测是一种经典的边缘检测算法,由 John F. Canny 在 1986 年提出。它被广泛应用于计算机视觉和图像处理领域,用于检测图像中的边缘。 ​【原理】 1. 去噪 由于边缘检测非常容易收到图像的噪声影响,第一步使用 5x5 高斯滤波去除图…

系统架构:数据库

文章目录 数据库设计关系代数规范化理论求候选键特殊函数依赖Armstrong公理 数据库设计 步骤产出说明1.根据数据要求和处理要求进行需求分析数据流图、数据字典、需求说明书等分析数据流向、数据详细含义等,分析具体需求2.对现实世界进行抽象,进行概念结…

Leetcode.73矩阵置零

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法 class Solution {public void setZeroes(int[][] matrix) {int m matrix.length, n matrix[0].length;boolean[] row new boolean[m];boolean[] col…

[oneAPI] 基于BERT预训练模型的英文文本蕴含任务

[oneAPI] 基于BERT预训练模型的英文文本蕴含任务 Intel DevCloud for oneAPI 和 Intel Optimization for PyTorch基于BERT预训练模型的英文文本蕴含任务语料介绍数据集构建 模型训练 结果参考资料 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0…

Kyligence Copilot 登陆海外,斩获 Product Hunt 日榜 TOP 2

8月14日,AI 数智助理 Kyligence Copilot 在全球知名科技产品平台 Product Hunt 上线,其以出色的产品创新实力,在激烈的竞争中脱颖而出,仅仅在 24 小时内收获了超过 400 个投票和近 200 条支持评论,荣登当日产品榜排名第…

Git如何操作本地分支仓库?

基本使用TortoiseGit 操作本地仓库(分支) 分支的概念 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,避免影响开发主线。多线程开发,可以同时开启多个任务的开发,多个任务之间互不影响。 为何要…

YOLOv8教程系列:三、K折交叉验证——让你的每一份标注数据都物尽其用(yolov8目标检测+k折交叉验证法)

YOLOv8教程系列:三、K折交叉验证——让你的每一份标注数据都物尽其用(yolov8目标检测k折交叉验证法) 0.引言 k折交叉验证(K-Fold Cross-Validation)是一种在机器学习中常用的模型评估技术,用于估计模型的性…

Maven聚合项目(微服务项目)创建流程,以及pom详解

1、首先创建springboot项目作为父项目 只留下pom.xml 文件&#xff0c;删除src目录及其他无用文件 2、创建子项目 子项目可以是maven项目&#xff0c;也可以是springboot项目 3、父子项目关联 4、父项目中依赖管理 <?xml version"1.0" encoding"UTF-8&qu…

idea连接linux远程docker详细教程操作

1&#xff1a;修改docker配置文件docker.service vi /usr/lib/systemd/system/docker.service2&#xff1a;找到 ExecStart&#xff0c;在最后面添加 -H tcp://0.0.0.0:2375 # for containers run by docker ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/…

Echarts面积图2.0(范围绘制)

代码&#xff1a; // 以下代码可以直接粘贴在echarts官网的示例上 // 范围值 let normalValue {type: 内部绘制,minValue: 200,maxValue: 750 } // 原本的绘图数据 let seriesData [820, 932, 901, 934, 1290, 1330, 1320] let minData Array.from({length: seriesData.len…