kubernetes對(duì)象Volume用法詳解-創(chuàng)新互聯(lián)

概述

十載的潼關(guān)網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整潼關(guān)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“潼關(guān)網(wǎng)站設(shè)計(jì)”,“潼關(guān)網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

Volume是對(duì)各種存儲(chǔ)資源的抽象、虛擬化。為管理、控制、使用存儲(chǔ)資源提供統(tǒng)一接口。Openstack中的volume為虛擬機(jī)提供存儲(chǔ),Docker中的volume為容器提供存儲(chǔ)。因?yàn)樵趉ubernetes中可部署運(yùn)行最小單位是pod ,所以kubernetes的volume為pod提供存儲(chǔ)。當(dāng)然在部署pod時(shí)可以不為其提供volume,pod中的容器使用所在節(jié)點(diǎn)的硬盤,能同時(shí)讀寫數(shù)據(jù)的地方稱為可讀寫層。這種存儲(chǔ)是容器級(jí)的臨時(shí)存儲(chǔ),不是pod級(jí)。其生命周期與容器相同,如果容器crash后被重啟,也就是舊容器被刪除而新容器啟動(dòng),則舊容器的可讀寫層與容器一起被刪除,其上數(shù)據(jù)丟失。同理如果pod在節(jié)點(diǎn)之間遷移調(diào)度,容器的可讀寫層并不會(huì)遷移調(diào)度。因此,kubernetes需要提供pod級(jí)volume,本文中的volume特指kubernetes。

Volume類型


Volume是抽象概念,有很多種具體實(shí)現(xiàn),每種實(shí)現(xiàn)各具目的、特點(diǎn)、特性。差不多什么東西都可以當(dāng)成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
  • 這里不對(duì)以上所有類型一一介紹,只對(duì)目前可能會(huì)用到的本地磁盤存儲(chǔ)和分布式存儲(chǔ)做簡(jiǎn)單介紹說(shuō)明

常見存儲(chǔ)類型說(shuō)明及示例


cephfs


cephfs是一款優(yōu)秀、流行的云環(huán)境存儲(chǔ)解決方案,原因是它開源、高可用、彈性伸縮,對(duì)操作系統(tǒng)、硬件無(wú)特殊要求,用戶很容易搭建,使用它的節(jié)點(diǎn)也無(wú)特別要求。它具備awsElasticBlockStore陳述之所有特點(diǎn),并且單個(gè)voluem可以被多個(gè)節(jié)點(diǎn)同時(shí)使用。用戶首先搭建自己的cephfs環(huán)境,然后配置kubernetes集群與其對(duì)接,最后在pod中使用其提供的volume,詳細(xì)參考這里。

configMap


用戶首先創(chuàng)建configMap并創(chuàng)建數(shù)據(jù)保存其中,此時(shí)數(shù)據(jù)保存在kubernetes的etcd數(shù)據(jù)庫(kù)中,volume還不存在。當(dāng)用戶在pod中引用創(chuàng)建的configMap時(shí),系統(tǒng)首先在節(jié)點(diǎn)上創(chuàng)建volume并將數(shù)據(jù)保存其中,這個(gè)volume占用的是節(jié)占的存儲(chǔ)空間。此后就可以像使用普通volume一樣使用它。

configMap是kubernetes中的一種對(duì)象類型,核心本質(zhì)是以volume的方式將單獨(dú)管理的配置信息傳遞給pod中的容器,并非用來(lái)存儲(chǔ)持久化數(shù)據(jù)。詳細(xì)參考這里。

downwardAPI


與configMap類似,以volume的方式向pod中的容器傳遞信息。configMap中的信息由用戶在創(chuàng)建對(duì)象時(shí)傳遞,而downwardAPI的信息就來(lái)自pod對(duì)象本身,downwardAPI不需要?jiǎng)?chuàng)建,它是pod Spec中的一個(gè)字段,內(nèi)容指向pod對(duì)象本身的其它字段,如pod的metadata、image等信息。在創(chuàng)建pod時(shí)系統(tǒng)首先將指向的字段提取出來(lái),然后創(chuàng)建volume并保存提取出來(lái)的字段并掛載,容器就可以讀取這些字段了。

downwardAPI的目的是為將pod本身的字段信息如label、annotation等傳遞給容器的一種手段。詳細(xì)參考這里。

emptyDir


在節(jié)點(diǎn)上運(yùn)行pod實(shí)例時(shí)才會(huì)創(chuàng)建emptyDir volume。它首先是節(jié)點(diǎn)上的一個(gè)空目錄,pod中的任何容器都可以用volume的形式掛載使用它。如果容器因?yàn)槟撤N原因被刪除并重新啟動(dòng),創(chuàng)建的emptyDir不會(huì)刪除也不會(huì)被清空。當(dāng)pod實(shí)例離開節(jié)點(diǎn)調(diào)度到其它節(jié)點(diǎn)或因?yàn)榭s容被刪除時(shí),emptyDir被刪除,相當(dāng)于pod還在但數(shù)據(jù)丟了。示例:

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

本文名稱:kubernetes對(duì)象Volume用法詳解-創(chuàng)新互聯(lián)
文章位置:http://muchs.cn/article18/dsihgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、品牌網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、ChatGPT、網(wǎng)站營(yíng)銷、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司