Kubernetes Pv & Pvc

Kubernetes PV & pvc


介紹

PersistentVolume(pv)和PersistentVolumeClaim(pvc)是k8s提供的兩種API資源,用于抽象存儲細節(jié)。管理員關(guān)注于如何通過pv提供存儲功能而無需
關(guān)注用戶如何使用彩掐,同樣的用戶只需要掛載pvc到容器中而不需要關(guān)注存儲卷采用何種技術(shù)實現(xiàn)凫海。
pvc和pv的關(guān)系與pod和node關(guān)系類似寂汇,前者消耗后者的資源。pvc可以向pv申請指定大小的存儲資源并設置訪問模式,這就可以通過Provision -> Claim 的方式,來對存儲資源進行控制罩锐。

生命周期

pv和pvc遵循以下生命周期:

  • 供應準備。通過集群外的存儲系統(tǒng)或者云平臺來提供存儲持久化支持卤唉。
    - 靜態(tài)提供:管理員手動創(chuàng)建多個PV涩惑,供PVC使用。
    - 動態(tài)提供:動態(tài)創(chuàng)建PVC特定的PV桑驱,并綁定竭恬。

  • 綁定。用戶創(chuàng)建pvc并指定需要的資源和訪問模式熬的。在找到可用pv之前痊硕,pvc會保持未綁定狀態(tài)。

  • 使用押框。用戶可在pod中像volume一樣使用pvc岔绸。

  • 釋放。用戶刪除pvc來回收存儲資源,pv將變成“released”狀態(tài)盒揉。由于還保留著之前的數(shù)據(jù)晋被,這些數(shù)據(jù)需要根據(jù)不同的策略來處理,否則這些存儲資源無法被其他pvc使用刚盈。

  • 回收(Reclaiming)羡洛。pv可以設置三種回收策略:保留(Retain),回收(Recycle)和刪除(Delete)藕漱。
    - 保留策略:允許人工處理保留的數(shù)據(jù)欲侮。
    - 刪除策略:將刪除pv和外部關(guān)聯(lián)的存儲資源,需要插件支持肋联。
    - 回收策略:將執(zhí)行清除操作锈麸,之后可以被新的pvc使用,需要插件支持牺蹄。

      目前只有NFS和HostPath類型卷支持回收策略忘伞,AWS EBS,GCE PD,Azure Disk和Cinder支持刪除(Delete)策略。
    

Provisioning

兩種方式提供的PV資源供給:

  • static

      通過集群管理者創(chuàng)建多個PV沙兰,為集群“使用者”提供存儲能力而隱藏真實存儲的細節(jié)氓奈。并且存在于kubenretes api中,可被直接使用鼎天。
    
  • dynamic

      動態(tài)卷供給是kubernetes獨有的功能舀奶,這一功能允許按需創(chuàng)建存儲建。在此之前斋射,集群管理員需要事先在集群外由存儲提供者或者云提供商創(chuàng)建
    

存儲卷育勺,成功之后再創(chuàng)建PersistentVolume對象,才能夠在kubernetes中使用罗岖。動態(tài)卷供給能讓集群管理員不必進行預先創(chuàng)建存儲卷涧至,而是隨著用戶需求
進行創(chuàng)建。在1.5版本提高了動態(tài)卷的彈性和可用性桑包。

    在此前1.4版本中加入了一個 新的 API 對象 StorageClass南蓬,可以定義多個 StorageClass 對象,并可以分別指定存儲插件哑了、設置參數(shù)赘方,用于提

供不同的存儲卷。這樣的設計讓集群管理員能夠在同一個集群內(nèi)弱左,定義和提供不同類型的窄陡、不同參數(shù)的卷(相同或者不同的存儲系統(tǒng))。這樣的設計還確
保了最終用戶在無需了解太多的情況下拆火,有能力選擇不同的存儲選項跳夭。

PV類型

pv支持以下類型:

  • GCEPersistentDisk
  • AWSElasticBlockStore
  • NFS
  • iSCSI
  • RBD (Ceph Block Device)
  • Glusterfs
  • AzureFile
  • AzureDisk
  • CephFS
  • cinder
  • FC
  • FlexVolume
  • Flocker
  • PhotonPersistentDisk
  • Quobyte
  • VsphereVolume
  • HostPath (single node testing only – local storage is not supported in any way and WILL NOT WORK in a multi-node cluster)

PV屬性:

  • 訪問模式,與pv的語義相同鳖悠。在請求資源時使用特定模式。
  • 資源,申請的存儲資源數(shù)額优妙。

PV卷階段狀態(tài):

  • Available – 資源尚未被claim使用
  • Bound – 卷已經(jīng)被綁定到claim了
  • Released – claim被刪除乘综,卷處于釋放狀態(tài),但未被集群回收套硼。
  • Failed – 卷自動回收失敗

AwsElasticBlockServer 靜態(tài)PV示例

需要滿足以下條件方可使用EBS:

  • Pod運行的節(jié)點必須為AWS EC2實例
  • 這些示例需要和EBS在同一個區(qū)域和可用區(qū)域
  • EBS只支持一個EC2掛載一個卷
  • RC或者Deployment 副本集只能為1卡辰。

1. 創(chuàng)建PV(Persistent Volume)

$ vim ebs-pv.yaml

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: ebs-pv
      labels:
        type: amazonEBS
    spec:
      capacity:
        storage: 5Gi
      accessModes:
        - ReadWriteOnce
      awsElasticBlockStore:
        volumeID: vol-079c492115a7be6e1
        fsType: ext4

$ kubectl create -f ebs-pv.yaml

    persistentvolume "ebs-pv" created

2. 創(chuàng)建PVC(Persistent Volume Claim)

$ vim nginx-pvc.yaml

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: nginx-pvc
      labels:
        type: amazonEBS
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 5Gi

$ kubectl create -f nginx-pvc.yaml

    persistentvolumeclaim "nginx-pvc" created

3.創(chuàng)建deployment服務使用pvc資源

$ vim nginx-with-pvc.yaml

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: nginx-with-pvc
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            service: nginx
            app: test
        spec:
          containers:
          - image: nginx
            name: nginx-with-pvc
            volumeMounts:
            - mountPath: /test-ebs
              name: my-pvc
          volumes:
          - name: my-pvc
            persistentVolumeClaim:
              claimName: nginx-pvc

kubectl create -f nginx-with-pvc.yaml

    Deployment "nfs-web" created

注意事項

    - 由于aws ebs限制一個ebs只能同時掛載一個ec2,在使用基于pvc的pod時,建議使用replicas=1來創(chuàng)建一個部署集邪意。StatefulSet可解決數(shù)據(jù)庫集群問題九妈。
    - pod遷移,pvc遷移(卸載舊實例/掛載新實例)默認35秒。
    - 通過deployemnt部署雾鬼,刪除deployment之后萌朱,可重新掛載原有pvc到新的pod里面。
    - 當pod被刪除策菜,同時刪除依賴的pvc晶疼,pv狀態(tài)變更為release。此時不能被其他pvc使用又憨,aws ebs需要delete pv重建翠霍。目前不支持通過手動回收


- 已經(jīng)被pvc綁定的pv可以被刪除蠢莺,刪除后對應的pvc仍為Bound狀態(tài)寒匙。如有pod正在使用此pvc則仍可使用。如無pod使用躏将,則創(chuàng)建pod掛載此pvc時
會出現(xiàn)失敗锄弱。
- pv可以在綁定后被編輯(如訪問模式,容量)祸憋,導致信息與對應的pvc不一致会宪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市夺衍,隨后出現(xiàn)的幾起案子狈谊,更是在濱河造成了極大的恐慌,老刑警劉巖沟沙,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異壁榕,居然都是意外死亡矛紫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門牌里,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颊咬,“玉大人务甥,你說我怎么就攤上這事≡” “怎么了敞临?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長麸澜。 經(jīng)常有香客問我挺尿,道長,這世上最難降的妖魔是什么炊邦? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任编矾,我火速辦了婚禮,結(jié)果婚禮上馁害,老公的妹妹穿的比我還像新娘窄俏。我一直安慰自己,他們只是感情好碘菜,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布凹蜈。 她就那樣靜靜地躺著,像睡著了一般忍啸。 火紅的嫁衣襯著肌膚如雪踪区。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天吊骤,我揣著相機與錄音缎岗,去河邊找鬼。 笑死白粉,一個胖子當著我的面吹牛传泊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸭巴,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼眷细,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鹃祖?” 一聲冷哼從身側(cè)響起溪椎,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎恬口,沒想到半個月后校读,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡祖能,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年歉秫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片养铸。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡雁芙,死狀恐怖轧膘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兔甘,我是刑警寧澤谎碍,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站洞焙,受9級特大地震影響蟆淀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜闽晦,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一扳碍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仙蛉,春花似錦笋敞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至哀墓,卻和暖如春趁餐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背篮绰。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工后雷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吠各。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓臀突,卻偏偏與公主長得像,于是被迫代替她去往敵國和親贾漏。 傳聞我的和親對象是個殘疾皇子候学,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)纵散,斷路器梳码,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • 特性 動態(tài)卷供給是kubernetes獨有的功能,這一功能允許按需創(chuàng)建存儲建伍掀。在此之前掰茶,集群管理員需要事先在集群外...
    YichenWong閱讀 7,485評論 0 1
  • 昨日,魅族旗艦機型PRO 6s正式在京東開售硕盹。這部以相機和續(xù)航能力升級為賣點的魅族PRO 6s再加上2699...
    簡說666閱讀 210評論 0 0
  • ActivityManagerServices符匾、ActivityThread、ApplicationThread瘩例、...
    背影殺手不太冷閱讀 346評論 0 2
  • 有意加入了一個微信群啊胶,一下子被沖進信息洪流,每個人都在忙碌掙扎垛贤,忙著讓自己成為一則信息焰坪!寫寫只是想留一些心靈...
    北斗星影教育文老師閱讀 367評論 0 2