k8s EmptyDir(空目錄)詳解

1.?定義與特性

emptyDir 是 Kubernetes 中一種臨時存儲卷類型,其生命周期與 Pod 完全綁定。當 Pod 被創建時,emptyDir 會在節點上生成一個空目錄;當 Pod 被刪除時,該目錄及其數據會被永久清除。它主要用于同一 Pod 內多個容器間的臨時數據共享,無需依賴外部存儲系統。

2.?工作原理
  • 創建時機:當 Pod 被調度到節點上時,Kubernetes 的 kubelet 組件會在節點本地文件系統中創建一個臨時目錄(例如 /var/lib/kubelet/pods/<pod-uid>/volumes/kubernetes.io~empty-dir/)。

  • 掛載過程:該目錄被掛載到 Pod 中指定的容器路徑。

  • 生命周期

    • Pod 刪除 → 目錄被刪除。

    • 容器崩潰或重啟 → 目錄和數據保留。

    • Pod 被調度到新節點 → 在新節點上創建新的空目錄。

3.?配置方法

在 Pod 的 YAML 配置中,可以通過以下方式定義 emptyDir

apiVersion: v1
kind: Pod
metadata:name: volume-emptydir
spec:containers:- name: nginximage: nginx:1.14-alpinevolumeMounts:- name: logs-volumemountPath: /var/log/nginx- name: busyboximage: busybox:1.30command: ["/bin/sh", "-c", "tail -f /logs/access.log"]volumeMounts:- name: logs-volumemountPath: /logsvolumes:- name: logs-volumeemptyDir: {}

在這個例子中,emptyDir 被掛載到兩個容器中,用于共享日志數據。

4.?典型使用場景
  • 臨時緩存:存儲中間計算結果,任務完成后數據無需保留。

  • 日志共享:同一 Pod 內,前端服務容器生成日志,日志分析容器實時讀取日志。

  • 臨時文件交換:多個容器間臨時交換文件。

5.?注意事項
  • 數據臨時性:明確 emptyDir 數據不持久,勿用于需要長期保存的數據存儲。若需持久化,應選擇 PVC、HostPath 等其他存儲方案。

  • 存儲位置emptyDir 存儲在節點本地,若 Pod 因節點故障遷移,原節點上的 emptyDir 數據無法跟隨遷移。

  • 資源消耗:盡管 emptyDir 適合臨時存儲,仍需關注其對節點磁盤空間的占用,避免因大量臨時數據導致節點磁盤滿溢。

6.?優缺點分析
  • 優點

    • 簡單易用,無需額外配置。

    • 訪問速度快,特別是使用內存介質時。

    • 適合臨時數據存儲需求。

    • 同一 Pod 中容器間共享數據的便捷方式。

  • 缺點

    • 數據不持久,Pod 刪除后數據丟失。

    • 不適合存儲重要數據。

    • 節點故障會導致數據丟失。

    • 內存介質受限于節點可用內存。

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

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

相關文章

【idea】實用插件

SonarLint SonarLint&#xff1a;代碼質量掃描工具 使用 SonarLint 可以幫助我們發現代碼的問題,并且還提供了相應的解決方案. 對于每一個問題&#xff0c;SonarLint 都給出了示例&#xff0c;還有相應的解決方案&#xff0c;教我們怎么修改&#xff0c;極大的方便了我們的開發…

【mysql 的安裝及使用】

MySQL 9.0 一、下載MySQL[MySQL 9.0 下載] [(https://dev.mysql.com/downloads/mysql/)選擇自定義,選擇合適安裝路徑二、檢查安裝情況配置環境變量打開命令行查看版本創建數據庫在MySQL中,可以使用create database語句來創建數據庫。以下是創建一個名為my_db的數據庫的示例:…

leetcode118.楊輝三角

思路源自 【LeetCode 每日一題】118. 楊輝三角 | 手寫圖解版思路 代碼講解 class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> result new ArrayList<>();for (int i 0; i < numRows; i) {List<…

【git】git pull 和 git rebase

git pull 和 git rebase 都是 Git 中用于同步代碼的命令&#xff0c;但它們的工作方式和適用場景有顯著區別。以下是兩者的詳細對比&#xff1a; 1. 核心區別 特性git pullgit rebase本質git fetch git merge&#xff08;默認&#xff09;將當前分支的提交“重新播放”到目標…

DIY搭建網站(學術個人介紹主頁)

本教程介紹了如何創建并管理一個基于GitHub Pages的個人網站。首先&#xff0c;需要在GitHub上創建一個遵循特定命名規則的新倉庫&#xff0c;例如用戶名.github.io&#xff0c;以便建立個人站點。接著&#xff0c;通過Fork一個開源模板代碼倉庫并添加index.html文件來構建主頁…

數據結構初階:二叉樹的前中后序三種遍歷(遞歸的暴力美學)

想要實現二叉樹的遍歷可以創建一個鏈式結構的二叉樹 回顧一下二叉樹的概念&#xff0c;二叉樹分為空樹和非空二叉樹&#xff0c;非空二叉樹由根節點、根節點的左子樹和根節點的右子樹組成。 typedef char BTDataType; // 數據類型 typedef struct BinaryTreeNode {B…

WebUI問題總結

修改WebUI代碼時遇到的一些問題以及解決辦法 1. thttpd服務器環境的搭建 可參考《thttpd安裝與啟動流程》這一篇文章 其中遇到的問題有 thttpd版本問題&#xff1a;版本過舊會導致安裝失敗&#xff0c;盡量安裝新版本thttpd的啟動命令失敗的話要加上sudo修改文件權限&#…

【C++重點】deque

C queue 容器介紹 queue 是 C 標準庫中的一個容器適配器&#xff0c;它實現了先進先出&#xff08;FIFO&#xff09;數據結構。即&#xff0c;元素按照插入的順序排隊&#xff0c;首先插入的元素最先出隊。queue 適用于需要排隊處理任務的場景&#xff0c;比如消息隊列、任務調…

透過 /proc 看見內核:Linux 虛擬文件系統與 systemd 初始化初探

當我們在終端中輸入 ps、top、cat /proc/cpuinfo 等命令時&#xff0c;是否思考過這些信息來自哪里&#xff1f;為什么無需啟動任何守護進程&#xff0c;就能實時讀取系統負載、內存占用&#xff0c;甚至內核版本&#xff1f;這一切的答案&#xff0c;都藏在 Linux 系統中的一個…

操作系統(中斷 異常 陷阱) ─── linux第28課

目錄 1.硬件中斷 2. 時鐘中斷 3. OS本質 4. 軟件中斷 缺頁中斷&#xff1f;內存碎片處理&#xff1f;除零野指針錯誤&#xff1f; 操作系統本質總結 操作系統是對軟件硬件資源管理的軟件 1.硬件中斷 中斷向量表(IDT)就是操作系統的?部分&#xff0c;啟動就加載到內存中了…

文件分片上傳

1前端 <inputtype"file"accept".mp4"ref"videoInput"change"handleVideoChange"style"display: none;">2生成hash // 根據整個文件的文件名和大小組合的字符串生成hash值&#xff0c;大概率確定文件的唯一性fhash(f…

機器學習的一百個概念(5)數據增強

前言 本文隸屬于專欄《機器學習的一百個概念》&#xff0c;該專欄為筆者原創&#xff0c;引用請注明來源&#xff0c;不足和錯誤之處請在評論區幫忙指出&#xff0c;謝謝&#xff01; 本專欄目錄結構和參考文獻請見[《機器學習的一百個概念》 ima 知識庫 知識庫廣場搜索&…

基于微信小程序的智慧鄉村旅游服務平臺【附源碼】

基于微信小程序的智慧鄉村旅游服務平臺&#xff08;源碼L文說明文檔&#xff09; 目錄 4系統設計 4.1系統功能設計 4.2系統結構 4.3.數據庫設計 4.3.1數據庫實體 4.3.2數據庫設計表 5系統詳細實現 5.1 管理員模塊的實現 5.1.1旅游景點管理…

數據驅動的智能BMS革新:機器學習賦能電池健康預測與安全協同優化

傳統電池管理系統&#xff08;BMS&#xff09;依賴等效電路模型和固定參數算法&#xff0c;面臨電化學機理復雜、老化行為非線性、多工況適應性差等瓶頸。例如&#xff0c;健康狀態&#xff08;SOH&#xff09;和荷電狀態&#xff08;SOC&#xff09;估算易受溫度、循環次數及電…

使用JSON.stringify報錯:Uncaught TypeError: cyclic object value

具體錯誤 Uncaught TypeError: cyclic object valueonMouseOver Amap.vue:125renderMarker Amap.vue:84emit maps:1emit maps:1ci maps:1ui maps:1fireEvent maps:1jL maps:1Xt maps:1T maps:1<anonymous> amap.vue:49promise callback*nextTick runtime-core.esm-bundl…

Spring Boot 工程創建詳解

2025/4/2 向全棧工程師邁進&#xff01; 一、SpingBoot工程文件的創建 點擊Project Structure 然后按著如下點擊 最后選擇Spring Boot &#xff0c;同時記得選擇是Maven和jar&#xff0c;而不是war。因為Boot工程內置了Tomcat&#xff0c;所以不需要war。 緊接著選擇Spring We…

Java 8 的流(Stream API)簡介

Java 8 引入的 Stream API 是一個強大的工具&#xff0c;用于處理集合&#xff08;如 List、Set&#xff09;中的元素。它支持各種操作&#xff0c;包括過濾、排序、映射等&#xff0c;并且能夠以聲明式的方式表達復雜的查詢操作。流操作可以是中間操作&#xff08;返回流以便進…

4. Flink SQL訪問HiveCatalog

一. 實驗環境 Flink版本: 1.19.1 Hive版本: 2.1.3 Hadoop版本: 3.2.4二. 操作步驟 1.上傳所需的jar包到Flink lib目錄下 [roothadoop3 ~]# mv flink-sql-connector-hive-3.1.3_2.12-1.19.1.jar /www/flink-1.19.1/lib [roothadoop3 ~]# mv hadoop-mapreduce-client-core-3.2…

虛擬試衣間-云尚衣櫥小程序-衣櫥管理實現

衣櫥管理實現 目標 (Goal): 用戶 (User): 能通過 UniApp 小程序上傳衣服圖片。 后端 (Backend): 接收圖片,存到云存儲,并將圖片信息(URL、用戶ID等)存入數據庫。 用戶 (User): 能在小程序里看到自己上傳的所有衣服圖片列表。 技術棧細化 (Refined Tech Stack for this Pha…

HAL庫 通過USB Boot進行APP程序升級

硬件&#xff1a;stm32f407VET6芯片&#xff1b; 軟件&#xff1a;STM32CubeMx、Keil5 上位機&#xff1a;Dfuse DemoV3.06 這里給出通過在Bootlaoder中使用USB方式來更新APP程序的方法&#xff0c;首先我們編寫一個自己的bootloader&#xff0c;關于bootloader的大致原理可以…