真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

利用Kubernetes名稱空間來(lái)管理內(nèi)存和CPU資源(二)

女主宣言

創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),安陸網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:安陸等地區(qū)。安陸做網(wǎng)站價(jià)格咨詢:18980820575

眾所周知,Kubernetes是允許指定CPU和RAM的請(qǐng)求和限制的,這一特性對(duì)于單獨(dú)的pod的資源消耗管理非常有用。在本系列文章中,我們將向大家展示集群資源的高效管理的三種策略。

但是,如果你是Kubernetes集群管理員,你可能還希望控制集群中資源的全局性消耗,并/或配置所有容器的默認(rèn)資源需求。

值得高興的是,Kubernetes支持名稱空間級(jí)別的集群資源管理。正如你可能已經(jīng)知道的,Kubernetes的名稱空間提供了名稱和資源配額的范圍,這允許在多個(gè)用戶、項(xiàng)目和團(tuán)隊(duì)之間有效地劃分集群資源。在Kubernetes中,你可以定義缺省資源請(qǐng)求和限制、資源約束(最小和最大資源請(qǐng)求和限制),以及在給定名稱空間中運(yùn)行的所有容器的資源配額。這些特性使得集群中的應(yīng)用程序能夠高效地利用資源,并在不同的團(tuán)隊(duì)之間有效地分配資源。例如,使用名稱空間的資源約束允許你控制生產(chǎn)和開(kāi)發(fā)工作負(fù)載如何使用資源,從而允許它們消耗有限的集群資源的公平份額。這可以通過(guò)為生產(chǎn)和開(kāi)發(fā)工作負(fù)載創(chuàng)建單獨(dú)的名稱空間來(lái)實(shí)現(xiàn),并為它們分配不同的資源約束。

在系列文章中,我們將向你展示集群資源的高效管理的三種策略:

  1. 設(shè)置默認(rèn)的資源請(qǐng)求和容器的限制

  2. 定義最小和最大的資源約束

  3. 為名稱空間中的所有容器設(shè)置資源配額

這些策略將幫助你解決各種各樣的用例,利用Kubernetes名稱空間和資源管理的全部功能。

為名稱空間設(shè)置最小和最大資源約束

在這個(gè)例子中,我們將為命名空間創(chuàng)建資源約束。這些約束本質(zhì)上是容器可以在資源請(qǐng)求和限制中使用的最小和最大資源量。讓我們看看它是如何工作的!

與前面的例子一樣,首先創(chuàng)建名稱空間:

kubectl create namespace resource-constraints-demo 
namespace "resource-constraints-demo" created

接下來(lái),我們將為這個(gè)名稱空間創(chuàng)建一個(gè)限制范圍:

apiVersion: v1
kind: LimitRange
metadata:   name: resource-constraints-lr
spec:   limits:
        - max:
         memory: 1Gi
         cpu: 0.8     
       min:       
         memory: 500Mi       
         cpu: 0.3     
       type: Container

保存 LimitRange 為 limit-range-2.yaml 并創(chuàng)建它:

kubectlcreate -flimit-range-2.yaml--namespace resource-constraints-demo
limitrange"resource-constraints-lr" created

在創(chuàng)建了限制范圍之后,讓我們看看我們的最小和最大資源約束是否應(yīng)用于名稱空間:

kubectl get limitrange resource-constraints-lr --namespace resource-constraints-demo --output=yaml

響應(yīng)如下:

spec:
  limits:
  - default:
      cpu: 800m       
      memory: 1Gi     
    defaultRequest:
     cpu: 800m
     memory: 1Gi
    max:     
     cpu: 800m     
     memory: 1Gi   
    min:     
     cpu: 300m     
     memory: 500Mi
   type: Container

正如你所看到的,你的名稱空間的默認(rèn)資源請(qǐng)求和限制被自動(dòng)設(shè)置為在 LimitRange 內(nèi)指定的最大資源約束?,F(xiàn)在,當(dāng)我們?cè)?resource-constraints-demo 名稱空間中創(chuàng)建容器時(shí),下面的規(guī)則將自動(dòng)應(yīng)用:

  • 如果容器沒(méi)有指定它的資源請(qǐng)求和限制,則應(yīng)用默認(rèn)的資源請(qǐng)求和限制。

  • 名稱空間中的所有容器都需要有大于或等于3億的資源請(qǐng)求,用于CPU和500 Mi內(nèi)存。

  • 名稱空間中的所有容器都需要資源限制小于或等于8億,用于CPU和1 Gi內(nèi)存。

讓我們創(chuàng)建一個(gè)pod來(lái)說(shuō)明如何將名稱空間資源約束應(yīng)用到容器中:

apiVersion: v1
kind: Pod
metadata:
  name: resource-constraints-pod
spec:
 containers:
 - name: resource-constraints-ctr  
 image: httpd:2.4   
 resources:       
 limits:         
    memory:"900Mi"       
    cpu: 0.7       
 requests:       
    memory:"600Mi"       
    cpu: 0.4

該規(guī)范請(qǐng)求600 Mi RAM和0.4 CPU,并為這個(gè)pod中的httpd容器設(shè)置900 Mi RAM和0.7 CPU的限制。這些資源需求滿足了名稱空間的最小和最大約束。

我們保存為 default-resources-demo-pod-3.yaml 并在我們的名稱空間中創(chuàng)建pod:

kubectlcreate -fresource-constraints-pod.yaml--namespace resource-constraints-demo
pod"resource-constraints-pod" created

接下來(lái),檢查分配給pod中的容器的資源:

kubectl get pod resource-constraints-pod --namespace resource-constraints-demo --output=yaml

你應(yīng)該得到以下輸出:

containers:
 - image: httpd:2.4    imagePullPolicy: IfNotPresent    name: resource-constraints-ctr    resources:
     limits:
       cpu: 700m        memory: 900Mi      requests:
       cpu: 400m        memory: 600Mi

之所以成功創(chuàng)建pod,是因?yàn)槿萜鞯恼?qǐng)求和限制在名稱空間的最小和最大約束范圍內(nèi)。

現(xiàn)在,讓我們看看如果我們指定的請(qǐng)求和限制超出了為名稱空間定義的最小值和最大值,會(huì)發(fā)生什么。讓我們用新的請(qǐng)求和限制來(lái)創(chuàng)建一個(gè)新的pod:

apiVersion: v1
kind: Pod
metadata:  name: resource-constraints-pod-2
spec:  containers:  - name: resource-constraints-ctr-2    image: httpd:2.4    resources:      limits:        memory: "1200Mi"        cpu: 1.2      requests:        memory: "200Mi"        cpu: 0.2

我們保存為 resource-constraints-pod-2.yaml 并在我們的名稱空間中創(chuàng)建pod:

kubectl create -f resource-constraints-pod-2.yaml --namespace resource-constraints-demo
pod "resource-constraints-pod-2" created

由于資源請(qǐng)求低于最小 LimitRange 的值,并且資源限制超出了這個(gè)名稱空間的最大值,所以pod不會(huì)像預(yù)期的那樣被創(chuàng)建:

Error from server (Forbidden): error when creating "resource-constraints-pod-2.yaml": pods "resource-constraints-pod-2" is forbidden: [minimum memory usage per Container is 500Mi, but request is 200Mi., minimum cpu usage per Container is 300m, but request is 200m., maximum cpu usage per Container is 800m, but limit is 1200m., maximum memory usage per Container is 1Gi, but limit is 1200Mi.]

清理

在這個(gè)例子完成之后,讓我們清理一下。

刪除名稱空間:

kubectl delete namespace resource-constraints-demo 
namespace "resource-constraints-demo" deleted

總結(jié)

在本篇文章中,我們將向大家展示了為名稱空間設(shè)置最小和最大資源約束。后續(xù)系列文章將會(huì)繼續(xù)展示:為名稱空間中的所有容器設(shè)置資源配額。

HULK一線技術(shù)雜談

由360云平臺(tái)團(tuán)隊(duì)打造的技術(shù)分享公眾號(hào),內(nèi)容涉及云計(jì)算、數(shù)據(jù)庫(kù)、大數(shù)據(jù)、監(jiān)控、泛前端、自動(dòng)化測(cè)試等眾多技術(shù)領(lǐng)域,通過(guò)夯實(shí)的技術(shù)積累和豐富的一線實(shí)戰(zhàn)經(jīng)驗(yàn),為你帶來(lái)最有料的技術(shù)分享

原文鏈接:https://mp.weixin.qq.com/s/NXLNIL1rbItpzjAJmp9WUQ

新聞名稱:利用Kubernetes名稱空間來(lái)管理內(nèi)存和CPU資源(二)
URL分享:http://weahome.cn/article/jjsegs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部