亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當(dāng)前位置:首頁(yè) > IT技術(shù) > Web編程 > 正文

              kubernetes資源調(diào)度之LimitRange
              2021-09-28 17:01:40

              LimitRange從字面意義上來(lái)看就是對(duì)范圍進(jìn)行限制,實(shí)際上是對(duì)cpu和內(nèi)存資源使用范圍的限制

              前面我們講到過(guò)資源配額,資源配額是對(duì)整個(gè)名稱(chēng)空間的資源的總限制,是從整體上來(lái)限制的,而LimitRange則是對(duì)pod和container級(jí)別來(lái)做限制的

              由于LimitRange是基于名稱(chēng)空間的,因此為了測(cè)試,我們先創(chuàng)建一個(gè)名稱(chēng)空間

              kubectl create namespace default-mem-example
              

              創(chuàng)建LimitRange和Pod對(duì)象

              以下配置文件聲明了內(nèi)存的默認(rèn)限制量和默認(rèn)請(qǐng)求量

              admin/resource/memory-defaults.yaml 
              
              apiVersion: v1
              kind: LimitRange
              metadata:
                name: mem-limit-range
              spec:
                limits:
                - default:
                    memory: 512Mi
                  defaultRequest:
                    memory: 256Mi
                  type: Container
              
              

              在default-mem-example名稱(chēng)空間下創(chuàng)建它

              kubectl apply -f https://k8s.io/examples/admin/resource/memory-defaults.yaml --namespace=default-mem-example
              

              現(xiàn)在,如果有在容器在default-mem-example名稱(chēng)空間下創(chuàng)建,并且在創(chuàng)建的時(shí)候沒(méi)有指定內(nèi)存申請(qǐng)值和內(nèi)存限制值,則它會(huì)被默認(rèn)分配256M的內(nèi)存請(qǐng)求和512M的內(nèi)存上限

              下面是一個(gè)包含容器的pod的配置.容器沒(méi)有顯式聲明資源申請(qǐng)和內(nèi)存限制

              admin/resource/memory-defaults-pod.yaml 
              
              apiVersion: v1
              kind: Pod
              metadata:
                name: default-mem-demo
              spec:
                containers:
                - name: default-mem-demo-ctr
                  image: nginx
              
              

              下面創(chuàng)建這個(gè)pod

              kubectl apply -f https://k8s.io/examples/admin/resource/memory-defaults-pod.yaml --namespace=default-mem-example
              

              查看這個(gè)pod的詳細(xì)信息

              kubectl get pod default-mem-demo --output=yaml --namespace=default-mem-example
              
              containers:
              - image: nginx
                imagePullPolicy: Always
                name: default-mem-demo-ctr
                resources:
                  limits:
                    memory: 512Mi
                  requests:
                    memory: 256Mi
              

              以上輸出信息顯示pod的容器包含了一個(gè)256M的內(nèi)存申請(qǐng)和一個(gè)512M的內(nèi)存限制.它們是LimitRange里聲明的默認(rèn)值

              僅指定限制,沒(méi)指定申請(qǐng)

              下面是一個(gè)pod的其中一個(gè)容器的聲明文件,它聲明了內(nèi)存限制,但是沒(méi)有內(nèi)存申請(qǐng)

              apiVersion: v1
              kind: Pod
              metadata:
                name: default-mem-demo-2
              spec:
                containers:
                - name: default-mem-demo-2-ctr
                  image: nginx
                  resources:
                    limits:
                      memory: "1Gi"
              

              創(chuàng)建它

              kubectl apply -f https://k8s.io/examples/admin/resource/memory-defaults-pod-2.yaml --namespace=default-mem-example
              

              查看信息

              kubectl get pod default-mem-demo-2 --output=yaml --namespace=default-mem-example
              
              resources:
                limits:
                  memory: 1Gi
                requests:
                  memory: 1Gi
              

              可以看到容器的內(nèi)存申請(qǐng)值和限制值是一樣的.需要注意它并不是LimitRange里的默認(rèn)值256M

              僅聲明了申請(qǐng),沒(méi)有聲明限制

              下面是一個(gè)包含一個(gè)容器的pod聲明,容器只申請(qǐng)了資源,沒(méi)有限制

              apiVersion: v1
              kind: Pod
              metadata:
                name: default-mem-demo-3
              spec:
                containers:
                - name: default-mem-demo-3-ctr
                  image: nginx
                  resources:
                    requests:
                      memory: "128Mi"
              

              創(chuàng)建pod

              kubectl apply -f https://k8s.io/examples/admin/resource/memory-defaults-pod-3.yaml --namespace=default-mem-example
              

              查看信息

              kubectl get pod default-mem-demo-3 --output=yaml --namespace=default-mem-example
              
              resources:
                limits:
                  memory: 512Mi
                requests:
                  memory: 128Mi
              

              輸出信息顯示容器的申請(qǐng)值被設(shè)置為聲明的值.而限制值被設(shè)置成了512M,這是LimitRange的默認(rèn)設(shè)置

              設(shè)置申請(qǐng)和限制值的動(dòng)機(jī)

              如果一個(gè)名稱(chēng)空間包含有資源限額,那么設(shè)置申請(qǐng)和限制默認(rèn)值往往也是有幫助的.以下是資源配額對(duì)命名空間施加的兩個(gè)限制

              • 在命名空間運(yùn)行的每一個(gè)容器必須有它自己的內(nèi)存限額(CPU限額)。

              • 在命名空間中所有的容器使用的內(nèi)存總量(CPU總量)不能超出指定的限額。

              完整示例

              apiVersion: v1
              kind: LimitRange
              metadata:
                name: mem-limit-range
                namespace: example
              spec:
                limits:
                - default:  # default limit
                    memory: 512Mi
                    cpu: 2
                  defaultRequest:  # default request
                    memory: 256Mi
                    cpu: 0.5
                  max:  # max limit
                    memory: 800Mi
                    cpu: 3
                  min:  # min request
                    memory: 100Mi
                    cpu: 0.3
                  maxLimitRequestRatio:  # max value for limit / request
                    memory: 2
                    cpu: 2
                  type: Container # limit type, support: Container / Pod / PersistentVolumeClaim
              
              • default為默認(rèn)值,即pod不設(shè)置的時(shí)候的默認(rèn)值.

              • defaultRequest 默認(rèn)請(qǐng)求

              • max 請(qǐng)求上限

              • min請(qǐng)求下限

              注意默認(rèn)請(qǐng)求值即為創(chuàng)建pod的時(shí)候不指定resource申請(qǐng)時(shí)默認(rèn)賦予的值,默認(rèn)值即為默認(rèn)限制的上限.即不指定的時(shí)候默認(rèn)賦予的值.min和max是可以指定的最大值和最小值.并且需要注意的是以上都是Pod級(jí)別的.

              -maxLimitRequestRatio顧名思義,是一個(gè)比率值,它是限制值和請(qǐng)求值的比率.由于資源調(diào)度都是基于申請(qǐng)的值,因此可能會(huì)出現(xiàn)資源超售情況(當(dāng)然,可以使用配額來(lái)限制總的量),這個(gè)比率顯示了超售的比率.

              本文摘自 :https://www.cnblogs.com/

              開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >