K8s卷機制:數據持久化與共享

在 Kubernetes(K8s)中,卷(Volume)?是用于解決容器內數據持久化、容器間數據共享以及與外部存儲交互的核心機制。它本質上是一個可供 Pod 中容器訪問的存儲目錄,生命周期獨立于容器(容器重啟或銷毀后,卷中的數據可保留)。

一、卷的核心作用

  1. 數據持久化:容器本身是臨時的(銷毀后數據丟失),卷可將數據存儲在容器外部(如本地磁盤、網絡存儲),確保數據不隨容器消失。
  2. 容器間共享:同一 Pod 內的多個容器可通過掛載同一個卷實現數據共享(如前端容器生成的文件供后端容器處理)。
  3. 對接外部存儲:卷支持多種存儲類型(本地磁盤、NFS、云存儲等),讓 Pod 能便捷使用集群外的存儲資源。

二、卷的類型與常見實例

K8s 支持多種卷類型,適用于不同場景,以下是常用類型及實例:

1. 臨時卷(Ephemeral Volumes)

  • 特點:生命周期與 Pod 一致(Pod 銷毀后卷也刪除),但數據不依賴單個容器,適合臨時緩存、日志等。

  • 常見類型

    • emptyDir:Pod 創建時自動生成的空目錄,所有容器可讀寫,Pod 銷毀后數據刪除。

    實例:同一 Pod 內的兩個容器共享數據

    yaml

    apiVersion: v1
    kind: Pod
    metadata:name: shared-pod
    spec:containers:- name: container-1image: busyboxcommand: ["sh", "-c", "echo 'hello from container1' > /shared/data.txt; sleep 3600"]volumeMounts:  # 掛載卷到容器內目錄- name: shared-volumemountPath: /shared- name: container-2image: busyboxcommand: ["sh", "-c", "cat /shared/data.txt; sleep 3600"]volumeMounts:  # 掛載同一個卷- name: shared-volumemountPath: /sharedvolumes:  # 定義卷- name: shared-volumeemptyDir: {}  # 使用 emptyDir 類型
    

2. 持久卷(Persistent Volumes)

  • 特點:生命周期獨立于 Pod(集群級資源),數據長期保留,需配合?PVC(PersistentVolumeClaim)?使用(詳見前文 PV/PVC 概念)。
  • 實例:通過 PVC 掛載持久卷

    yaml

    apiVersion: v1
    kind: Pod
    metadata:name: pvc-pod
    spec:containers:- name: appimage: nginxvolumeMounts:- name: pv-storagemountPath: /usr/share/nginx/htmlvolumes:- name: pv-storagepersistentVolumeClaim:claimName: my-pvc  # 關聯已創建的 PVC
    

3. 本地卷(Local Volumes)

  • 特點:使用節點(Node)本地磁盤作為存儲,性能高但數據僅存于單個節點(節點故障可能丟失數據),適合對性能要求高的場景(如數據庫臨時緩存)。
  • 實例:掛載節點的?/data/local?目錄

    yaml

    apiVersion: v1
    kind: Pod
    metadata:name: local-volume-pod
    spec:containers:- name: appimage: busyboxcommand: ["sleep", "3600"]volumeMounts:- name: local-storagemountPath: /mnt/localvolumes:- name: local-storagehostPath:path: /data/local  # 節點上的實際目錄type: DirectoryOrCreate  # 若目錄不存在則創建
    

4. 網絡卷(Network Volumes)

  • 特點:數據存儲在網絡中的遠程服務器,可跨節點訪問,適合多 Pod 共享數據(如 NFS、Ceph、云存儲等)。
  • 實例:掛載 NFS 網絡存儲

    yaml

    apiVersion: v1
    kind: Pod
    metadata:name: nfs-pod
    spec:containers:- name: appimage: busyboxcommand: ["sleep", "3600"]volumeMounts:- name: nfs-storagemountPath: /mnt/nfsvolumes:- name: nfs-storagenfs:server: 172.25.254.254  # NFS 服務器 IPpath: /nfs/shared  # NFS 共享目錄
    

三、卷的使用流程

  1. 定義卷:在 Pod 的?volumes?字段中聲明卷的名稱和類型(如?emptyDirhostPathpersistentVolumeClaim?等)。
  2. 掛載卷:在容器的?volumeMounts?字段中,將卷掛載到容器內的指定路徑(mountPath)。
  3. 使用數據:容器通過掛載路徑讀寫卷中的數據,實現數據共享或持久化。

四、核心總結

  • 本質:卷是 Pod 內的存儲目錄,生命周期獨立于容器,解決數據持久化和共享問題。
  • 類型:根據場景選擇(臨時存儲用?emptyDir,持久化用 PV/PVC,本地高性能用?hostPath,跨節點共享用 NFS 等網絡卷)。
  • 關鍵:卷是 Pod 級資源,同一 Pod 內的容器可共享卷;跨 Pod 共享需依賴網絡存儲或 PV/PVC。

通過卷,K8s 實現了容器與存儲的解耦,讓應用數據管理更靈活、可靠。

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

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

相關文章

線性回歸原理推導與應用(十一):多重共線性

多重共線性的定義與影響 多重共線性(Multicollinearity)是指線性回歸模型中的解釋變量之間由于存在精確相關關系或高度相關關系而使模型估計失真或難以估計準確。 根據定義和影響程度,可以將多重共線性分為極端共線性和一般共線性。極端共線…

day082-初識ElasticStack

文章目錄0. 老男孩思想-人性十大需求1. ElasticStack介紹1.1 ELK(**Elastic Stack**)1.2 logstash和filebeat的區別2. ElasticSearch單點部署2.1 下載ElasticSearch軟件包2.2 安裝軟件并修改配置文件2.3 啟動并測試服務3. ElasticSearch集群部署3.1 安裝…

軟考 系統架構設計師系列知識點之雜項集萃(139)

接前一篇文章:軟考 系統架構設計師系列知識點之雜項集萃(138) 第257題 系統工程利用計算機作為工具,對系統的結構、元素、()和反饋等進行分析,以達到最優()、最優設計、最優管理和最優控制的目的。霍爾(A.D.Hall)于1969年提出了系統方法的三維結構體系,通常稱為霍…

solidity地址、智能合約、交易概念

目錄地址address 的兩種子類型(Solidity 0.5.0)address分類address 的常用操作和屬性總結交易交易的基本結構(由外部發起)Gas交易生命周期函數調用與交易常見交易場景總結地址 在 Solidity 中,地址(addres…

jwt原理及Java中實現

一、JWT 是什么?解決什么問題? 我們先來一張圖看一下這個過程:JWT(JSON Web Token)是一種把“認證信息(Claims) 完整性校驗”打包成 自包含 的字符串的規范。 它主要用于無狀態認證:…

大數據在UI前端的應用深化研究:用戶行為數據的跨平臺關聯分析

大數據在UI前端的應用深化研究:用戶行為數據的跨平臺關聯分析每天,你在手機 App 里點了一個按鈕、在網頁上滑了兩屏、又在小程序里停留了 3 秒,這些看似零散的動作,其實都在被悄悄記錄。過去,這些數據只能各自躺在自己…

C++11基礎——— 右值引用和移動語義

1. C11的發展歷史 C11是C的第?個主要版本,并且是從C98起的最重要更新。它引入了大量更改,標準化了既有實踐,并改進了對C程序員可用的抽象。在它最終由ISO在2011年8月12日采納前,人們曾使用名稱“C0x”,因為它曾被期待…

【一】Django框架版本介紹

【一】Django框架版本介紹 【一】Django框架版本 ● Django 是一個高級的Python Web框架,由荷蘭人Armin Ronacher創建。 ● 隨著版本的迭代和功能的不斷優化,Django在處理異步請求方面也有了顯著的進步。 【1】Django1.x ● 默認不支持異步 ● Django 1.…

git 大文件上傳不了的 問題

你 還是在 cmd 里執行,Select-String 是 PowerShell 的命令,cmd 不認識。 請務必按下面的步驟 切換到 PowerShell 再運行。? 1. 打開 PowerShell(不要再用 cmd)最簡單: 在資源管理器里進入 D:\linShiWenjian\my-react…

【FIX】go運行報錯“missing go.sum entry for module providing package”解決方案

🔧 ?核心解決方案?**運行 go mod tidy**? ?作用?:自動同步 go.mod和 go.sum文件,添加缺失依賴并移除無用條目。 go mod tidy?適用場景?:90% 的校驗和缺失問題可通過此命令解決。 ?注意?:若項目含私有倉庫&…

【實操教學】ArcGIS 如何進行定義坐標系

一、坐標系定義的方式創建數據時可直接完成坐標系定義;針對已創建的數據集(涵蓋要素類、要素數據集及柵格數據集),則可通過以下這種方式定義:工具箱工具調用:使用 ArcGIS 工具箱中的 “定義投影&#xff08…

如何使用Windows自帶的PnPUtil命令來禁用/停用和啟用硬件設備

我來詳細講解一下如何使用 Windows 自帶的 PnPUtil 命令來禁用(停用) 和啟用硬件設備。 PnPUtil (即插即用實用工具) 是一個功能強大的命令行工具,主要用于安裝、卸載、枚舉和修改驅動程序包。對于硬件的啟用和禁用,它通過操作設…

鴻蒙Next媒體展示組件實戰:Video與動態布局全解析

今天我們來深入探討HarmonyOS Next中幾種核心媒體展示組件的使用方法,通過實際代碼示例展示如何打造豐富的多媒體體驗。HarmonyOS Next為開發者提供了一套強大而靈活的媒體展示組件,使開發者能夠輕松實現視頻播放、動態布局適應、全屏切換等常見多媒體功…

復現RoboDK機器人校準功能(以Staubli TX2?90L / TX200機械臂為測試對象,實測精度接近原廠)

本算法復現了 RoboDK 的機器人校準功能:在訓練集的理論校準后精度與 RoboDK 一致,在測試集的實測精度接近 Staubli 原廠。 參考:RoboDK 機器人校準功能(https://robodk.com.cn/cn/robot-calibration) 特性 支持 SDH 參…

Vue常用指令和生命周期

Vue 是基于 MVVM模型的前端 JavaScript 框架。Vue 核心是數據驅動視圖&#xff0c;通過響應式數據實現視圖自動更新。<template><div>{{ message }}</div><button click"changeMsg">修改內容</button> </template><script se…

深度學習周報(8.25~8.31)

目錄 摘要 Abstract 1 RNN學習意義 2 RNN基礎知識 2.1 核心思想 2.2 傳播 2.3 優缺點 2.4 變體結構與應用場景 3 RNN結構代碼示例 4 總結 摘要 本周主要學習了循環神經網絡的學習意義與基礎知識&#xff0c;重點了解了RNN循環連接的核心思想、前向傳播與反向傳播過程…

借助 LAMBDA 公式,實現單元格區域高效轉換

新特性介紹 “轉換單元格&#xff08;Transform&#xff09;” 功能允許用戶將自定義的單參數 LAMBDA 公式應用于選中的單元格區域。用戶可選擇公式參數的作用域 —— 按單元格、按行、按列或按整個區域。 轉換完成后&#xff0c;源單元格區域會被清空&#xff0c;轉換后的區…

LeetCode 01背包 494. 目標和

494. 目標和給你一個非負整數數組 nums 和一個整數 target 。 向數組中的每個整數前添加 ‘’ 或 ‘-’ &#xff0c;然后串聯起所有整數&#xff0c;可以構造一個 表達式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在 2 之前添加 ‘’ &#xff0c;在 1 之前…

Dify 1.8.0 全網首發,預告發布

距離Dify 1.7.2過去兩周了 Dify 1.8.0 又跟大伙見面了&#xff01; 1.8.0&#xff0c;屬于主版本號不變、但第二位數字更新的“階段性大更”&#xff0c;意味著功能上的顯著優化和體驗上的重要升級。 根據官方的Github日志&#xff0c;這一版本將繼續聚焦三大核心方向&#x…

基于LangChain框架搭建AI問答系統(附源碼)

AI問答系統1. 背景知識2. 問答系統流程3. 知識問答系統相關組件3.1 文檔加載器3.2 文檔切割器3.3 嵌入模型包裝器3.4 向量存儲庫3.5 模型包裝器3.6 鏈組件4. 問答系統演示4.1 問答程序4.2 演示大模型回答效果5.問答系統代碼1. 背景知識 在人工智能技術飛速發展的今天&#xff…