成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Kubernetes中的Volume概念

libxd / 424人閱讀

摘要:背景中有的概念,其中對(duì)它的管理有點(diǎn)松散。鏡像是文件系統(tǒng)層次的根,任何被掛載到鏡像中的特定目錄上。中的每個(gè)容器必須獨(dú)立指定每個(gè)的位置。當(dāng)一個(gè)由于某種原因從節(jié)點(diǎn)上移除,中的數(shù)據(jù)也會(huì)被永久刪除。

容器中的磁盤文件是易失的,這給運(yùn)行在容器中的大型應(yīng)用帶來(lái)了一些麻煩。首先,當(dāng)一個(gè)容器崩潰,kubelet會(huì)重啟它,但是之前存儲(chǔ)的文件會(huì)丟失 - 容器以一個(gè)初始的狀態(tài)重建。第二,當(dāng)在一個(gè)Pod中運(yùn)行多個(gè)container,這些container之間常常需要共享文件。Kubernetes的Volume抽象解決了這些問(wèn)題。

背景

Docker中有Volumes的概念,其中對(duì)它的管理有點(diǎn)松散。在Docker中,一個(gè)volume就簡(jiǎn)單的是個(gè)磁盤或者其他容器中的目錄,它的生命周期是不被管理的,并且在最近的Docker版本中還只支持基于本地磁盤的volume。Docker最新版本已經(jīng)提供了volume驅(qū)動(dòng),但是它的功能目前還非常有限(例如,Docker 1.7中每個(gè)容器只允許有一個(gè)volume驅(qū)動(dòng),并且不能向volume傳參)。

Kubernetes的volume有一個(gè)顯式的生命周期 - 和持有它的Pod的生命周期相同。因此,一個(gè)volume比它所在Pod中的任何一個(gè)容器的生命周期都要長(zhǎng),并且容器重啟后數(shù)據(jù)仍在。當(dāng)然了,如果一個(gè)Pod不存在了,它的volume也就不存在了。更重要的是,Kubernetes支持不同類型的volume,并且一個(gè)Pod可以同時(shí)使用多個(gè)類型的volume。

一個(gè)volume只是一個(gè)目錄,可能其中有一些數(shù)據(jù),對(duì)于Pod中的容器是可訪問(wèn)的。這個(gè)目錄是哪兒來(lái)的,支撐它的介質(zhì),以及它的內(nèi)容物,都是由使用的特定volume類型決定的。

要使用一個(gè)volume,一個(gè)Pod指定提供給它的那些volume(.spec.volumes字段)以及掛載到容器的位置(.soec.containers.volumeMounts字段)。

容器中的一個(gè)進(jìn)程,它看待文件系統(tǒng)是由Docker鏡像以及一個(gè)或多個(gè)volume組成的。Docker鏡像是文件系統(tǒng)層次的根,任何volume被掛載到鏡像中的特定目錄上。volume不能掛載到其他volume或者有到其他volume的硬鏈接(hard links)。Pod中的每個(gè)容器必須獨(dú)立指定mount每個(gè)volume的位置。

Volume的類型

Kubernetes支持多種volume類型:

awsElasticBlockStore

azureDisk

azureFile

cephfs

configMap

csi

downwardAPI

emptyDir

fc (fibre channel)

flocker

gcePersistentDisk

gitRepo (deprecated)

glusterfs

hostPath

iscsi

local

nfs

persistentVolumeClaim

projected

portworxVolume

quobyte

rbd

scaleIO

secret

storageos

vsphereVolume

awsElasticBlockStore

awsElasticBlockStore卷在Pod中掛載一個(gè)Amazon Web Services(AWS)EBS Volume。不同于emptyDir在Pod移除時(shí)做擦除,一個(gè)EBS卷的內(nèi)容一直保留,并且卷很少被卸載。這意味著一個(gè)EBS卷可以被預(yù)填充數(shù)據(jù),并且數(shù)據(jù)可以在Pod間進(jìn)行傳遞。

重要:在使用之前你必須使用aws ec2 create-volume或者AWS API創(chuàng)建一個(gè)EBS卷。

使用一個(gè)awsElasticBlockStore卷時(shí),有幾個(gè)限制:

Pod運(yùn)行的Node必須是一個(gè)AWS EC2實(shí)例

這些實(shí)例需要和EBS卷處于相同范圍(region)以及可用區(qū)域(availability-zone)

一個(gè)多帶帶的EC2實(shí)例只支持掛載一個(gè)EBS卷

創(chuàng)建一個(gè)EBS卷
aws ec2 create-volume --availability-zone=eu-west-1a --size=10 --volume-type=gp2

要保證zone和k8s集群相同。(并需要檢查size以及EBS卷類型是否合理)

AWS EBS實(shí)例配置
apiVersion: v1
kind: Pod
metadata:
  name: test-ebs
spec:
  containerss:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /test-ebs
      name: test-volume
  volumes:
  - name: test-volume
    # This AWS EBS volume must already exist.
    awsElasticBlockStore:
      volumeID: 
      fsType: ext4 
azureDisk

azureDisk用于將一個(gè)Microsoft Azure Data Disk掛載到一個(gè)Pod中。

更多細(xì)節(jié)敲這里。

emptyDir

一個(gè)emptyDir卷在Pod分配給Node時(shí)首次創(chuàng)建,并且只要Pod在節(jié)點(diǎn)上運(yùn)行,它就一直存在。正如它的名字所說(shuō),它初始是空的。Pod中的容器可以在一個(gè)emptyDir卷中讀寫到相同文件,盡管這個(gè)卷可以掛載到不同容器的相同或不同的路徑。當(dāng)一個(gè)Pod由于某種原因從節(jié)點(diǎn)上移除,emptyDir中的數(shù)據(jù)也會(huì)被永久刪除。

注意:一個(gè)容器崩潰并不會(huì)從一個(gè)節(jié)點(diǎn)移除所在Pod,因此在容器崩潰的條件下,emptyDir卷中的數(shù)據(jù)是安全的。

emptyDir的應(yīng)用場(chǎng)景:

臨時(shí)的空間,例如用于一個(gè)基于磁盤的merge sort

用于從崩潰恢復(fù)的長(zhǎng)時(shí)計(jì)算

保存一個(gè)內(nèi)容管理容器獲取的數(shù)據(jù),這些數(shù)據(jù)用于一個(gè)webserver容器對(duì)外提供服務(wù)

默認(rèn)情況下,emptyDir卷可以基于節(jié)點(diǎn)上的任何介質(zhì)進(jìn)行存儲(chǔ) - 可能是磁盤或者SSD或者網(wǎng)絡(luò)存儲(chǔ),這取決于你的環(huán)境。你也可以設(shè)置emptyDir.medium字段為Memory,以告知Kubernetes為你掛載一個(gè)tmpfs(基于內(nèi)存的文件系統(tǒng))。不同于磁盤,tmpfs非???,并且tmpfs在節(jié)點(diǎn)重啟時(shí)會(huì)被擦除并且你寫入的數(shù)據(jù)量取決于你的容器內(nèi)存大小。

示例Pod
apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumnMounts:
    - mountPath: /cache
      name: cache-volume
  volumes:
  - name: cache-volumne
    emptyDir: {}    

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/32711.html

相關(guān)文章

  • Kubernetes概念與術(shù)語(yǔ)

    摘要:標(biāo)識(shí)是與操作對(duì)象間的紐帶。集群為每個(gè)對(duì)象維護(hù)三類信息對(duì)象元數(shù)據(jù)期望狀態(tài)與實(shí)際狀態(tài)元數(shù)據(jù)指對(duì)象的基本信息,比如命名標(biāo)簽注釋等等,用于識(shí)別對(duì)象期望狀態(tài)一般由用戶配置來(lái)描述的實(shí)際狀態(tài)是由集群各個(gè)組件上報(bào)的集群實(shí)際的運(yùn)行情況。 綜述 學(xué)習(xí)Kubernetes時(shí),發(fā)現(xiàn)它的概念和術(shù)語(yǔ)還是比較多的,光靠啃官方文檔比較晦澀。所以邊學(xué)習(xí)邊整理,對(duì)主要的概念和術(shù)語(yǔ)做一下分類及簡(jiǎn)要說(shuō)明。感覺(jué)把重要概念都理解...

    _Suqin 評(píng)論0 收藏0
  • 深入淺出聊聊Kubernetes存儲(chǔ)(一):詳解Kubernetes存儲(chǔ)關(guān)鍵概念

    摘要:功能強(qiáng)大擴(kuò)展性高,在許多人看來(lái),它正在成為云計(jì)算的終極解決方案。我已經(jīng)多次給具有豐富存儲(chǔ)和云計(jì)算經(jīng)驗(yàn)的人解釋過(guò)這些問(wèn)題,他們幾乎都是抓耳撓腮,不明白這是怎么回事。和可能因?yàn)楹褪褂闷饋?lái)太麻煩了,在年月,隨著版本的發(fā)布,引入了動(dòng)態(tài)納管和的概念。 Kubernetes存儲(chǔ)全解!你知道PV和PVC的區(qū)別嗎?storage class和provisioner是什么關(guān)系?VolumeClaimTe...

    loonggg 評(píng)論0 收藏0
  • 深入淺出聊聊Kubernetes存儲(chǔ)(二):搞定持久化存儲(chǔ)

    摘要:這與不同,因?yàn)閷⒗^續(xù)存在于系統(tǒng)中,直到用戶刪除它。和持久卷聲明之間很容易弄混淆。該在直接和使用前必須已經(jīng)存在。這對(duì)于需要持久化儲(chǔ)存但只有本地卷可用的工作負(fù)載,這非常有用。此外,由于缺少,會(huì)失去使用自動(dòng)伸縮的能力。 showImg(https://segmentfault.com/img/remote/1460000017071596?w=1920&h=1080); 回 顧 在本系列...

    韓冰 評(píng)論0 收藏0
  • kubernetes基本概念

    摘要:基本架構(gòu)彩色版基本概念節(jié)點(diǎn)運(yùn)行著集群管理相關(guān)的一組進(jìn)程這些進(jìn)程實(shí)現(xiàn)了整個(gè)集群的資源管理調(diào)度彈性伸縮安全控制系統(tǒng)監(jiān)控糾錯(cuò)等管理功能。內(nèi)置了透明的負(fù)載均衡以及故障恢復(fù)的機(jī)制。標(biāo)簽解決與之間的關(guān)聯(lián)問(wèn)題。 基本架構(gòu) showImg(https://segmentfault.com/img/bVuv7w); 彩色版 showImg(https://segmentfault.com/img/bVu...

    piapia 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<