国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

k8s的資源分配

awkj / 1014人閱讀

摘要:整個(gè)名稱空間下的資源配額利用搭建部署服務(wù),并在正式的場(chǎng)合使用時(shí),幾乎是肯定要引入一個(gè)用戶概念的。如下創(chuàng)建一個(gè)創(chuàng)建了后我們每次創(chuàng)建一個(gè)也即都要指定它的資源配額,否則即便創(chuàng)建成功,容器也不能起來。

限制每個(gè)實(shí)例
在創(chuàng)建一個(gè)replicationcontroller(以下簡(jiǎn)稱rc)時(shí),我們可以在創(chuàng)建文件中指定pod的資源配額,如下面的json:


 {
    "kind": "ReplicationController",
    "apiVersion": "v1",
    "metadata": {
        "name": "eatcpu",
        "creationTimestamp": null
    },
    "spec": {
        "replicas": 2,
        "selector": {
            "name": "huang"
        },
        "template": {
            "metadata": {
                "name": "cpu",
                "labels": {
                    "name": "huang"
                }
            },
            "spec": {
                "containers": [
                    {
                        "name": "eatcpucontainer",
                        "image": "registry.hub.abc.com.cn/eatcpu:v1.1",
                        "resources": {
                        "request": {
                                "cpu": "1.0",
                                "memory": "1.0Gi"
                            },
                            "limits": {
                                "cpu": "1.2",
                                "memory": "1.1Gi"
                            }
                        },
                        "command": [
                            "/deadloop",
                            "-max_procs=4"
                        ]
                    }
                ]
            }
        }
    },
    "status": {
        "replicas": 0
    }
}

當(dāng)然實(shí)際上json不用寫這么復(fù)雜,關(guān)鍵是:

 "resources": {
             "limits": {
                      "cpu": "1.0",
                      "memory": "1.0Gi"
            },
            "limits": {
                    "cpu": "1.2",
                    "memory": "1.1Gi"
              }
         },
     

這句的意思是給這個(gè)rc的每個(gè)pod分配cpu額度的最低要求是1.0(即1個(gè)CPU核心),內(nèi)存的最低要求是1.0Gi,對(duì)CPU的限制是不能超過1.2個(gè)核心,內(nèi)存則是1.1Gi。
當(dāng)我們執(zhí)行create命令的時(shí)候,若scheduler組件檢查各個(gè)nodes發(fā)現(xiàn)沒有滿足1個(gè)空閑cpu核心和1Gi空閑內(nèi)存的機(jī)器,那么這個(gè)pod就不能被創(chuàng)建,若rc要?jiǎng)?chuàng)建3個(gè)pod,整個(gè)集群只能滿足創(chuàng)建2個(gè),那么第三個(gè)pod會(huì)被放入隊(duì)列中,等待集群有足夠資源時(shí)再創(chuàng)建出來。

另外,若pod在運(yùn)行過程中持續(xù)地消耗內(nèi)存,超過了1.1G,pod會(huì)被銷毀并重啟,但當(dāng)cpu消耗超過配額時(shí),k8s不會(huì)做出相應(yīng)的措施。

k8s1.3左右的版本增加了horizontalAutoScale特性,當(dāng)CPU在一定時(shí)間內(nèi)高于一個(gè)閾值時(shí),會(huì)出發(fā)控制器對(duì)其進(jìn)行水平擴(kuò)容。

整個(gè)名稱空間下的資源配額

利用k8s搭建部署服務(wù),并在正式的場(chǎng)合使用時(shí),幾乎是肯定要引入一個(gè)“用戶”概念的。可以使用namespace來實(shí)現(xiàn)用戶的隔離。并使用quota為每個(gè)用戶指定配額。
注:這里差不多是翻譯github上原文,引用的幾個(gè)yaml也出自于彼處,有興趣的可以直接去看官文。

k8s下默認(rèn)的namespace是default,我們可以手動(dòng)添加一個(gè)namespace:

$ kubectl create -f namespace.yaml
$ kubectl get namespaces
NAME            LABELS             STATUS
default                      Active
quota-example                Active

接著我們創(chuàng)建一個(gè)quota,quota可以指定某個(gè)namespace有多少的資源配額,包括cpu,內(nèi)存,persistentvolumeclaims(據(jù)說是內(nèi)存),pod數(shù)量,rc數(shù)量等等。
如下創(chuàng)建一個(gè)quota:

$ kubectl create -f quota.yaml --namespace=quota-example
$ kubectl describe quota quota --namespace=quota-example
Name:                   quota
Namespace:              quota-example
Resource                Used    Hard
--------                ----    ----
cpu                     0       20
memory                  0       1Gi
persistentvolumeclaims  0       10
pods                    0       10
replicationcontrollers  0       20
resourcequotas          1       1
secrets                 1       10
services                0       5

創(chuàng)建了quota后我們每次創(chuàng)建一個(gè)rc(也即pods)都要指定它的資源配額,否則即便創(chuàng)建成功,容器也不能run起來。
指定配額的方法見標(biāo)題1,但是那是對(duì)一個(gè)集群中的pod統(tǒng)一制定,我們也可以統(tǒng)一指定該namespace下的所有pods的配額,即創(chuàng)建一個(gè)limits:

$ kubectl create -f limits.yaml --namespace=quota-example
limitranges/limits
$ kubectl describe limits limits --namespace=quota-example
Name:           limits
Namespace:      quota-example
Type            Resource        Min     Max     Default
----            --------        ---     ---     ---
Container       memory          -       -       512Mi
Container       cpu             -       -       100m

現(xiàn)在我們可以正常地run一個(gè)rc了,并且,在容器成功跑起來后,我們可以統(tǒng)一地看到該namespace下的資源使用情況:

kubectl describe quota quota --namespace=quota-example
Name:                   quota
Namespace:              default
Resource                Used            Hard
--------                ----            ----
cpu                     100m            20
memory                  536870912       1Gi
persistentvolumeclaims  0               10
pods                    1               10
replicationcontrollers  1               20
resourcequotas          1               1
secrets                 1               10
services                0               5

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/32428.html

相關(guān)文章

  • 利用K8S技術(shù)棧打造個(gè)人私有云(連載之:K8S資源控制)

    摘要:將用戶命令通過接口傳送給,從而進(jìn)行資源的增刪改等操作。要使用編寫應(yīng)用程序,當(dāng)下大多語(yǔ)言都可以很方便地去實(shí)現(xiàn)請(qǐng)求來操作的接口從而控制和查詢資源,但本文主要是利用已有的客戶端來更加優(yōu)雅地實(shí)現(xiàn)的資源控制。 showImg(https://segmentfault.com/img/remote/1460000013517345); 【利用K8S技術(shù)棧打造個(gè)人私有云系列文章目錄】 利用K8S...

    Reducto 評(píng)論0 收藏0
  • 利用K8S技術(shù)棧打造個(gè)人私有云(連載之:K8S資源控制)

    摘要:將用戶命令通過接口傳送給,從而進(jìn)行資源的增刪改等操作。要使用編寫應(yīng)用程序,當(dāng)下大多語(yǔ)言都可以很方便地去實(shí)現(xiàn)請(qǐng)求來操作的接口從而控制和查詢資源,但本文主要是利用已有的客戶端來更加優(yōu)雅地實(shí)現(xiàn)的資源控制。 showImg(https://segmentfault.com/img/remote/1460000013517345); 【利用K8S技術(shù)棧打造個(gè)人私有云系列文章目錄】 利用K8S...

    Render 評(píng)論0 收藏0
  • Kubernetes在混合云架構(gòu)下應(yīng)用

    摘要:但考慮到該用戶在跨集群模式下的困擾,開始策劃將托管云物理機(jī)納入現(xiàn)有集群統(tǒng)一管理的方案,即在混合云架構(gòu)下僅需部署管理一套集群。托管云物理機(jī)納入U(xiǎn)K8S集群統(tǒng)一管理后,可實(shí)現(xiàn)托管云物理機(jī)保障平峰時(shí)業(yè)務(wù)正常運(yùn)行,高峰時(shí)期利用UK8S快速擴(kuò)容公有云資源的理想應(yīng)用場(chǎng)景,繼而提升混合云的可用性。 ——海豹他趣技術(shù)負(fù)責(zé)人 張嵩 混合云的業(yè)務(wù)模式 廈門海豹他趣信息技術(shù)股份有限公司于2012年4...

    BenCHou 評(píng)論0 收藏0
  • 使用 Kubernetes 部署一個(gè)記事本項(xiàng)目

    摘要:簡(jiǎn)稱,是在年發(fā)布的一個(gè)開源項(xiàng)目。網(wǎng)絡(luò)要能夠通信,必須部署網(wǎng)絡(luò),是其中一個(gè)可選方案。最常使用,可以管理多個(gè)副本,并確保按照期望的狀態(tài)運(yùn)行,底層調(diào)用。用于每個(gè)最多只運(yùn)行一個(gè)副本的場(chǎng)景。 Kubernetes 簡(jiǎn)稱 k8s,是 google 在 2014 年發(fā)布的一個(gè)開源項(xiàng)目。 Kubernetes 解決了哪些問題? 真實(shí)的生產(chǎn)環(huán)境應(yīng)用會(huì)包含多個(gè)容器,而這些容器還很可能會(huì)跨越多個(gè)服務(wù)器主機(jī)部...

    null1145 評(píng)論0 收藏0
  • K8SapiVersion該用哪個(gè)

    摘要:如版本之前版本到版本之間版本之后一各種的含義該軟件可能包含錯(cuò)誤。啟用一個(gè)功能可能會(huì)導(dǎo)致隨時(shí)可能會(huì)丟棄對(duì)該功能的支持,恕不另行通知軟件經(jīng)過很好的測(cè)試。啟用功能被認(rèn)為是安全的。 本篇文章來自Terraform與Kubernetes中關(guān)于Deployment apps/v1的吐槽 Kubernetes的官方文檔中并沒有對(duì)apiVersion的詳細(xì)解釋,而且因?yàn)镵8S本身版本也在快速迭代,有些...

    ziwenxie 評(píng)論0 收藏0
  • k8s之CRD--為自定義資源生成代碼

    摘要:看過的應(yīng)該都知道項(xiàng)目中有大量代碼工具生成的代碼。執(zhí)行即腳本將自動(dòng)生成下面的文件和路徑腳本運(yùn)行后大體會(huì)建立如下的包管理結(jié)構(gòu)是不是很簡(jiǎn)單代碼是被完全生成的,就像包含我們的語(yǔ)言類型的文件下面的文件一樣然后你就可以基于生成的代碼寫自己的了。 CRD簡(jiǎn)介和使用姿勢(shì) CustomResourceDefinition(CRD)是 v1.7 + 新增的無(wú)需改變代碼就可以擴(kuò)展 Kubernetes AP...

    jkyin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

awkj

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<