k8s云原生rook-ceph pvc快照与恢复(上)

#作者:Unstopabler

文章目录

  • 前言
  • 部署rook-ceph on kubernets条件
  • Ceph快照概述
  • 什么是PVC
  • 安装快照控制器和CRD
    • 1.安装crds资源
    • 2.安装控制器
    • 3.安装快照类

前言

Rook 是一个开源的云原生存储编排器,为各种存储解决方案提供平台、框架和支持,以便与云原生环境进行原生集成。
Rook 将分布式存储系统转变为自管理、自扩展、自修复的存储服务。它使存储管理员的部署、引导、配置、配置、扩展、升级、迁移、灾难恢复、监控和资源管理等任务自动化。简而言之,Rook 就是一组 Kubernetes 的 Operator,它可以完全控制多种数据存储解决方案(例如 Ceph、EdgeFS、Minio、Cassandra)的部署,管理以及自动恢复。rook利用Kubernetes平台的强大功能,通过Kubernetes Operator为每个存储提供商提供服务。Rook目前支持Ceph、NFS、Minio Object Store和CockroachDB。

部署rook-ceph on kubernets条件

  • 已经部署好的kubernetes集群1.19版本或者更高
  • osd节点需要有未格式化文件系统磁盘,至少需要3块硬盘

注:这里pvc快照基于rook-ceph为云原生存储支撑,
部署参考文档:https://rook.io/docs/rook/v1.10/Getting-Started/quickstart/#tldr

rook与kubernets结合架构如如下
在这里插入图片描述

Ceph快照概述

在这里插入图片描述
Ceph rbd块原生提供了快照与克隆的能力,什么是快照?快照就是镜像某个时刻的状态,包括当时已经落盘的数据。制作快照后成为一个只读镜像文件,无法对快照的数据进行写入操作,因此需要保护起来,数据丢失之后可以基于快照进行回滚操作。rbd提供一个好用的功能copy-on-write,即基于快照快速的克隆功能,克隆处理的子镜像和快照是一个相互依赖的关系,可以完成虚拟机秒级的高级特性。
在这里插入图片描述
快照卷作为源数据,提供给上层业务使用应用于对数据只读场景,如开发测试的部分场景。该场景下,先对逻辑卷进行快照创建,将创建好的快照卷提供给上层业务使用,快照卷的只读特性不仅可满足上层业务的访问需求,也可以有效防止误操作对原逻辑卷数据的更改。

Ceph-rbd快照详解 官方文档:https://docs.ceph.com/en/latest/rbd/rbd-snapshot/

什么是PVC

PVC是PersistentVolumeClaim的缩写,pvc描述 Pod想要使用的持久化属性,比如存储大小、读写权限等。PVC是在Kubernetes中一种抽象的存储卷类型,代表了某个具体类型存储的数据卷表达。 其设计意图是分离存储与应用编排,将存储细节抽象出来并实现存储的编排。 这样Kubernetes中存储卷对象独立于应用编排而单独存在,在编排层面使应用和存储解耦。
容器中并没有直接使用rbd块集成,而是通过pvc实现和底层块存储的调用,容器中完成快照制作,需要snapshot的控制器来实现这个功能,snapshot控制器是一个第三方crd,其通过crds的方式和kubernets集成,能够完成pvc快照到底层rbd块的控制逻辑。

安装快照控制器和CRD

1.安装crds资源

下载第三方crds

[root@k8s-master~]#git clone https://github.com/kubernetes-csi/external-snapshotter.git
Cloning into 'external-snapshotter'...
remote: Enumerating objects: 51112, done.
remote: Total 51112 (delta 0), reused 0 (delta 0), pack-reused 51112
Receiving objects: 100% (51112/51112), 64.98 MiB | 1.85 MiB/s, done.
Resolving deltas: 100% (26577/26577), done.
Updating files: 100% (4018/4018), done.

应用crd资源

[root@k8s-master ~]# kubectl apply -f external-snapshotter/client/config/crd/
customresourcedefinition.apiextensions.k8s.io/volumesnapshotclasses.snapshot.storage.k8s.io configured
customresourcedefinition.apiextensions.k8s.io/volumesnapshotcontents.snapshot.storage.k8s.io configured
customresourcedefinition.apiextensions.k8s.io/volumesnapshots.snapshot.storage.k8s.io configured
[root@k8s-master ~]#

查看crd资源

[root@k8s-master ~]# kubectl get customresourcedefinitions.apiextensions.k8s.io | grep volumesnap
volumesnapshotclasses.snapshot.storage.k8s.io    2022-11-23T01:51:36Z
volumesnapshotcontents.snapshot.storage.k8s.io   2022-11-23T01:51:36Z
volumesnapshots.snapshot.storage.k8s.io          2022-11-23T01:51:36Z
[root@k8s-master ~]#

2.安装控制器

[root@k8s-master ~]# kubectl apply -f external-snapshotter/deploy/kubernetes/snapshot-controller/
serviceaccount/snapshot-controller created
clusterrole.rbac.authorization.k8s.io/snapshot-controller-runner created
clusterrolebinding.rbac.authorization.k8s.io/snapshot-controller-role created
role.rbac.authorization.k8s.io/snapshot-controller-leaderelection created
rolebinding.rbac.authorization.k8s.io/snapshot-controller-leaderelection created
deployment.apps/snapshot-controller created
[root@k8s-master ~]#

查看控制器pod运行状态

[root@k8s-master ~]# kubectl get pod -n kube-system -l app=snapshot-controller
NAME                                   READY   STATUS    RESTARTS   AGE
snapshot-controller-5655ff978f-dh5dc   1/1     Running   0          8m12s
snapshot-controller-5655ff978f-fbtch   1/1     Running   0          8m12s
[root@k8s-master ~]#

3.安装快照类

控制器和crds后,为了能够使用快照的功能,需要定义一个volumesnapshotclass,类似storageclass,volumesnapshotclass是专门针对快照功能而提供的存储类,是kubernets中定义的一个特性。

安装方法如下

[root@k8s-master rbd]# pwd
/root/yml/rook/deploy/examples/csi/rbd
[root@k8s-master rbd]# kubectl apply -f snapshotclass.yaml
volumesnapshotclass.snapshot.storage.k8s.io/csi-rbdplugin-snapclass created
[root@k8s-master rbd]#

查看快照类

[root@k8s-master rbd]# kubectl get volumesnapshotclasses.snapshot.storage.k8s.io
NAME                      DRIVER                       DELETIONPOLICY   AGE
csi-rbdplugin-snapclass   rook-ceph.rbd.csi.ceph.com   Delete           38s
[root@k8s-master rbd]#

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

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

相关文章

springcloud04——网关gateway、熔断器 sentinel

目录 注册中心 nacos | eurekaServer |zookeeper(dubbo) 配置中心 nacos | config Server 远程服务调用 httpClient | RestTemplate | OpenFeign 负载均衡服务 ribbon | loadbalancer 网关 zuul | gateway 熔断器 hystrix | sentinel 网关 sentinel 流控 压测工具 1…

XSS跨站脚本攻击详解

一、XSS攻击简介跨站脚本攻击的英文全称是Cross-Site Scripting,为了与CSS有所区别,因此缩写为“XSS”由于同源策略的存在,攻击者或者恶意网站的JavaScript代码没有办法直接获取用户在其它网站的信息,但是如果攻击者有办法把恶意的…

Linux /proc/目录详解

文章目录前言文件说明注意事项前言 在 Linux 系统中,/proc 目录是一个特殊的虚拟文件系统,它提供了对系统内核和进程的访问。/proc 目录中的文件和目录不是真实存在的,它们是在运行时由内核动态生成的,用于提供系统和进程的相关信…

北斗变形监测在地质灾害监测中的应用

内容概要 北斗形变监测系统在地质灾害监测领域发挥着核心作用,该系统基于北斗卫星导航技术,实现对地表变形的精确追踪。通过毫米级精度定位能力,北斗形变监测技术为滑坡等灾害提供关键数据支撑,尤其在偏远地区应用中,单…

2025新征程杯全国54校园足球锦标赛在北京世园公园隆重开幕

2025年8月1日,备受瞩目的2025新征程杯全国54校园足球锦标赛(北京)在北京世园公园盛大拉开帷幕。开幕式上,中国关心下一代健康体育基金会副秘书长、中国青少年研究会理事、全国 54 校园足球人才培养计划创始人何占强主任表示&#…

分类预测 | Matlab实现CPO-PNN冠豪猪算法优化概率神经网络多特征分类预测

分类预测 | Matlab实现CPO-PNN冠豪猪算法优化概率神经网络多特征分类预测 目录分类预测 | Matlab实现CPO-PNN冠豪猪算法优化概率神经网络多特征分类预测分类效果基本介绍程序设计分类效果 基本介绍 1.Matlab实现CPO-PNN冠豪猪算法优化概率神经网络多特征分类预测,运…

机器学习——逻辑回归(LogisticRegression)的核心参数:以约会数据集为例

理解 LogisticRegression 的核心参数:以约会数据集为例 逻辑回归(Logistic Regression)是机器学习中一种基础且重要的分类算法,特别适用于解决二分类和多分类问题。本文将基于 sklearn.linear_model.LogisticRegression 的用法&a…

深入解析 Apache Flink FLIP-511:优化 Kafka Sink 事务处理,减轻 Broker 负载

一、 背景与核心问题:Kafka Sink 事务的痛点 Flink Kafka Sink 在 Exactly-Once 模式下依赖 Kafka 事务来确保数据写入的原子性,并与 Flink 检查点对齐。然而,非优雅关闭(如任务失败、非 stop-with-savepoint 的停止)会…

设计模式:组合模式 Composite

目录前言问题解决方案结构代码前言 组合是一种结构型设计模式,你可以使用它将对象组合成树状结构,并且能像使用独立对象一样使用它们。 问题 如果应用的核心模型能用树状结构表示, 在应用中使用组合模式才有价值。 例如, 你有两…

嵌入式 C 语言入门:函数封装与参数传递学习笔记 —— 从定义到内存机制

前言 大家好&#xff0c;这里是 Hello_Embed。在前一篇笔记中&#xff0c;我们用循环实现了 LED 闪烁&#xff0c;其中重复使用了两段几乎一样的延时代码&#xff1a; for(i 0; i < 100000000; i); // 延时这种重复不仅让代码冗余&#xff0c;还不利于后续修改&#xff08…

第一个大语言模型的微调

模型推理 现在,我们的模型应该能够针对输入的任何短句生成类似尤达大师风格的句子作为回应。 该模型要求其输入格式规范。我们需要构建一个 “消息” 列表 —— 在这个案例中,就是来自用户的消息 —— 并通过提示表明轮到模型进行输出,以促使其做出回答。 add_generation…

Linux内核驱动开发核心问题全解

&#x1f4d6; 推荐阅读&#xff1a;《Yocto项目实战教程:高效定制嵌入式Linux系统》 &#x1f3a5; 更多学习视频请关注 B 站&#xff1a;嵌入式Jerry Linux内核驱动开发核心问题全解 本文系统梳理了 Linux 驱动开发、内核同步、中断处理、内存管理、进程通信、系统启动等典型…

【C++篇】C++11入门:踏入C++新世界的大门

文章目录C11简介列表初始化1. {}初始化2. initializer_list容器initializer_list的使用场景声明1. auto2. decltype3. nullptrSTL中的变化1. 新容器array容器forward_list容器unordered_map和unordered_set容器2. 新接口C11简介 C98/03&#xff1a;在2003年C标准委员会曾经提交…

Java 日期时间处理:分类、用途与性能分析

Java提供了多种日期时间处理API&#xff0c;随着版本演进不断改进。以下是主要日期时间类的分类、用途和性能分析&#xff1a;一、Java日期时间API分类1. 传统日期时间API (Java 1.0/1.1)java.util.Date - 表示特定的瞬间&#xff0c;精确到毫秒java.util.Calendar - 抽象类&am…

[Linux]学习笔记系列 --GCC

文章目录属性__cleanup__attribute_malloc__ 用于标记函数返回一个新分配的内存块__attribute_alloc_size__ 用于指定分配的内存大小__attribute__((const)) 标记为纯函数(pure function)__attribute__((__externally_visible__)) 使其在编译器优化过程中保持对外部模块的可见性…

【龙泽科技】汽车维护与底盘拆装检修仿真教学软件【风光580】

产品简介汽车维护与底盘拆装检修仿真教学软件是依托《全国职业院校技能大赛》“汽车维修”赛项中“汽车维护与底盘拆装检修模块”竞赛模块&#xff0c;自主开发的一款仿真教学软件。软件采用仿真仿真技术模拟实际汽车维修工的岗位技能操作流程&#xff0c;操作内容主要包括&…

Spring之【循环引用】

目录前置知识SingletonBeanRegistryDefaultSingletonBeanRegistrySpring中处理循环引用的流程分析定义两个具有循环引用特点的Bean执行A的实例化执行A的属性填充(执行过程中发现A依赖B&#xff0c;就去执行B的实例化逻辑)执行B的实例化执行B的属性填充执行B的初始化执行A的属性…

LRU缓存淘汰算法的详细介绍与具体实现

LRU&#xff08;Least Recently Used&#xff0c;最近最少使用&#xff09;是一种基于时间局部性原理的缓存淘汰策略。其核心思想是&#xff1a;最近被访问的数据在未来更可能被再次使用&#xff0c;而最久未被访问的数据应优先被淘汰&#xff0c;从而在有限的缓存空间内保留高…

JS-第十九天-事件(一)

一、事件基础概念1.1 事件三要素事件源&#xff1a;触发事件的元素事件类型&#xff1a;事件的种类&#xff08;如click、mouseover等&#xff09;事件处理程序&#xff1a;响应事件的函数1.2 事件流机制事件传播分为三个阶段&#xff1a;捕获阶段&#xff1a;事件从顶层开始&a…

Matplotlib(三)- 图表辅助元素

文章目录一、图表辅助元素简介二、坐标轴的标签、刻度范围和刻度标签1. 坐标轴标签1.1 x轴标签1.2 y轴标签1.3 示例&#xff1a;绘制天气气温折线图2. 刻度范围和刻度标签2.1 刻度范围2.1.1 x轴刻度范围2.1.2 y轴刻度范围2.2 刻度标签2.2.1 x轴刻度标签2.2.2 y轴刻度标签2.3 示…