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
英文地址,請注明出處:http://en.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 示…