cephadm部署ceph quincy版本,使用ceph-csi连接

news/2024/7/12 2:51:30 标签: ceph

环境说明

IP主机名角色

存储设备

192.168.2.100

master100

mon,mgr,osd,mds,rgw

大于5G的空设备
192.168.2.101node101mon,mgr,osd,mds,rgw大于5G的空设备
192.168.2.102node102mon,mgr,osd,mds,rgw大于5G的空设备

关闭防火墙

关闭并且禁用selinux

配置主机名/etc/hosts

配置ssh免密登录

配置时间同步chrony

安装docker服务

配置ceph国内镜像 (ubuntu server 20.04)

wget -q -O- 'https://mirrors.aliyun.com/ceph/keys/release.asc' |  apt-key add - 

apt-add-repository 'deb https://mirrors.aliyun.com/ceph/debian-quincy/ focal main'

apt update

参考Get Packages — Ceph Documentation

安装cephadm

curl https://ghproxy.com/https://raw.githubusercontent.com/ceph/ceph/quincy/src/cephadm/cephadm -o cephadm

chmod +x cephadm

./cephadm add-repo --release quincy

./cephadm install ceph-common ceph

./cephadm install

which cephadm

which ceph

初始化ceph集群

cephadm bootstrap --mon-ip 192.168.2.100

添加新节点

ssh-copy-id -f -i /etc/ceph/ceph.pub root@node101

ssh-copy-id -f -i /etc/ceph/ceph.pub root@node102

ceph orch host add node101 或 ceph orch host add node101 192.168.2.101

ceph orch host add node102 或 ceph orch host add node102 192.168.2.102

ceph orch host ls

部署MON

ceph orch apply mon master100,node101,node102

部署OSD

查看可用的存储设备

ceph orch device ls

方式1: 让ceph使用所有可用的存储设备

ceph orch apply osd --all-available-devices

方式2:手工添加存储设备

ceph orch daemon add osd master100:/dev/sdb

ceph orch daemon add osd node101:/dev/sdb

ceph orch daemon add osd node102:/dev/sdb

部署mds

ceph orch apply mds cephfs --placement=”3 master100 node101 node102”

部署rgw

ceph orch apply rgw myrealm myzone --placement=”3 master100 node101 node102”

部署mgr

ceph orch apply mgr master100,node101,node102

查看状态

访问ceph dashboard

https://192.168.2.100:8443

接下来开始部署ceph-csi

git clone -b release-v3.8 https://github.com/ceph/ceph-csi.git

创建一个pool

ceph osd pool create kubernetes

rbd pool init kubernetes

创建用户client.kubernetes

生成ceph-csi ConfigMap

运行ceph mon dump获取ceph集群信息

kubectl apply -f csi-config-map.yaml

生成csi-kms-config-map.yaml

kubectl apply -f csi-kms-config-map.yaml

生成ceph-config-map.yaml

kubectl apply -f ceph-config-map.yaml

创建Secret

csi-rbd-secret.yaml

kubectl apply -f csi-rbd-secret.yaml

配置ceph-csi插件

kubectl apply -f deploy/rbd/kubernetes/csi-provisioner-rbac.yaml

kubectl apply -f deploy/rbd/kubernetes/csi-nodeplugin-rbac.yaml

修改csi-rbdplugin-provisioner.yaml

sed -i ‘s/cephcsi:canary/cephcsi:v3.8.0/g’ csi-rbdplugin-provisioner.yaml

sed -i ‘s/registry.k8s.io\/sig-storage/registry.aliyuncs.com\/google_containers/g’ csi-rbdplugin-provisioner.yaml

kubectl apply -f csi-rbdplugin-provisioner.yaml

修改csi-rbdplugin.yaml

sed -i ‘s/cephcsi:canary/cephcsi:v3.8.0/g’ csi-rbdplugin.yaml

sed -i ‘s/registry.k8s.io\/sig-storage/registry.aliyuncs.com\/google_containers/g’ csi-rbdplugin.yaml

kubectl apply -f csi-rbdplugin.yaml

创建StorageClass

ceph-csi-rbd-sc.yaml

创建pvc

ceph-csi-rbd-pvc.yaml

创建pod

ceph-csi-rbd-pod.yaml

查看创建的PVC

查看rbd设备

创建cephfs

ceph osd pool create cephfs_data 32 32

ceph osd pool create cephfs_metadata 32 32

ceph fs new cephfs cephfs_metadata cephfs_data

生成ceph-csi ConfigMap

和rbd相同,不用重复执行。

生成csi-kms-config-map.yaml

和rbd相同,不用重复执行。

生成ceph-config-map.yaml

和rbd相同,不用重复执行。

创建Secret,这里使用ceph的管理员账户

ceph-csi-cephfs-secret.yaml

kubectl apply -f ceph-csi-cephfs-secret.yaml

配置ceph-csi插件

kubectl apply -f deploy/cephfs/kubernetes/csi-nodeplugin-rbac.yaml

kubectl apply -f deploy/cephfs/kubernetes/csi-provisioner-rbac.yaml

修改csi-cephfsplugin-provisioner.yaml

sed -i ‘s/cephcsi:canary/cephcsi:v3.8.0/g’ csi-cephfsplugin-provisioner.yaml

sed -i ‘s/registry.k8s.io\/sig-storage/registry.aliyuncs.com\/google_containers/g’ csi-cephfsplugin-provisioner.yaml

kubectl apply -f csi-cephfsplugin-provisioner.yaml

修改csi-cephfsplugin.yaml

sed -i ‘s/cephcsi:canary/cephcsi:v3.8.0/g’ csi-cephfsplugin.yaml

sed -i ‘s/registry.k8s.io\/sig-storage/registry.aliyuncs.com\/google_containers/g’ csi-cephfsplugin.yaml

kubectl apply -f csi-cephfsplugin.yaml

创建StorageClass

ceph-csi-cephfs-sc.yaml

创建pvc

创建pod

参考资料

https://github.com/ceph/ceph-csi/blob/devel/docs/deploy-rbd.md

https://github.com/ceph/ceph-csi/blob/devel/docs/deploy-cephfs.md


http://www.niftyadmin.cn/n/5215575.html

相关文章

1.如何修改seruat对象的行名 2.FeaturePlot如何把所有阳性表达的spot放到图的前面

本有解决标题中的两个问题 1.答案是修改不了,不如重新制作一个seurat对象。 试图使用rownames(obj)featurenames是不成功的 记录 客户需求遇到一个问题:作者提供的rds文件行名为ensemble id,如何改成gene symbol。 …

Nginx:配置文件详解

一、Nginx配置文件 main配置段:全局配置 events段:定义event工作模式 http {}:定义http协议配置 支持使用变量: 内置变量:模块会提供内建变脸定义 自定义变量:set var_name value 二、 主…

来自Microsoft Teams的摄像头背景图片

原文件在👆,下面是预览图 如果你安装了Microsoft Teams也可以搜索MSTeams,就在MSTeams/Backgrounds

《微信小程序开发从入门到实战》学习三十一

3.4 开发参与投票页面 3.4.9 显示投票结果 在实际使用中,一个用户不能对同一个投票进行重复提交,因此需要向服务器端提交投票结果和提交用户ID。另外页面,需要完善。用户提交完投票后 ,还需要显示投票目前的结果,提交…

【数据库设计和SQL基础语法】--数据库设计基础--数据规范化和反规范化

一、 数据规范化 1.1 数据规范化的概念 定义 数据规范化是数据库设计中的一种方法,通过组织表结构,减少数据冗余,提高数据一致性和降低更新异常的过程。这一过程确保数据库中的数据结构遵循一定的标准和规范,使得数据存储更加高…

sqlite外键约束 保证数据一致性

1. 外键约束 在SQLite中,可以通过使用外键(Foreign Key)约束和CASCADE选项来实现通过外键删除相关信息。 CASCADE选项是指在主键表中删除记录时,相应的外键表中的相关记录也将被自动删除。 -- 创建主键表 CREATE TABLE Persons…

MySQL介绍及安装

MySQL介绍及安装 一、MySQL概述 1、关系型数据库与非关系型数据库 RDBMS(relational database management system),既关系型数据库管理系统。 简单来说,关系型数据库,是指采用了二维表格来组织数据的数据库。 扩展…

Java中的jvm——面试题+答案(JVM的高级概念和调优技巧,包括垃圾回收、内存分析、优化技术等)——第16期

涉及Java虚拟机(JVM)高级概念和调优技巧的面试题以及简要答案: 什么是JVM调优?有哪些常见的JVM调优参数? 答案: JVM调优是通过调整JVM的参数和配置,以提高Java应用程序的性能和稳定性。常见的JV…