rook-ceph部署

news2024/11/22 19:24:20

宿主机:

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

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.coloradmin.cn/o/911712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【php】windows下php运行已有php web项目环境配置教程

php环境配置教程 php安装composer安装扩展安装redis扩展安装 composer install 本文操作系统使用的是win11,软件PhpStorm 2023.1 php安装 要安装的php版本可以在composer.json看到,下载安装对应版本 windows下载地址https://windows.php.net/download …

华为OD机试之报文重排序【Java源码】

题目描述 对报文进行重传和重排序是常用的可靠性机制,重传缓中区内有一定数量的子报文,每个子报文在原始报文中的顺序已知,现在需要恢复出原始报文。 输入描述 输入第一行为N,表示子报文的个数,0 <N ≤ …

海外聚合广告SDK功能比较

目前主流的广告变现平台数量繁多,开发者在选择第三方聚合广告平台时,如何判别?APP开发者有哪些指标来衡量如何选择聚合广告平台呢? 1、接入及运营成本 广告SDK是否容易接入?聚合平台操作是否简单易懂?广告…

AMBA总线协议(5)——AHB(三):猝发传输

一、前言 在之前的文章中我们详细讲述了关于AHB的基本操作流程,主机要先从仲裁器获得授权,然后进行总线的访问,这样可以避免总线冲突,获得授权后,主机给出地址和控制信号,从机根据自身情况进行响应&#xf…

峰会回顾第7期 | 视窗绘制技术演进和新趋势

本文转载自 OpenHarmony TSC 官方微信公众号《峰会回顾第7期 | 视窗绘制技术演进和新趋势》 演讲嘉宾 | 陈秋林 回顾整理 | 廖 涛 排版校对 | 李萍萍 嘉宾简介 陈秋林,华为终端OS资深架构师、菲尔兹Lab主任,长期从事终端OS研发,先后负责Lit…

“MyBatis中的动态SQL、模糊查询与结果映射“

目录 引言1. MyBatis中的动态SQL1.1 if元素1.2 foreach标签 2. MyBatis中的模糊查询三种形式2.1 #{} 模糊查询2.2 ${} 模糊查询2.3 concat() 模糊查询2.4 MyBatis中#与$的区别 3. MyBatis中的结果映射resultType与resultMap的区别 总结 引言 MyBatis是一个强大而灵活的持久层框…

FastDFS+Nginx - 本地搭建文件服务器同时实现在外远程访问「端口映射」

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

关于esp-aliyun的SDK编译常出错的问题1

下载完SDK后一般会将工程文件夹进行修改已适配自己的项目。这时问题就已经存在了。 如下图所示: 阿里云SDK里面的CMakeLists.txt里多处均调用了esp-aliyun这个文件夹。 还是老老实实的别修改esp-aliyun文件名了哈。

【数学建模】清风数模中正课4 拟合算法

拟合算法 在插值算法中,我们得到的曲线一定是要经过所有的函数点的;而用拟合所得到的曲线则不一样,拟合问题中,不需要得到的曲线一定经过给定的点。 拟合的目的是寻求一个函数曲线,使得该曲线在某种准则下与所有的数…

Java“牵手“拼多多商品详情数据、拼多多优惠券信息、拼多多到手价信息获取方法,拼多多API实现批量商品数据抓取示例

拼多多商城是一个网上购物平台,售卖各类商品,包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取拼多多商品详情数据,您可以通过开放平台的接口或者直接访问拼多多商城的网页来获取商品详情信息。以下是两种常用方法的介绍:…

vue3——递归组件的使用

该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>&#xff0c;且包含 typescript 的基础用法 一、使用场景 递归组件 的使用场景&#xff0c;如 无限级的菜单 &#xff0c;接下来就用菜单的例子来学习 二、具体使用 先把菜单的基础内容写出来再说 父…

Django实现音乐网站 ⑿

使用Python Django框架制作一个音乐网站&#xff0c; 本篇主要是加载静态资源和推荐页-轮播图、推荐歌单功能开发。 目录 加载静态资源 引入jquery.js 引入bootstrap资源文件 创建基类模板样式文件 推荐页开发 轮播图开发 下载 加载swiper 自定义引入继承块设置 使用…

CW6B-90A-RCW6B-100A-RCW6B-110A-RCW6B-115A-R三相三线式滤波器

CW4B-10A-S CW4B-20A-S CW4B-30A-S三相三线式滤波器 CW6B-50A-S CW6B-60A-S CW6B-70A-S CW6B-80A-S CW6B-90A-S CW6B-100A-S CW6B-250A-S三相三线式滤波器 CW12B-3A-S(005) CW12B-6A-S(005) CW12B-10A-S(005) CW12B-20A-S(005 CW12B-30A-S(005) CW12B-40A-S(005)三…

代理池在过程中一直运行

Hey&#xff0c;爬虫达人们&#xff01;在爬虫的过程中&#xff0c;要保持代理池的稳定性可不容易。今天就来和大家分享一些实用经验&#xff0c;教你如何让代理池在爬虫过程中一直运行&#xff01;方法简单易行&#xff0c;让你的爬虫工作更顺畅. 在进行爬虫工作时&#xff0…

VisualStudio创建项目模板教程

简介 Visual Studio 项目模板是预先定义的项目结构和设置&#xff0c;可以帮助开发者快速启动新的项目。项目模板中可以包含预配置的文件、资源、设置和代码结构&#xff0c;这样开发者在创建新的项目时就不必从零开始。 以下是Visual Studio项目模板的一些核心点&#xff1a…

HD Supply EDI 到 JSON 方案简介

本文将介绍与HD Supply进行EDI对接&#xff0c;通过调用知行之桥的Admin API及JSON格式来集成业务系统。 准备下载和运行 HD Supply EDI 到 JSON 使用 JSON 生成一系列 EDI 文档与 HD Supply 通信。 下载工作流 下载示例文件 HD Supply EDI到JSON示例流具有预配置的端口…

二、3.中断

中断上半部和下半部是什么&#xff1f; 操作系统是中断驱动的&#xff0c;中断发生后会执行相应的中断处理程序&#xff0c;我们希望 CPU 中断响应的时间越短越好&#xff0c;这样便能响应更多设备的中断。但是中断处理程序还是需要完整执行的&#xff0c;不能光为了提高中断响…

数据结构(3)

线性表是多个具有相同特征的数据的有限序列。 前驱元素&#xff1a;A在B前面&#xff0c;称A为B的前驱元素。 后继元素&#xff1a;B在A后面&#xff0c;称B为A的后继元素。 线性表特征&#xff1a; 1.一个元素没有前驱元素&#xff0c;就是头结点&#xff1b; 2.最后一个…

自己实现 SpringMVC 底层机制 系列之-实现任务阶段 5- 完成 Spring 容器对象的自动装配 -@Autowried

&#x1f600;前言 自己实现 SpringMVC 底层机制 系列之-实现任务阶段 5- 完成 Spring 容器对象的自动装配 -Autowried &#x1f3e0;个人主页&#xff1a;尘觉主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&#xff0c;希望我的文章可以帮助到大家&…

数据挖掘技术在智能外呼系统的应用探索

随着科技的不断发展&#xff0c;人们对于智能化的需求也日益增加&#xff0c;在企业获客领域&#xff0c;智能外呼系统应运而生。智能外呼系统是一种基于人工智能技术的客户服务系统&#xff0c;通过自动化的方式实现客户服务&#xff0c;提高客户满意度和企业效率。数据挖掘技…