Kubernetes存储之volume
生活随笔
收集整理的這篇文章主要介紹了
Kubernetes存储之volume
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
容器磁盤上的文件的生命周期是短暫的,這就使得在容器中運行重要應用時會出現(xiàn)一些問題,首先,當容器崩潰時,kubelet會重啟它,但是容器的文件將丟失—容器以干凈的狀態(tài)(鏡像最初的狀態(tài))重新啟動,其次,在pod 中同時運行多個容器是,這些容器之間通常需要共享文件,Kubernetes中的volume 抽象就很好的解決了這些問題。
背景
Kubernetes中的卷有明確的壽命–與封裝它的Pod相同,所以,卷的生命比Pod中所有容器都長,當這個容器重啟時數(shù)據(jù)任然得以保存,當然,當Pod不存在時,卷也將不復存在,也許更重要的是,Kubernetes支持多種類型的卷,Pod可以同時使用任意數(shù)量的卷。
卷的類型
Kubernetes支持一下類型的卷:
- awsElasticBlockStore azureDisk azureFile cephfs csi downwardAPI enptyDir
- fc flocker gcePersistenDisk gitRepo glusterfs hostPath iscsi local nfs
- persistenVolumeClaim prejected portworxVolume quobyte rbd scaleIO secret
- storageos vsphereVolume
empthDir
- 暫存空間,例如用于基于磁盤的合并排序
- 用作長時間計算崩潰恢復時的檢查點
- Web服務器容器提供數(shù)據(jù)時,保存內(nèi)容管理器容器提取的文件
hostPath
hostPath 卷將主節(jié)點的文件系統(tǒng)中的文件或目錄掛載到集群中
hostPath 的用途如下:
- 運行需要訪問的Docker內(nèi)部的容器;使用/var/lib/docker 的hostPath
- 在容器中運行cAdvisor;使用/dev/cgroups 的 hostPath
除了所需的path 屬性外,用戶還可以為hostPaht 卷指定type
| 空字符串(默認)用于向后兼容,這意味著在掛載hostPath卷之前不會執(zhí)行任何檢查 | |
| DirectoryOrCreate | 如果在給定的路徑上沒有任何東西存在,那么將根據(jù)需要在那里創(chuàng)建一個空目錄,權限設置為0755,與Kubelet具有相同的組合所有權 |
| Directory | 給定的路徑下必須存在目錄 |
| FileOrCreate | 如果在給定的路徑上沒有任何東西存在,那么會根據(jù)需要創(chuàng)建一個空文件,權限設置為0644,與Kubelet具有相同的組合所有權 |
| File | 在給定的路徑下必須存在文件 |
| Socket | 在給定的路徑下必須存在UNIX套接字 |
| CharDevice | 在給定的路徑下必須存在字符設備 |
| BlockDevice | 在給定的路徑下必須存在塊設備 |
使用這種類型時注意,因為:
- 由于每個節(jié)點上的文件都不同,具有相同配置(例如從podTemplate創(chuàng)建的)的pod在不同節(jié)點上的行為可能會有所不同
- 當Kubernetes按照計劃添加資源感知調(diào)度時,將無法考慮hostPath使用的資源
- 在底層主機上創(chuàng)建的文件或目錄只能由root寫入,你需要在特權容器中以root身份運行進程,或修改主機上的文件權限以便寫入hostPath卷
總結(jié)
以上是生活随笔為你收集整理的Kubernetes存储之volume的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kubernetes存储之Secret
- 下一篇: Kubernetes安全之认证