【云駐共創】華為云云原生鉆石課程04:Kubernetes存儲架構原理深度剖析(上)

      網友投稿 813 2025-03-31

      學完本課程后,您將能夠:

      了解Kubernetes容器存儲發展歷程

      了解Kubernetes持久化存儲原理

      了解PV/PVC的工作原理

      了解華為云CCE云原生存儲解決方案Everest的架構

      1.Kubernetes容器存儲發展歷程

      1.1 簡介

      應用程序生成的數據可簡單分為兩類:

      臨時數據:經過程序處理生成的中間態數據,不需要保留:

      結果數據:經過程序處理生成的最終態數據,需要永久保留。k8s初期為存算分離所做的解調設計Volume,采用強耦合、靈活性差的in-tree模式,雖然已經讓用戶專注于業務功能設計。但這類存儲卷的生命周期是跟隨pod的,只能用作存儲臨時數據,無法做為最終數據使用。

      隨著k8s的不斷成熟,為支持更多的應用場景,提供了一種脫離P0d生命周期的、用戶可管理的存儲抽象設計低耦合、靈話性更強的PersistentVolume,/PersistentVolumeClaim。

      1.2 Kubernetes容器存儲能力簡介

      2.Kubernetes持久化存儲體系

      2.1 簡介

      k8s持久化存儲體系包括:

      PersistentVolume:簡稱pv,持久化存儲,是k8s為云原生應用提供一種擁有獨立生命周期的、用戶可管理的存儲抽象設計。

      PersistentVolumeClaim:簡稱pvc,持久化存儲聲明,是K8S為解耦云原生應用和數據存儲而設計的,通過PVC可以讓資源管控更細更靈活、團隊職責分離、應用模板更通用,進一步解除了用戶被云平臺鎖定的顧慮。

      StorageClass:簡稱sc,存儲類,是K8S平臺為存儲提供商提供存儲接入的一種聲明,通過sc和相應的存儲插件(csi)為容器應用提供動態分配存儲卷的能力。

      Driver Plugin:存儲驅驅動插件,由存儲提供商提供,能夠對接網絡存儲,并管理持久存儲卷的生命周期。

      2.2 持久化存儲優勢分析

      與臨時存儲相比,PV具有:

      每個存儲卷可以擁有獨立的生命周期,不再跟隨pod創建和銷毀;

      使能計算+數據的遷移,也即:存儲卷中的數據可以隨pod在集群中遷移;

      多個不同的pod可以共享同一個存儲卷(存儲卷支持共享);

      引入PVC/SC后,帶來更大的收益:

      資源管控更加靈活,可適應資源管控嚴格、寬松的不同場景;

      團隊職責更加明確,開發人員只需考慮存儲需求(O、容量、訪問模式等),不需要關注存儲類型,甚至品牌;

      靈活的擴展一些增強功能,比如:擴容、快照能力;

      應用模板更加通用,可通過參數配置,適應不同類型的k8s平臺;

      進一步消除用戶被存儲提供商、云平臺鎖定的顧慮。

      3.PV/PVC的工作原理剖析

      3.1 圖示兩種pv/pvc的分配方式

      其中volume為存儲中的數據卷,通過pv/pvc綁定即可為用戶提供存儲服務。

      3.2 靜態卷

      volume靜態卷與pv/pvc綁定后,部署pod應用后即可使用數據卷,如果pvc刪除后,pv通過操作變更為retain、recycle等狀態。

      3.2.1 pvc狀態轉換

      當pv綁定volume時,處于Avaliable狀態。

      當pvc為綁定pv時,處于Pending狀態。

      當pvc綁定pv時,處于Bound狀態。

      當pvc綁定pv被刪除,處于lost狀態。

      當pvc再次綁定pv,處于Bound。

      3.2.2 pv的狀態轉換

      3.3 pv/pvc綁定原理分析

      pvc刷選pv的流程(findBestMatchForClaim)

      通過size刷選恰當的pv;

      通過volumeMode刷選一致的pv;

      通過Label刷選合適的pv;

      通過sc刷選符合的pv;

      通過AccessMode刷選符合條件的pv;

      返回并綁定符合pvc條件,且size最小的pv。

      3.4 pvc綁定pv流程解讀

      3.5 Kubernetes中pv/pvc相關的代碼

      Kubernetes中pv/pvc相關的代碼在下圖位置,如果有興趣請自行查閱。

      3.6 pv/pvc使用場景示例

      pv/pvc適合在資源管理比較嚴格的場景:

      開發人員向集群管理員申請存儲需求;

      存儲管理員按需求分配存儲;

      集群管理員按照分配的存儲創建pv;

      開發人員創建pvc,pvc關聯合適的pv;

      開發人員創建pod,并且pod使用pvc。

      4.華為云CCE云原生存儲解決方案Everest的架構介紹

      4.1 Everest架構介紹

      部署在系統命名空間下(kube-system)

      Everest管理面:Everest-csi-controller

      1. Csi-external-provisioner:負責云存儲卷的創建

      2. Csi-external-resizer:負責云存儲卷的擴容

      3. Csi-externa-attacher:負責云盤的掛卷/卸卷

      4. Csi-external-snapshotter:負責云盤的快照

      Everest數據面:Everest-csi-driver(agent)

      1. EvS-csi-driver:負責將云盤格式化,并掛給pod使用

      2. Sfs-csi-driver:負責將文件存儲卷掛給pod使用

      3. Sfsturbo-csi-driver:負責將極速文件系統掛給pod使用使用

      4. Obs-csi-driver:負責將對象存儲的并行文件系統準備好,并給pod使用

      【云駐共創】華為云云原生鉆石課程04:Kubernetes存儲架構原理深度剖析(上)

      4.2 云原生應用使用存儲的推薦方案

      4.3 部署使用static pv的有狀態應用etcd

      本文整理自華為云社區【內容共創】活動第13期。

      https://bbs.huaweicloud.com/blogs/330939

      任務21.華為云云原生鉆石課程04:Kubernetes存儲架構原理深度剖析(上)

      Kubernetes 云原生

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:word2007中讓表格文字內容自動適應表格
      下一篇:MathType中如何實現上下兩行公式“=”號對齊
      相關文章
      亚洲Av永久无码精品黑人| 亚洲一级二级三级不卡| 亚洲国产精品VA在线看黑人 | 亚洲国产AV一区二区三区四区| 亚洲国产模特在线播放| 亚洲香蕉成人AV网站在线观看| 亚洲国产精品自产在线播放| avtt亚洲天堂| 国产亚洲福利一区二区免费看| 九九精品国产亚洲AV日韩| 亚洲av永久中文无码精品综合| 亚洲日韩精品无码专区加勒比 | 精品亚洲国产成人| 亚洲综合中文字幕无线码| 亚洲色中文字幕在线播放| 亚洲AV日韩AV无码污污网站| 日韩精品亚洲专区在线影视| 麻豆亚洲AV成人无码久久精品 | 亚洲伊人色一综合网| 国产成人精品日本亚洲直接| 2020久久精品亚洲热综合一本| 伊人久久五月丁香综合中文亚洲| 亚洲中文字幕无码中文| 亚洲AV成人一区二区三区观看| 极品色天使在线婷婷天堂亚洲| 亚洲AV成人精品一区二区三区| 深夜国产福利99亚洲视频| 亚洲人成网站18禁止一区| 亚洲日韩欧洲无码av夜夜摸| 亚洲av永久无码精品表情包| 精品亚洲成AV人在线观看| 亚洲一级高清在线中文字幕| 亚洲日韩亚洲另类激情文学| 色窝窝亚洲AV网在线观看| 亚洲片一区二区三区| 亚洲国产精品VA在线看黑人| 亚洲色图视频在线观看| 亚洲首页国产精品丝袜| 国产午夜亚洲精品不卡| 亚洲色大成网站www永久一区| 亚洲国产成人久久精品动漫|