久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Kubernetes如何管理存儲資源

161次閱讀
沒有評論

共計 1805 個字符,預(yù)計需要花費 5 分鐘才能閱讀完成。

Kubernetes 如何管理存儲資源,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

首先我們會學(xué)習(xí) Volume,以及 Kubernetes 如何通過 Volume 為集群中的容器提供存儲;然后我們會實踐幾種常用的 Volume 類型并理解它們各自的應(yīng)用場景;最后,我們會討論 Kubernetes 如何通過 Persistent Volume 和 Persistent Volume Claim 分離集群管理員與集群用戶的職責(zé),并實踐 Volume 的靜態(tài)供給和動態(tài)供給。

Volume

本節(jié)我們討論 Kubernetes 的存儲模型 Volume,學(xué)習(xí)如何將各種持久化存儲映射到容器。

我們經(jīng)常會說:容器和 Pod 是短暫的。
其含義是它們的生命周期可能很短,會被頻繁地銷毀和創(chuàng)建。容器銷毀時,保存在容器內(nèi)部文件系統(tǒng)中的數(shù)據(jù)都會被清除。

為了持久化保存容器的數(shù)據(jù),可以使用 Kubernetes Volume。

Volume 的生命周期獨立于容器,Pod 中的容器可能被銷毀和重建,但 Volume 會被保留。

本質(zhì)上,Kubernetes Volume 是一個目錄,這一點與 Docker Volume 類似。當(dāng) Volume 被 mount 到 Pod,Pod 中的所有容器都可以訪問這個 Volume。Kubernetes Volume 也支持多種 backend 類型,包括 emptyDir、hostPath、GCE Persistent Disk、AWS Elastic Block Store、NFS、Ceph 等,完整列表可參考  https://kubernetes.io/docs/concepts/storage/volumes/#types-of-volumes

Volume 提供了對各種 backend 的抽象,容器在使用 Volume 讀寫數(shù)據(jù)的時候不需要關(guān)心數(shù)據(jù)到底是存放在本地節(jié)點的文件系統(tǒng)中呢還是云硬盤上。對它來說,所有類型的 Volume 都只是一個目錄。

我們將從最簡單的 emptyDir 開始學(xué)習(xí) Kubernetes Volume。

emptyDir

emptyDir 是最基礎(chǔ)的 Volume 類型。正如其名字所示,一個 emptyDir Volume 是 Host 上的一個空目錄。

emptyDir Volume 對于容器來說是持久的,對于 Pod 則不是。當(dāng) Pod 從節(jié)點刪除時,Volume 的內(nèi)容也會被刪除。但如果只是容器被銷毀而 Pod 還在,則 Volume 不受影響。

也就是說:emptyDir Volume 的生命周期與 Pod 一致。

Pod 中的所有容器都可以共享 Volume,它們可以指定各自的 mount 路徑。下面通過例子來實踐 emptyDir,配置文件如下:

這里我們模擬了一個 producer-consumer 場景。Pod 有兩個容器  producer 和  consumer,它們共享一個 Volume。producer  負(fù)責(zé)往 Volume 中寫數(shù)據(jù),consumer  則是從 Volume 讀取數(shù)據(jù)。

① 文件最底部  volumes  定義了一個  emptyDir  類型的 Volume shared-volume。

② producer  容器將  shared-volume mount 到  /producer_dir  目錄。

③ producer  通過  echo  將數(shù)據(jù)寫到文件  hello  里。

④ consumer  容器將  shared-volume mount 到  /consumer_dir  目錄。

⑤ consumer  通過  cat  從文件  hello  讀數(shù)據(jù)。

執(zhí)行如下命令創(chuàng)建 Pod:

這里  /var/lib/kubelet/pods/3e6100eb-a97a-11e7-8f72-0800274451ad/volumes/kubernetes.io~empty-dir/shared-volume  就是 emptyDir 在 Host 上的真正路徑。

emptyDir 是 Host 上創(chuàng)建的臨時目錄,其優(yōu)點是能夠方便地為 Pod 中的容器提供共享存儲,不需要額外的配置。但它不具備持久性,如果 Pod 不存在了,emptyDir 也就沒有了。根據(jù)這個特性,emptyDir 特別適合 Pod 中的容器需要臨時共享存儲空間的場景,比如前面的生產(chǎn)者消費者用例。

看完上述內(nèi)容,你們掌握 Kubernetes 如何管理存儲資源的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝各位的閱讀!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計1805字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 乌鲁木齐县| 中超| 阜新| 县级市| 长海县| 宿州市| 九龙县| 石林| 科技| 巴马| 保定市| 长白| 红安县| 宜黄县| 福安市| 泰州市| 广西| 宝兴县| 开封县| 缙云县| 南木林县| 沙湾县| 通许县| 喜德县| 孟州市| 华亭县| 龙游县| 沙湾县| 清水河县| 阿勒泰市| 阿荣旗| 许昌市| 松潘县| 广汉市| 鄂温| 麟游县| 安顺市| 仲巴县| 马龙县| 南郑县| 福贡县|