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

資訊專欄INFORMATION COLUMN

k8s的資源分配

awkj / 1019人閱讀

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

限制每個實例
在創建一個replicationcontroller(以下簡稱rc)時,我們可以在創建文件中指定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
    }
}

當然實際上json不用寫這么復雜,關鍵是:

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

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

另外,若pod在運行過程中持續地消耗內存,超過了1.1G,pod會被銷毀并重啟,但當cpu消耗超過配額時,k8s不會做出相應的措施。

k8s1.3左右的版本增加了horizontalAutoScale特性,當CPU在一定時間內高于一個閾值時,會出發控制器對其進行水平擴容。

整個名稱空間下的資源配額

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

k8s下默認的namespace是default,我們可以手動添加一個namespace:

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

接著我們創建一個quota,quota可以指定某個namespace有多少的資源配額,包括cpu,內存,persistentvolumeclaims(據說是內存),pod數量,rc數量等等。
如下創建一個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

創建了quota后我們每次創建一個rc(也即pods)都要指定它的資源配額,否則即便創建成功,容器也不能run起來。
指定配額的方法見標題1,但是那是對一個集群中的pod統一制定,我們也可以統一指定該namespace下的所有pods的配額,即創建一個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

現在我們可以正常地run一個rc了,并且,在容器成功跑起來后,我們可以統一地看到該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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/32428.html

相關文章

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

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

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

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

    Render 評論0 收藏0
  • Kubernetes在混合云架構下應用

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

    BenCHou 評論0 收藏0
  • 使用 Kubernetes 部署一個記事本項目

    摘要:簡稱,是在年發布的一個開源項目。網絡要能夠通信,必須部署網絡,是其中一個可選方案。最常使用,可以管理多個副本,并確保按照期望的狀態運行,底層調用。用于每個最多只運行一個副本的場景。 Kubernetes 簡稱 k8s,是 google 在 2014 年發布的一個開源項目。 Kubernetes 解決了哪些問題? 真實的生產環境應用會包含多個容器,而這些容器還很可能會跨越多個服務器主機部...

    null1145 評論0 收藏0
  • K8SapiVersion該用哪個

    摘要:如版本之前版本到版本之間版本之后一各種的含義該軟件可能包含錯誤。啟用一個功能可能會導致隨時可能會丟棄對該功能的支持,恕不另行通知軟件經過很好的測試。啟用功能被認為是安全的。 本篇文章來自Terraform與Kubernetes中關于Deployment apps/v1的吐槽 Kubernetes的官方文檔中并沒有對apiVersion的詳細解釋,而且因為K8S本身版本也在快速迭代,有些...

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

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

    jkyin 評論0 收藏0

發表評論

0條評論

awkj

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<