簡體   English   中英

使用 emptyDir 介質的缺點 = memory

[英]Disadvantage of using emptyDir medium = memory

我覺得我誤解了 Kubernetes 中基於 RAM 的emptyDir卷。

  1. 假設我的 Kubernetes 節點總共有 100GB。 如果我有 4 個不同的 emptyDirs,它們的emptyDir.medium設置為“內存”,默認情況下它們都會有 50GB 的 memory 嗎? 在這種情況下,當我的 4 個 emptyDirs 中使用的 memory 總量超過 100GB 時會發生什么?

  2. 我知道一般 RAM 很快,但有哪些缺點示例? 官方文檔中,我看到了以下內容,但我不太明白該聲明。 我的理解是,如果 Pod 崩潰,使用磁盤的 emptyDirs 上的文件仍然會被刪除。 如果文件存儲在磁盤中,是否會在節點重新啟動時保留這些文件? 另外, count against container memory limit是什么意思?

While tmpfs is very fast, be aware that unlike disks, 
tmpfs is cleared on node reboot and any files you 
write count against your container's memory limit

...by default will they all have 50GBs of memory?

是的。 您可以執行到 pod 並使用df -h檢查。 如果您的集群啟用了SizeMemoryBackedVolumes功能,您可以指定大小。

...what happens when the total amount of memory used in my 4 emptyDirs exceeds 100GB?

你不會有這個機會,因為當所有 emptyDir(s) 使用的 memory 總量達到 50GB 時; 您的 pod 將被驅逐。 它不需要一個 emptyDir 來達到 50GB 來驅逐

...don't quite understand the statement.

這意味着您將無法取回存儲在 emptyDir 上的數據。

count against container memory limit

這意味着您使用 emptyDir 消耗的 memory 的數量被添加到您的容器使用的 memory 的數量中,並檢查 resources.limits.memory。

相同的 文檔頁面

當 Pod 因任何原因從節點中移除時,emptyDir 中的數據將被永久刪除。

注意:容器崩潰不會從節點中刪除 Pod。 emptyDir 卷中的數據在容器崩潰時是安全的。

所以 pod crash 不會導致emptyDir卷被清除。

關於 memory 支持卷的一般用法:始終指定 pod memory 限制,否則您可能會遇到各種反直覺的 pod 驅逐等意外。

此外,如果您打算主動寫入 memory 支持的卷(這就是 memory 的用途),您需要仔細控制寫入的數據量,否則您可能會遇到奇怪的應用程序崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM