成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入淺出聊聊Kubernetes存儲(chǔ)

存儲(chǔ) 存儲(chǔ)軟件
如今,世界范圍內(nèi)的公有云巨頭(谷歌、亞馬遜、微軟、華為云、阿里云等等)都在其傳統(tǒng)的公共云服務(wù)之上提供托管的Kubernetes服務(wù)。

近年來一直關(guān)注云計(jì)算領(lǐng)域的人,必定知道Docker和Kubernetes的崛起。如今,世界范圍內(nèi)的公有云巨頭(谷歌、亞馬遜、微軟、華為云、阿里云等等)都在其傳統(tǒng)的公共云服務(wù)之上提供托管的Kubernetes服務(wù)。Kubernetes功能強(qiáng)大、擴(kuò)展性高,在許多人看來,它正在成為云計(jì)算的終極解決方案。

但不得不說的是,盡管Kubernetes建立在谷歌在生產(chǎn)環(huán)境運(yùn)行工作負(fù)載的超過15年的經(jīng)驗(yàn)之上,它非常復(fù)雜,一些設(shè)計(jì)決策總是讓用戶難以理解。即使對(duì)于經(jīng)驗(yàn)最豐富的工程師來說,Kubernetes的學(xué)習(xí)曲線也很陡峭。

就以存儲(chǔ)來舉例。你知道PV和PVC的區(qū)別嗎?storage class和provisioner的關(guān)系是什么?VolumeClaimTemplates是什么?什么時(shí)候該用statefulset?

在本文中,我將嘗試解釋Kubernetes中的一些關(guān)鍵概念,以及我對(duì)它們的看法。我希望這也會(huì)幫助大家更多地了解Kubernetes。使用Kubernetes時(shí),有許多設(shè)計(jì)選擇和警告讓我意想不到。今天我將講講PV、PVC、Storage Class和Provisioner。

[[284542]]

 

Docker中的Volume(卷)

在深入了解Kubernetes之前,讓我們先聊聊Docker——畢竟Kubernetes是構(gòu)建在Docker之上。

Docker因其簡(jiǎn)單易用聞名,這也是Docker能如此受歡迎,并成為Kubernetes基礎(chǔ)的原因。Docker容器是無狀態(tài)、快速的,它可以被破壞、重建,而不需要付出太多的代價(jià)。但是,就像是患了健忘癥的人,想要記住有意義的事情是很困難的一樣。無論是數(shù)據(jù)庫、鍵值存儲(chǔ)、還是一些原始數(shù)據(jù),每一個(gè)都需要持久化存儲(chǔ)。

在Docker中創(chuàng)建持久化存儲(chǔ)非常簡(jiǎn)單。早期版本中,用戶可以使用-v來創(chuàng)建一個(gè)新的未定義大小的匿名空卷或者在主機(jī)上的目錄中創(chuàng)建綁定掛載。那個(gè)時(shí)候,雖然可以很容易地通過掛載那些已經(jīng)被存儲(chǔ)供應(yīng)商掛載在主機(jī)上的目錄,但沒有第三方接口幫助你直接掛載到Docker上。2015年8月,Docker發(fā)布了v1.8版本,正式引入了卷插件,允許第三方連接它們的存儲(chǔ)解決方案。Docker會(huì)調(diào)用已安裝的卷插件來創(chuàng)建/刪除/掛載/卸載/get/list那些相關(guān)卷,而且每個(gè)卷都有一個(gè)名字,直到今天,卷插件的框架基本仍保持不變。

持久卷和持久卷聲明

當(dāng)你想弄清楚如何在Kubernetes中創(chuàng)建持久存儲(chǔ)時(shí),可能會(huì)遇到兩個(gè)概念:持久卷(Persistent Volume,PV)和持久卷聲明(Persistent Volume Claim,PVC)

它們是什么?它們中哪個(gè)更接近Docker中的卷?

實(shí)際上,它們都不像Docker中的卷。除了PV和PVC之外,Kubernetes還有一個(gè)Volume的概念,但它與Docker中的概念不同,稍后我們會(huì)討論它。

如果你了解一些關(guān)于PV和PVC信息,可能會(huì)意識(shí)到PV就是分配的存儲(chǔ),而PVC是使用該存儲(chǔ)的請(qǐng)求。如果以前你有云計(jì)算或存儲(chǔ)的經(jīng)驗(yàn),那么你可能會(huì)認(rèn)為PV就是一個(gè)存儲(chǔ)池,而PVC是一個(gè)從存儲(chǔ)池中分割出來的卷。

不過這都不是PV和PVC真正的意義,在Kubernetes中,一個(gè)PV映射到一個(gè)PVC,反之亦然,它是一對(duì)一的映射。

我已經(jīng)多次給具有豐富存儲(chǔ)和云計(jì)算經(jīng)驗(yàn)的人解釋過這些問題,他們幾乎都是抓耳撓腮,不明白這是怎么回事。

而在我第一次遇到這兩個(gè)概念的時(shí)候,我也沒法理解。

我們?cè)谶@里列出PV和PVC的定義

PersistentVolume(PV)是集群中由管理員配置的一塊存儲(chǔ)。它是集群中的資源,就和節(jié)點(diǎn)是集群資源一樣。PV是卷插件比如Volumes,但是它的生命周期獨(dú)立于使用PV的任何pod個(gè)體。該API對(duì)象捕獲實(shí)現(xiàn)存儲(chǔ)的詳細(xì)信息,包括NFS、iSCSI或著是云服務(wù)商特定的存儲(chǔ)系統(tǒng)。

PersistentVolumeClaim(PVC)是用戶關(guān)于存儲(chǔ)的請(qǐng)求。它類似于一個(gè)pod,pod消耗節(jié)點(diǎn)資源,而PVC消耗PV資源。Pods可以請(qǐng)求特定級(jí)別的資源(CPU和內(nèi)容),而Claim可以請(qǐng)求特定的大小和訪問模式(例如,可以一次讀/寫或者多次只讀)。

這里需要留意的是“管理員”以及“用戶”的區(qū)別。

簡(jiǎn)而言之,Kubernetes將基本存儲(chǔ)單元分為兩個(gè)概念。PV是一個(gè)存儲(chǔ)器,應(yīng)該由管理員預(yù)先分配,而PVC是用戶對(duì)存儲(chǔ)的請(qǐng)求。

也就是說,Kubernetes希望管理員來實(shí)現(xiàn)分配各種大小的PV。當(dāng)用戶創(chuàng)建PVC來請(qǐng)求存儲(chǔ)時(shí),Kubernetes將嘗試用該P(yáng)VC和預(yù)先分配的PV匹配。如果可以找到匹配項(xiàng),就將PVC綁定到PV,用戶就可以開始使用這片預(yù)分配的存儲(chǔ)區(qū)。

這種方式和傳統(tǒng)方法不同,傳統(tǒng)方法中管理員并不負(fù)責(zé)分配每個(gè)存儲(chǔ)空間。他們只需要授予用戶訪問某個(gè)存儲(chǔ)池的權(quán)限,并且確定該用戶的配額是多少,然后讓用戶從存儲(chǔ)池中分割出所需的存儲(chǔ)部分即可。

不過在Kubernetes的設(shè)計(jì)中,PV已經(jīng)從存儲(chǔ)池中分割了出來,等待和PVC進(jìn)行匹配,因此用戶只能請(qǐng)求到預(yù)先分配的固定大小的存儲(chǔ)空間。這就出現(xiàn)了兩種情況:

  1. 如果用戶只需要1GiB的卷,而可用的最小PV是1TiB,那么用戶就必須使用這個(gè)1TiB的卷。這樣之后其他用戶就沒法使用到這個(gè)卷,而這些用戶可能需求的容量超過了1GiB。這不僅會(huì)造成存儲(chǔ)空間的浪費(fèi),還會(huì)導(dǎo)致由于資源限制無法啟動(dòng)某些工作負(fù)載的情況,而其他的工作負(fù)載可能正占有了不需要的資源。
  2. 為了解決第一個(gè)問題,管理員要么需要不斷地和用戶保持通信,確定用戶需要的存儲(chǔ)大小/性能,要么就預(yù)測(cè)好需求,并相應(yīng)地預(yù)先分配PV。

這樣一來就很難強(qiáng)制執(zhí)行單獨(dú)的分配(PV)和使用(PVC)。在實(shí)際使用中,我并沒有看到大家講PV和PVC作為他們的設(shè)計(jì)方式。很可能管理員很快就放棄了創(chuàng)建PV的權(quán)限并把它委托給用戶執(zhí)行。由于PV和PVC仍然是一對(duì)一的綁定,PVC的存在就變得不那么必要了。

在我看來,至少可以說,使用PV和PVC的示例是不常見的。

Storage Class和Provisioner

可能因?yàn)镻V和PVC使用起來太麻煩了,在2017年3月,隨著v1.6版本的發(fā)布,Kubernetes引入了動(dòng)態(tài)納管(dynamic provisioning)、Storage Class和Provisioner的概念。動(dòng)態(tài)納管與傳統(tǒng)存儲(chǔ)方法類似。管理員可以使用Storage Class來描述他們提供的存儲(chǔ)“class”。Storage Class可以有不同的容量限制、不同的IOPS或其他Provisioner支持的參數(shù)。特定于存儲(chǔ)供應(yīng)商的Provisioner將與Storage Class一起使用,根據(jù)Storage Class對(duì)象中設(shè)置的參數(shù)自動(dòng)分配PV。此外,Provisioner現(xiàn)在能夠強(qiáng)制執(zhí)行用戶的報(bào)價(jià)(quotes)和權(quán)限要求。在這種設(shè)計(jì)中,管理員已經(jīng)從預(yù)測(cè)和分配PV的繁瑣中擺脫出來,這樣的方式更有意義。

另外,你還可以使用Storage Class而無需在Kubernetes中創(chuàng)建Storage Class對(duì)象。由于Storage Class也是用于PVC和PV(不必由Provisioner創(chuàng)建)的字段,因此你可以使用自定義的Storage Class名稱手動(dòng)創(chuàng)建PV,然后創(chuàng)建一個(gè)請(qǐng)求相同Storage Class名稱的PVC。即使存儲(chǔ)類Storage Class對(duì)象不存在,Kubernetes也會(huì)將PVC綁定到具有相同存儲(chǔ)類名稱的PV上。

dynamic provisioning、Storage Class以及Provisioner對(duì)我來說非常有意義,它解決了最初的PV和PVC設(shè)計(jì)中最大的可用性問題。但與此同時(shí),這些新概念也加劇了Kubernetes存儲(chǔ)的另一個(gè)問題,即處理持久存儲(chǔ)的各種方式造成的混亂。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2018-11-21 10:36:29

Kubernetes存儲(chǔ)Docker

2018-12-19 14:40:08

Redis高級(jí)特性

2021-03-16 08:54:35

AQSAbstractQueJava

2011-07-04 10:39:57

Web

2018-03-15 09:13:43

MySQL存儲(chǔ)引擎

2019-01-07 15:29:07

HadoopYarn架構(gòu)調(diào)度器

2017-07-02 18:04:53

塊加密算法AES算法

2012-05-21 10:06:26

FrameworkCocoa

2021-07-20 15:20:02

FlatBuffers阿里云Java

2022-09-26 09:01:15

語言數(shù)據(jù)JavaScript

2009-11-30 16:46:29

學(xué)習(xí)Linux

2012-02-21 13:55:45

JavaScript

2022-01-11 07:52:22

CSS 技巧代碼重構(gòu)

2018-11-09 16:24:25

物聯(lián)網(wǎng)云計(jì)算云系統(tǒng)

2019-11-11 14:51:19

Java數(shù)據(jù)結(jié)構(gòu)Properties

2022-11-09 08:06:15

GreatSQLMGR模式

2022-12-02 09:13:28

SeataAT模式

2022-10-31 09:00:24

Promise數(shù)組參數(shù)

2009-11-18 13:30:37

Oracle Sequ

2021-04-27 08:54:43

ConcurrentH數(shù)據(jù)結(jié)構(gòu)JDK8
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 一级黄色毛片免费 | 精品久久久网站 | 国产精品久久久乱弄 | 午夜欧美 | 亚洲高清在线 | 亚洲一区二区三区欧美 | 日本一区二区不卡 | 91久久精品一区 | 久久里面有精品 | 国产一区二区影院 | 一区二区日韩 | 久久这里有精品 | 国产精品视频不卡 | 国产精品99久久久久久人 | 日韩精品久久久 | 在线成人一区 | 日韩手机在线视频 | 欧美日韩一区二区在线 | a视频在线观看 | 秋霞电影院午夜伦 | 一区二区三区中文字幕 | 精品国产一区二区三区久久久四川 | 又黄又爽的网站 | 日韩精品在线播放 | 国产乱码久久久久久 | 一级毛片免费 | 国产精品99久久久久久宅男 | 91精品国产一区二区 | 午夜免费在线 | 你懂的在线视频播放 | 精品国产乱码久久久久久蜜柚 | 一区在线播放 | 欧美午夜影院 | 国产视频二区 | 国产一区91精品张津瑜 | 亚洲精品1| 亚洲精品不卡 | 狠狠操狠狠操 | 亚洲欧美视频一区 | 91精品一区二区三区久久久久 |