Centos7 k8s 集群 - Rook Ceph 安装

news2024/11/27 7:34:06

环境准备

基础环境

系统名称操作系统CPU内存硬盘Kubernete 版本Docker版本IP
masterCentos74c4gsdb 20G1.17.023.0.1192.168.1.128
node01Centos74c4gsdb 20G1.17.023.0.1192.168.1.129
node02Centos74c4gsdb 20G1.17.023.0.1192.168.1.130
node03Centos74c4gsdb 20G1.17.023.0.1192.168.1.131

所安装rook/ceph版本:

ceph:v15.2.11 / rook: 1.6.3

硬盘创建

rook的版本大于1.3,无法使用目录创建集群,要使用单独的裸盘进行创建,也就是创建一个新的磁盘,挂载到宿主机,不进行格式化,直接使用即可

sda
├─sda1          xfs                         2a65c467-96ee-406c-b275-2b299f95e3c7   /boot
├─sda2          LVM2_member                 jfvy2n-75dR-P0q4-pVAq-Q64a-Rud3-E1Yf7o
│ └─centos-root xfs                         7aae42ae-f917-43c4-8356-93eaf9e5538d   /
└─sda3
sdb

直接添加一个sdb硬盘,不需要格式化

lvm2 安装

#确认安装lvm2
yum install lvm2 -y
#启用rbd模块
modprobe rbd
cat > /etc/rc.sysinit << EOF
#!/bin/bash
for file in /etc/sysconfig/modules/*.modules
do
  [ -x \$file ] && \$file
done
EOF
cat > /etc/sysconfig/modules/rbd.modules << EOF
modprobe rbd
EOF
chmod 755 /etc/sysconfig/modules/rbd.modules
lsmod |grep rbd

下载Rook

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

Rook operator.yaml 配置修改

cd rook/cluster/examples/kubernetes/ceph
vim operator.yaml

修改Rook CSI镜像地址,原本的地址可能是gcr的镜像,但是gcr的镜像无法被国内访问,所以需要同步gcr的镜像到阿里云镜像仓库

ROOK_CSI_REGISTRAR_IMAGE: "registry.cn-beijing.aliyuncs.com/dotbalo/csi-node-driver-registrar:v2.0.1"
ROOK_CSI_RESIZER_IMAGE: "registry.cn-beijing.aliyuncs.com/dotbalo/csi-resizer:v1.0.1"
ROOK_CSI_PROVISIONER_IMAGE: "registry.cn-beijing.aliyuncs.com/dotbalo/csi-provisioner:v2.0.4"
ROOK_CSI_SNAPSHOTTER_IMAGE: "registry.cn-beijing.aliyuncs.com/dotbalo/csi-snapshotter:v4.0.0"
ROOK_CSI_ATTACHER_IMAGE: "registry.cn-beijing.aliyuncs.com/dotbalo/csi-attacher:v3.0.2"

Rook cluster.yaml 配置修改

vim cluster.yaml
配置osd节点

第一次修改

# 改为false,并非使用所有节点所有磁盘作为osd
useAllNodes: false
useAllDevices: false

第二处修改

nodes:
  - name: "node01"
    deviceFilter: "sdb"
  - name: "node02"
    deviceFilter: "sdb"
  - name: "node03"
    deviceFilter: "sdb"

部署系统

部署ROOK

cd cluster/examples/kubernetes/ceph
kubectl create -f crds.yaml -f common.yaml -f operator.yaml

等待容器启动,只有都running才能进行下一步

rook-ceph-operator-7d95477f88-fs8ck                1/1     Running     0          92m
rook-discover-6r9ld                                1/1     Running     0          92m
rook-discover-86d88                                1/1     Running     0          92m
rook-discover-mwxx6                                1/1     Running     0          92m

创建ceph集群

kubectl create -f cluster.yaml

创建完成后,可以查看pod的状态:

[root@master ceph]# kubectl -n rook-ceph get pod
NAME                                               READY   STATUS      RESTARTS   AGE
csi-cephfsplugin-26rpm                             3/3     Running     0          93m
csi-cephfsplugin-jhpk6                             3/3     Running     0          93m
csi-cephfsplugin-kmxb4                             3/3     Running     0          93m
csi-cephfsplugin-provisioner-5dd4c579b5-cxzm5      6/6     Running     0          93m
csi-cephfsplugin-provisioner-5dd4c579b5-ljs68      6/6     Running     0          93m
csi-rbdplugin-hlvtn                                3/3     Running     0          93m
csi-rbdplugin-jzs8p                                3/3     Running     0          93m
csi-rbdplugin-nnf9g                                3/3     Running     0          93m
csi-rbdplugin-provisioner-7d4bcdf9d6-h62x4         6/6     Running     0          93m
csi-rbdplugin-provisioner-7d4bcdf9d6-s5twx         6/6     Running     0          93m
rook-ceph-crashcollector-node01-676f5f55d8-fzfdx   1/1     Running     0          92m
rook-ceph-crashcollector-node02-54f576478c-qn2j8   1/1     Running     0          91m
rook-ceph-crashcollector-node03-655547d9c4-nlqhd   1/1     Running     0          92m
rook-ceph-mgr-a-77c8c67445-w4z2h                   1/1     Running     1          92m
rook-ceph-mon-a-68f87b6bb9-twcm5                   1/1     Running     0          93m
rook-ceph-mon-b-77bcd7474d-r5cw6                   1/1     Running     0          93m
rook-ceph-mon-c-66847558c6-6dx8r                   1/1     Running     0          92m
rook-ceph-operator-7d95477f88-fs8ck                1/1     Running     0          94m
rook-ceph-osd-0-7885684746-lhgkr                   1/1     Running     0          92m
rook-ceph-osd-1-9f75d7555-b25p2                    1/1     Running     0          91m
rook-ceph-osd-2-58ff6c6c58-kcbjr                   1/1     Running     7          90m
rook-ceph-osd-prepare-node01-shdt2                 0/1     Completed   0          65m
rook-ceph-osd-prepare-node02-774pm                 0/1     Completed   0          65m
rook-ceph-osd-prepare-node03-8mh4j                 0/1     Completed   0          65m
rook-ceph-tools-5f666999d8-dhwsw                   1/1     Running     0          87m
rook-discover-6r9ld                                1/1     Running     0          94m
rook-discover-86d88                                1/1     Running     0          94m
rook-discover-mwxx6                                1/1     Running     0          94m

查看集群部署进度

- 实时查看pod创建进度
kubectl get pod -n rook-ceph -w
 
- 实时查看集群创建进度
kubectl get cephcluster -n rook-ceph rook-ceph -w
 
- 详细描述
kubectl describe cephcluster -n rook-ceph rook-ceph

待osd-x的容器启动,表示安装成功
在这里插入图片描述

安装ceph 客户端工具

Ceph

kubectl  create -f toolbox.yaml -n rook-ceph

待容器Running后,即可执行相关命令

[root@rook-ceph-tools-5f666999d8-dhwsw /]# ceph status
  cluster:
    id:     8ff792cf-570f-4fc7-8300-682d82bc79a9
    health: HEALTH_WARN
            mons are allowing insecure global_id reclaim
            clock skew detected on mon.c
            93 slow ops, oldest one blocked for 503 sec, mon.c has slow ops

  services:
    mon: 3 daemons, quorum a,b,c (age 94m)
    mgr: a(active, since 92m)
    osd: 3 osds: 3 up (since 15m), 3 in (since 78m)

  data:
    pools:   1 pools, 1 pgs
    objects: 0 objects, 0 B
    usage:   3.0 GiB used, 57 GiB / 60 GiB avail
    pgs:     1 active+clean

删除ROOK-CEPH

删除Operator 和相关的资源

kubectl delete -f operator.yaml
kubectl delete -f common.yaml
kubectl delete -f crds.yaml
kubectl delete -f cluster.yaml

删除节点机器上的数据

rm -rf /var/lib/rook

擦除节点机器硬盘上的数据

/dev/mapper/ceph-*
dmsetup ls
dmsetup remove_all
dd if=/dev/zero of=/dev/sdb bs=512k count=1
wipefs -af /dev/sdb

参考资料

  • kubernetes上的分布式存储集群搭建(Rook/ceph)
  • Kubernetes上使用Rook部署Ceph系统并提供PV服务
  • Kubernetes 集群分布式存储插件 Rook Ceph部署
  • k8s集群中安装rook-ceph
  • k8s集群中部署rook+ceph云原生存储

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

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

相关文章

计算两个时间段的差值

计算两个时间段的差值 运行效果&#xff1a; 代码实现&#xff1a; #include<stdio.h>typedef struct {int h; // 时int m; // 分int s; // 秒 }Time;void fun(Time T[2], Time& diff) {int sum_s[2] { 0 }; for (int i 0; i < 1; i) { // 统一为秒数sum_s[…

NI-LabView的DAQ缺少或丢失的解决办法(亲测有效)

DAQmx在Labview中不显示或缺失 问题&#xff1a;在NI Packasge Manager安装完DAQ后在labview中不显示控件解决办法 问题&#xff1a;在NI Packasge Manager安装完DAQ后在labview中不显示控件 在打开测量I/O时&#xff0c;见不到 DAQmx&#xff0c;或者在Express中见不到DAQ助手…

绝地求生:PUBG×杜卡迪联名上线!参与投稿评论赢取精美好礼

PUBG杜卡迪联名活动游戏内现已正式上线&#xff01;我们诚邀与您一起在开拓未知战场和书写新历史的过程中&#xff0c;与杜卡迪一同实现您的极速梦想&#xff01; 在本次的杜卡迪工坊中&#xff0c;更是包含了具备标志性红色在内的6种颜色供您自由选择&#xff0c;一起自由驰骋…

微软电子密码账户严重漏洞???

微软电子密码严重漏洞&#xff1f;&#xff1f;&#xff1f; 如图有网络安全的大佬知道这是怎么回事吗&#xff1f;&#xff1f;&#xff1f;我的猜想 如图 当我登录bilibili网页的时候&#xff0c;我发现微软账号电子钱包保存的密码突然出现了许多我没有拥有的账号&#xff0…

【vue】ref 和 reactive 对比

ref&#xff1a;存储单个数据&#xff0c;如数值&#xff0c;字符串reactive&#xff1a;存储复杂数据&#xff0c;如对象&#xff0c;数组 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"vie…

前端开发攻略---根据音频节奏实时绘制不断变化的波形图。深入剖析如何通过代码实现音频数据的可视化。

1、演示 2、代码分析 逐行解析 JavaScript 代码块&#xff1a; const audioEle document.querySelector(audio) const cvs document.querySelector(canvas) const ctx cvs.getContext(2d)这几行代码首先获取了 <audio> 和 <canvas> 元素的引用&#xff0c;并使用…

Android Studio开发学习(七)———RelativeLayout(相对布局)

在上期中我们对LinearLayout进行了详细的解析&#xff0c;LinearLayout也是我们用的比较多的一个布局,更多的时候更钟情于它的 weight(权重) 属性&#xff0c;等比例划分&#xff0c;对屏幕适配还是 帮助蛮大的;但是使用LinearLayout的时候也有一个问题&#xff0c;就是当界面比…

keepalived2.2.8+drbd9+nfs高可用存储部署

目录 一.本文基于上一篇文章keepalived环境来做的&#xff0c;主机信息如下 二.为两台虚拟机准备添加一块新硬盘设备 三.安装drbd9 1.使用扩展源的rpm包来下载 2.创建资源并挂载到新增的硬盘 3.主设备升级身份 4.主备两个设备手动切换身份演示 四.安装配置nfs 五.安装…

从 SQLite 3.4.2 迁移到 3.5.0(二十)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite---调试提示&#xff08;十九&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 ​ SQLite 版本 3.5.0 &#xff08;2007-09-04&#xff09; 引入了一个新的操作系统接口层&#xff0c; 与所有先前版本的 SQLi…

IDEA2023 开发环境配置

目录 1. 关闭IDEA自动更新1.2 IDEA 新版样式切换 2. Maven配置2.1本地仓库优先加载2.2 maven.config配置文件中 3. 全局配置JDK4. 配置文件编码:UTF-85. 开启自动编译&#xff08;全局配置&#xff09;6. 开启自动导包7. 开启鼠标悬浮&#xff08;提示文档信息&#xff09;8. 设…

jenkins 启动linux节点时 控制台中文显示问号乱码

新增一个jenkins节点时&#xff0c;遇到了控制台中文输出问号的问题。 网上各种配置jenkins的全局变量&#xff0c;都不行。 最终是 节点列表 ->对应节点 -> 启动方式 -> 高级 添加JVM选项 -Dfile.encodingUTF-8

HarmonyOS实战开发-WebSocket的使用。

介绍 本示例展示了WebSocket的使用&#xff0c;包括客户端与服务端的连接和断开以及客户端数据的接收和发送。 WebSocket连接&#xff1a;使用WebSocket建立服务器与客户端的双向连接&#xff0c;需要先通过createWebSocket方法创建WebSocket对象&#xff0c;然后通过connect…

2、JVM内存模型深度解析

JVM整体结构及内存模型 根据 JVM 规范&#xff0c;JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 JVM分为五大模块&#xff1a; 类装载器子系统 、 运行时数据区 、 执行引擎 、 本地方法接口 和 垃圾收集模块 。 方法区Java8之后的变化 移除了 Pe…

每日一题---OJ题: 链表的回文结构

片头 嗨! 小伙伴们,大家好! 今天我们来一起学习这道OJ题--- 链表的回文结构 嗯...这道题好像不是很难,我们来分析分析 举个例子: 我们可以看到,上图中的两个链表都是回文结构: 即链表的回文结构是指一个链表中的结点值从前往后读和从后往前读都是一样的结构。也就是说&#xf…

蓝桥杯 — —灵能传输

灵能传输 友情链接&#xff1a;灵能传输 题目&#xff1a; 输入样例&#xff1a; 3 3 5 -2 3 4 0 0 0 0 3 1 2 3输出样例&#xff1a; 3 0 3思路&#xff1a; 题目大意&#xff1a;给出一个数组&#xff0c;每次选择数组中的一个数&#xff08;要求不能是第一个数与最后一个…

Rust语言入门第二篇-Cargo教程

文章目录 Rust语言入门第二篇-Cargo教程一&#xff0c;Cargo 是什么二&#xff0c;Cargo教程Cargo.toml文件src/main.rs 文件构建并运行Cargo项目 Rust语言入门第二篇-Cargo教程 本节提供对cargo命令行工具的快速了解。我们演示了它为我们生成新包的能力&#xff0c;它在包内编…

数据分类分级概念、方法

数据分类分级概念&#xff1a; 根据《GB/T 38667-2020 信息技术-大数据-数据分类指南》的定义&#xff0c;数据分类是根据数据的属性或特征&#xff0c;按照一定的原则和方法进行区分和归类&#xff0c;以便更好地管理和使用数据。数据分类不存在唯一的分类方式&#xff0c;会…

KKVIEW远程远程访问家里电脑

远程访问家里电脑&#xff1a;简易指南与价值所在 在数字化时代&#xff0c;电脑已成为我们日常生活和工作中不可或缺的工具。有时&#xff0c;我们可能在外出时急需访问家中电脑里的某个文件或应用&#xff0c;这时&#xff0c;远程访问家里电脑就显得尤为重要。本文将简要介…

中移物联网 OneOS 操作系统环境搭建和工程创建

一、官网 OneOS Lite是中国移动针对物联网领域推出的轻量级操作系统&#xff0c;具有可裁剪、跨平台、低功耗、高安全等特点&#xff0c;支持ARM Cortex-A和 Cortex-M、MIPS、RISC-V等主流芯片架构&#xff0c;兼容POSIX、CMSIS等标准接口&#xff0c;支持Javascript、MicroPyt…

异构超图嵌入的图分类 笔记

1 Title Heterogeneous Hypergraph Embedding for Graph Classification&#xff08;Xiangguo Sun , PictureHongzhi Yin , PictureBo Liu , PictureHongxu Chen , PictureJiuxin Cao , PictureYingxia Shao , PictureNguyen Quoc Viet Hung&#xff09;【WSDM 2021】 2 Co…