設置Kubernetes的Limit Range限制范圍


通過Limit Range,我們可以限制資源消耗和創建,因為默認情況下,容器在Kubernetes集群上以無限制的計算資源運行。一個Pod可以消耗Limit Range所定義的CPU和內存。
Limit Range提供了以下限制:
最低和最高資源
每個PersistentVolumeClaim的最小和最大存儲請求。
命名空間中資源的請求和限制之間的比率。
設置計算資源的默認請求/限制。
在本文中,我們將創建一個限制范圍,並查看如何為容器和Pods使用的CPU資源設置最小值和最大值。我們將看到在CPU上使用Limit和Request的不同場景。
先決條件:具有至少1個工作節點的Kubernetes集群。
我們會怎樣做?
在默認名稱空間中創建一個LimitRange。
在默認名稱空間中創建具有CPU限制和范圍的Pod。
在默認名稱空間中創建一個LimitRange
創建一個文件以定義默認名稱空間中的限制范圍。
vim set-limit-range.yml

獲取默認名稱空間中現有限制范圍的列表,並使用在上一步中創建的文件創建一個范圍。
kubectl get limitrange
kubectl create -f set-limit-range.yml
kubectl get limitrange
kubectl describe limitrange set-limit-range

在上面的屏幕截圖中,可以看出我們創建了一個限制范圍,將CPU定義為“ Min = 200m”和“ Max = 800m”。
這意味着默認名稱空間中的Pod不能具有“小於Min = 200m”和“大於Max = 800m”的CPU。
在默認名稱空間中創建具有CPU限制和范圍的Pod
有限制的POD
創建一個Pod定義,請求CPU大於200m且小於800m
vim pod-with-cpu-within-range.yml

列出現有的容器,並使用在上述步驟中創建的文件創建一個新的容器。
kubectl get pods
kubectl create -f pod-with-cpu-within-range.yml
kubectl get pods
kubectl describe pod pod-with-cpu-within-range

在上面的屏幕截圖中,可以看到pod已經被創建,定義了CPU請求和限制。
具有更多CPU的Pod:
這次,我們創建一個CPU限制為1.5(即大於800m)的Pod。
vim pod-with-cpu-more-than-limit.yml

獲取現有容器的列表,然后嘗試創建一個新的容器,其CPU限制“ 1.5”大於我們在限制范圍內定義的“ 800m”。
kubectl get pods
kubectl create -f pod-with-cpu-more-than-limit.yml

在上面的屏幕截圖中,可以看到尚未創建容器。
具有較少CPU的Pod:
現在,讓我們嘗試創建一個Pod,該Pod請求的“ CPU = 100m”小於我們在限制范圍內定義的“ 200m”。
vim pod-with-cpu-less-than-limit.yml

現在獲取現有容器的列表,並嘗試使用上述定義文件創建容器。
kubectl get pods
kubectl create -f pod-with-cpu-less-than-limit.yml
這次,由於我們要求的CPU = 100m小於定義的限制范圍的200m,因此pod的創建也會失敗。
沒有CPU的Pod:
在這種情況下,我們不要為CPU定義任何請求或限制。
vim pod-with-no-cpu.yml

現在,讓我們嘗試創建一個pod並查看其描述。
kubectl get pods
kubectl create -f pod-with-no-cpu.yml
kubectl describe pods pod-with-no-cpu

在上面的屏幕截圖中,可以看出,如果我們沒有為CPU指定任何請求或限制,則POD分配的CPU等於在限制范圍內指定的限制,即在此示例中,容器獲得了CPU限制和請求等於800m,即在極限范圍內指定的極限
在本文中,我們看到了在默認名稱空間中創建限制范圍的步驟。然后,我們針對Pod中的CPU限制和請求嘗試了不同的方案。

A5互聯https://www.a5idc.net/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM