OpenShift中CPU限額單位m是個(gè)什么鬼

紅帽的OpenShift定位于構(gòu)建一個(gè)PaaS服務(wù)平臺(tái),即這個(gè)平臺(tái)上必定會(huì)有不同的企業(yè)客戶來租用資源。不同的企業(yè),不同的進(jìn)程在使用共同的物理計(jì)算資源,如何保證各個(gè)客戶的應(yīng)用不過度地占用資源,非常重要。
一個(gè)PaaS服務(wù)平臺(tái)也有點(diǎn)像一個(gè)美食城。在物業(yè)管理層面上,美食城對(duì)來租店面經(jīng)營餐飲業(yè)務(wù)的商家除了限制其營業(yè)面積(出多少錢,租多大店面)之外,還要有其他的限制或管理。比如,門前的公共通道的衛(wèi)生、拉客的方式、店面的裝修風(fēng)格、播放音樂的音量、補(bǔ)給食材和物資的時(shí)間和路線、安裝電器的功率等等,都要有具體的管理辦法。否則,出現(xiàn)糾紛與沖突,會(huì)影響整個(gè)美食城的經(jīng)濟(jì)效益。
同理,為打造PaaS“美食城”而生的OpenShift也必須提供控制資源的技術(shù)手段。該有的,肯定會(huì)有。OpenShift提供了兩種資源控制方法:一種是控制對(duì)象的數(shù)量,如:
·豆苞(pod)
·再生器(rc- replication controller)
·服務(wù)(service)
·密文(secret)
·永久卷請(qǐng)求(pvc – persistentvolumeclaim)
以上對(duì)象都是以數(shù)量來控制的。
另一種則按照計(jì)算使用量來控制,如存儲(chǔ)、內(nèi)存的大小和CPU的總使用量。存儲(chǔ)、內(nèi)存的使用量是以Gi為單位的,即GiB。
1 GiB = 1073741824 bytes = 10243 B = 230 B
而CPU的使用單位卻是m,而OpenShift的教材上則寫道:m means millicores,即m是“毫核”。毫核,是個(gè)什么鬼?OpenShift官方網(wǎng)站上,這樣寫道:
CPU的計(jì)量單位叫毫核。集群中的每一個(gè)節(jié)點(diǎn)可以通過操作系統(tǒng)確認(rèn)本節(jié)點(diǎn)的CPU內(nèi)核數(shù)量,將這個(gè)數(shù)量乘以1000,得到的就是節(jié)點(diǎn)總的CPU總數(shù)量。如,一個(gè)節(jié)點(diǎn)有兩個(gè)核,那么該節(jié)點(diǎn)的CPU總量為2000m。如果你要使用單核的十分之一,則你要求的是100m。
還是有點(diǎn)暈,繼續(xù)在網(wǎng)上翻找,終于我在Kubernetes的網(wǎng)站上找到相應(yīng)的說明。順便提一下,OpenShift使用的是Kubernetes + Docker + Etcd及其他開源技術(shù)棧構(gòu)建起來的。原來,在一個(gè)豆苞內(nèi),Kubernetes通過兩個(gè)參數(shù)來限制CPU的使用,即:
spec.containers[].resources.limits.cpu
//主動(dòng)限制。這個(gè)月銷售額必須達(dá)到1000萬,否則給我卷鋪蓋走人。
spec.containers[].resources.requests.cpu
//主動(dòng)請(qǐng)求限制。張飛大叫:只撥三千軍與我去取武陵郡,活捉太守金旋來獻(xiàn)!
而這個(gè)m的單位,則是將一個(gè)cpu抽象化,分成1000等份。每一份即為一個(gè)millicore,即千分之一個(gè)核,或毫核。跟米與毫米的關(guān)系是一樣的。而且,Kubernetes的一個(gè)CPU核概念與下面各家的概念是等同的:
·1 AWS vCPU
?。?個(gè)亞馬遜云虛擬核)
·1 GCP Core
?。?個(gè)谷歌計(jì)算平臺(tái)核)
·1 Azure vCore
?。?個(gè)微軟Azure虛擬核)
·1 IBM vCPU
?。?個(gè)IBM虛擬核)
·1 Hyperthread on a bare-metal Intel processor with Hyperthreading(Intel超級(jí)線程物理CPU上的1個(gè)線程)
這個(gè)限制最小的單位是100m,不允許制訂更小的精度,如限制為90m或120m,只能以100為基數(shù)增減。有時(shí)候,也寫作0.1。Intel的處理器的核的計(jì)算能力,恐怕各代產(chǎn)品都有所不同,所以這種限制也是相對(duì)的,是一種模糊的控制。但總比沒有控制要好。

當(dāng)然,本文只是作者對(duì)OpenShift這個(gè)宏大的云計(jì)算系統(tǒng)進(jìn)行的一次卑微的管窺,希望能激發(fā)讀者的興趣,形成一個(gè)記憶點(diǎn)。是一面之緣,還是終身朋友,就看你的了。
OpenShift是紅帽認(rèn)證RHCA云計(jì)算五大核心課程之一,課程代碼為DO280。騰科IT教育集團(tuán)是國內(nèi)最早開設(shè)紅帽認(rèn)證系列課程,包括RHCA認(rèn)證課程的專業(yè)培訓(xùn)機(jī)構(gòu),目前在廣州、深圳、上海設(shè)有分支機(jī)構(gòu),面向社會(huì)提供培訓(xùn)、考試及就業(yè)引薦一體化服務(wù),歡迎到騰科報(bào)讀紅帽系列認(rèn)證課程。
官方網(wǎng)址:http://pesce.cn