k8s存儲介紹(五)PV與PVC

在 Kubernetes(k8s)中,持久化存儲(Persistent Storage)是一個非常重要的概念,因為 Pod 本身是無狀態的,重啟后會丟失數據。為了支持有狀態應用,Kubernetes 提供了持久化存儲的機制,主要包括 PV(Persistent Volume,持久卷)和 PVC(Persistent Volume Claim,持久卷聲明)。

1. 什么是 PV 和 PVC?

PV(Persistent Volume,持久卷) Persistent Volume(PV)是由管理員創建的存儲資源,它代表了集群中的實際存儲,可以是本地存儲、NFS、云存儲(如 AWS EBS、Google Persistent Disk)等。PV 是集群級別的資源,不屬于特定的命名空間。

PVC(Persistent Volume Claim,持久卷聲明) Persistent Volume Claim(PVC)是用戶(開發者或應用)請求存儲資源的方式。PVC 代表了對存儲的需求,比如存儲大小、訪問模式等。Kubernetes 通過 PVC 綁定到合適的 PV,以滿足用戶的需求。

2. PV 和 PVC 的工作流程

  1. 管理員創建 PV:管理員在集群中定義一個 PV,并指定存儲類型、大小、訪問模式等。

  2. 用戶創建 PVC:應用程序需要存儲時,用戶創建 PVC,聲明所需的存儲資源。

  3. Kubernetes 進行綁定:Kubernetes 根據 PVC 的請求尋找合適的 PV,并進行綁定。

  4. Pod 掛載 PVC:Pod 使用 PVC 來掛載存儲,應用程序可以像使用本地存儲一樣訪問數據。

3. PV 的定義示例

apiVersion: v1
kind: PersistentVolume
metadata:name: example-pv
spec:capacity:storage: 10GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: standardhostPath:path: "/mnt/data"

字段解釋

  • capacity:指定存儲容量,如 10Gi。

  • accessModes:訪問模式,包括:

    • ReadWriteOnce(RWO):單個節點可讀寫。

    • ReadOnlyMany(ROX):多個節點只讀。

    • ReadWriteMany(RWX):多個節點可讀寫。

  • persistentVolumeReclaimPolicy:回收策略:

    • Retain(保留):PV 釋放后數據仍然保留。

    • Recycle(回收):簡單刪除數據。

    • Delete(刪除):PV 釋放后刪除存儲。

  • storageClassName:存儲類,允許動態存儲。

  • hostPath:表示本地存儲路徑。

4. PVC 的定義示例

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: example-pvc
spec:accessModes:- ReadWriteOnceresources:requests:storage: 5GistorageClassName: standard

字段解釋

  • accessModes:指定訪問模式。

  • resources.requests.storage:請求的存儲大小。

  • storageClassName:必須與 PV 的存儲類匹配。

5. 在 Pod 中使用 PVC

apiVersion: v1
kind: Pod
metadata:name: example-pod
spec:containers:- name: app-containerimage: nginxvolumeMounts:- mountPath: "/usr/share/nginx/html"name: storagevolumes:- name: storagepersistentVolumeClaim:claimName: example-pvc

說明

  • volumeMounts:將 PVC 掛載到容器內的 /usr/share/nginx/html 目錄。

  • volumes:引用 example-pvc 作為存儲。

6. PV 綁定 PVC 的過程

  1. 管理員創建 PV,它可以是靜態的或動態分配的。

  2. 用戶創建 PVC,請求特定存儲大小和訪問模式。

  3. Kubernetes 綁定 PVC 到合適的 PV

  4. Pod 掛載 PVC,并可以訪問存儲數據。

7. 應用場景

  1. 數據庫存儲:MySQL、PostgreSQL、MongoDB 等數據庫需要持久化存儲,以防止數據丟失。

  2. 日志存儲:應用日志需要持久化存儲,以便分析和調試,即使 Pod 重新調度,日志仍然可用。

  3. 文件共享:多個 Pod 共享數據,如 NFS 或云存儲,多個應用可同時訪問相同數據。

  4. 機器學習:訓練數據集通常很大,需要持久化存儲,以供模型訓練和分析。

  5. CI/CD 持久化:在持續集成/持續部署(CI/CD)流程中,構建緩存或構件存儲需要持久化數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73585.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73585.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73585.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ORA-00600 [2662]

一、數據庫啟動報ORA-00600[2662] [oraclenode1 ora11g]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Thu Dec 22 14:37:00 2011Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to an idle instance.SQL> startup ORACLE instanc…

WebSocket接入SSL證書

目錄 碎碎念解決方法創建 HTTPS WebSocket 服務器創建系統服務啟動服務 碎碎念 在訪問網站時,使用 HTTPS 非常重要。HTTPS 協議不僅可以確保數據傳輸的安全性,還可以防止中間人攻擊和數據篡改等安全問題。任何沒有 SSL 證書的內容都可能會被拒絕訪問。因…

c#在work線程中怎樣更新UI控件

最近筆者調試修改項目,碰到了c#在work線程中怎樣更新UI控件中的場景,簡單總結了下,主要有兩個方法: 方法1:通過System.Windows.Application.Current.Dispatcher.Invoke來更新UI控件 System.Windows.Application.Curre…

?數據結構每日一題day3(順序表)★★★★★

題目描述:順序表L的元素遞增有序排列,設計一個算法在插入元素x后保持該順序表仍然遞增有序排列,插入成功后返回插入元素所在位置,不成功返回-1 算法思想:在遞增有序的順序表中插入元素 x 并保持有序性,步驟如下: 合法…

MyBatis中mapper.xml 的sql映射規則

一、SQL 映射文件核心元素 MyBatis 映射文件的頂級元素(按定義順序): cache:命名空間的緩存配置。cache-ref:引用其他命名空間的緩存。resultMap:自定義結果集映射。sql:可重用的 SQL 片段。i…

【計算機網絡】計算機網絡協議、接口與服務全面解析——結合生活化案例與圖文詳解

協議、接口與服務 導讀一、協議1.1 定義1.2 組成 二、接口三、服務3.1 定義3.2 服務與協議的區別3.3 分類3.3.1 面向連接服務于無連接服務3.3.2 可靠服務和不可靠服務3.3.3 有應答服務和無應答服務 結語 導讀 大家好,很高興又和大家見面啦!!…

Ubuntu服務器中Swapper如何與虛擬內存配合

在Ubuntu服務器中,Swapper和虛擬內存是操作系統中重要的概念,它們共同協作以提高系統的內存管理效率。當物理內存不足時,Swapper會幫助系統將不活躍的數據從內存轉移到磁盤上的交換空間(Swap),以釋放內存給需要更多資源的進程。下…

SQL Server 中常見的數據類型及其詳細解釋、內存占用和適用場景

以下是 SQL Server 中常見的數據類型及其詳細解釋、內存占用和適用場景: 數據類型類別數據類型解釋內存占用適用場景整數類型bigint用于存儲范圍較大的整數,范圍是 -2^63 (-9,223,372,036,854,775,808) 到 2^63-1 (9,223,372,036,854,775,807)8 字節需要…

vue數字公式篇 Tinymce結合使用(二)

繼上一篇的數字公式 , 這次的功能是將公式能插入編輯器以及修改 1、Tinymce 自定義 LateX 按鈕,打開公式編輯器窗口 LateX.vue window.tinymce.init({...//基礎配置這里我就不寫了setup(ed) {//自定義 LateX 按鈕ed.ui.registry.addButton(LateX, {text:…

python數據增強和轉換

數據增強和轉換 固定轉換隨機轉換概率控制的轉換 固定轉換 邊緣補充像素(Pad)尺寸變換(Resize)中心截取(CenterCrop)頂角及中心截取(FiveCrop)尺灰度變換(GrayScale) 概率控制的轉換 隨機垂直翻轉(RandomVerticalFlip)隨機應用(RandomApply) # -*- coding: utf-8 -*- fro…

Ubuntu下UEFI安全啟動安裝Nvdia驅動

簡介 眾所周知,Ubuntu默認使用Nouveau開源驅動,其性能受限,因此我們需要安裝Nvidia專用驅動。 安裝專用驅動的一般方法非常簡單,只需要sudo ubuntu-drivers devices && sudo ubuntu-drivers autoinstall即可&#xff0c…

05_循環結構三目運算符

目錄 一、雙重for循環 練習 二、break關鍵字 三、continue 關鍵字 練習 四、三元運算 / 三目運算 一、雙重for循環 外層循環 循環一次,,,內層循環 循環一圈!!! 循環里嵌套循環: for(var…

數據結構初階-二叉樹鏈式

目錄 1.概念與結構 2.二叉數鏈式的實現 2.1遍歷規則 2.2申請內存空間 2.3手動構建一棵二叉樹 2.4二叉樹結點的個數 2.5二叉樹葉子結點的個數 2.6二叉樹第K層結點個數 2.7二叉樹的高度 2.8二叉樹中查找值為x的結點 2.9二叉樹的銷毀 3.層序遍歷 3.1概念 3.2層序遍歷…

鴻蒙HarmonyOS NEXT之無感監聽

鴻蒙中存在一些無感監聽,這些監聽經過系統API封裝使用很簡單,但是對實際業務開發中有很重要,例如埋點業務、數據統計、行為上報、切面攔截等。 Navigation的頁面切換 在鴻蒙中Navigation被用來作為路由棧進行頁面跳轉,如果你想知…

批量處理word里面表格的空白行

1,隨便打開一個word文檔。 2,按下Alt F11 VBA編輯器,在左側的「工程資源管理器」窗口中找到Normal 項目,右鍵選擇插入->模塊。 彈出一下彈窗 3,輸入一下代碼 代碼: Sub RemoveEmptyTableRows()Dim tbl As TableDim row As R…

3ds Max 2026 新功能全面解析

一、視口性能與交互體驗升級 1. Hydra 2.0 視口渲染引擎 3ds Max 2026 引入了 Hydra 2.0,大幅優化了視口渲染性能,尤其是在處理復雜場景和高質量實時預覽時,流暢度提升顯著。 支持USD(通用場景描述)格式&#xff0c…

JVM垃圾回收筆記02-垃圾回收器

文章目錄 前言1.串行(Serial 收集器/Serial Old 收集器)Serial 收集器Serial Old 收集器相關參數-XX:UseSerialGC 2.吞吐量優先(Parallel Scavenge 收集器/Parallel Old 收集器)Parallel Scavenge 收集器Parallel Old 收集器相關參數-XX:UseParallelGC ~ -XX:UseParallelOldGC-…

圖解AUTOSAR_SWS_UDPNetworkManagement

AUTOSAR UDP 網絡管理 (UdpNm) 技術詳解 基于 AUTOSAR 規范的 UDP 網絡管理模塊可視化指南 目錄 AUTOSAR UDP 網絡管理 (UdpNm) 技術詳解 目錄1. 概述2. UdpNm 狀態機 2.1 狀態機概述2.2 主要狀態說明2.3 狀態轉換機制2.4 并行狀態3. UdpNm 架構設計 3.1 架構概述3.2 接口設計3…

android 圖形開發的技能學習路線

需要以下幾個方面的知識: OpenGL ES的基礎和高級應用圖形渲染管線的工作原理3D數學(矩陣、向量、四元數)著色器編程(GLSL)libGDX框架的使用和定制性能優化和內存管理跨平臺渲染技術 接下來,考慮如何結構化…

使用AI一步一步實現若依(26)

功能26:新增一個新員工培訓頁面 功能25:角色管理 功能24:菜單管理 功能23:從后端獲取路由/菜單數據 功能22:用戶管理 功能21:使用axios發送請求 功能20:使用分頁插件 功能19:集成My…