摘要:本文介紹幾種在中限制資源使用的幾種方法。其位置在舉例方法二在中限定方法一雖然很好,但是其不是強制性的,因此很容易出現因忘記設定,導致資源使用過度的情形,因此我們需要一種全局性的資源限制設定,以防止這種情況發生。
本文介紹幾種在K8S中限制資源使用的幾種方法。
資源類型在K8S中可以對兩類資源進行限制:cpu和內存。
CPU的單位有:
正實數,代表分配幾顆CPU,可以是小數點,比如0.5代表0.5顆CPU,意思是一顆CPU的一半時間。2代表兩顆CPU。
正整數m,也代表1000m=1,所以500m等價于0.5。
內存的單位:
正整數,直接的數字代表Byte
k、K、Ki,Kilobyte
m、M、Mi,Megabyte
g、G、Gi,Gigabyte
t、T、Ti,Terabyte
p、P、Pi,Petabyte
方法一:在Pod Container Spec中設定資源限制在K8S中,對于資源的設定是落在Pod里的Container上的,主要有兩類,limits控制上限,requests控制下限。其位置在:
spec.containers[].resources.limits.cpu
spec.containers[].resources.limits.memory
spec.containers[].resources.requests.cpu
spec.containers[].resources.requests.memory
舉例:
apiVersion: v1 kind: Pod metadata: name: frontend spec: containers: - name: ... image: ... resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m"方法二:在Namespace中限定
方法一雖然很好,但是其不是強制性的,因此很容易出現因忘記設定limits/request,導致Host資源使用過度的情形,因此我們需要一種全局性的資源限制設定,以防止這種情況發生。K8S通過在Namespace設定LimitRange來達成這一目的。
配置默認request/limit:如果配置里默認的request/limit,那么當Pod Spec沒有設定request/limit的時候,會使用這個配置,有效避免無限使用資源的情況。
配置位置在:
spec.limits[].default.cpu,default limit
spec.limits[].default.memory,同上
spec.limits[].defaultRequest.cpu,default request
spec.limits[].defaultRequest.memory,同上
例子:
apiVersion: v1 kind: LimitRange metadata: name:配置request/limit的約束spec: limits: - default: memory: 512Mi cpu: 1 defaultRequest: memory: 256Mi cpu: 0.5 type: Container
我們還可以在K8S里對request/limit進行以下限定:
某資源的request必須>=某值
某資源的limit必須<=某值
這樣的話就能有效避免Pod Spec中亂設limit導致資源耗盡的情況,或者亂設request導致Pod無法得到足夠資源的情況。
配置位置在:
spec.limits[].max.cpu,limit必須<=某值
spec.limits[].max.memory,同上
spec.limits[].min.cpu,request必須>=某值
spec.limits[].min.memory,同上
例子:
apiVersion: v1 kind: LimitRange metadata: name:參考資料spec: limits: - max: memory: 1Gi cpu: 800m min: memory: 500Mi cpu: 200m type: Container
Managing Compute Resources for Containers
Configure Default Memory Requests and Limits for a Namespace
Configure Default CPU Requests and Limits for a Namespace
Configure Minimum and Maximum Memory Constraints for a Namespace
Configure Minimum and Maximum CPU Constraints for a Namespace
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/33080.html
摘要:本文介紹幾種在中限制資源使用的幾種方法。其位置在舉例方法二在中限定方法一雖然很好,但是其不是強制性的,因此很容易出現因忘記設定,導致資源使用過度的情形,因此我們需要一種全局性的資源限制設定,以防止這種情況發生。 本文介紹幾種在K8S中限制資源使用的幾種方法。 資源類型 在K8S中可以對兩類資源進行限制:cpu和內存。 CPU的單位有: 正實數,代表分配幾顆CPU,可以是小數點,比如...
摘要:簡介社區中常見的做法是利用來提供容器中的資源可見性。從而使得應用獲得正確的資源約束設定。阿里云服務全球首批通過一致性認證,簡化了集群生命周期管理,內置了與阿里云產品集成,也將進一步簡化的開發者體驗,幫助用戶關注云端應用價值創新。 摘要: 這是本系列的第2篇內容,將介紹在Docker和Kubernetes環境中解決遺留應用無法識別容器資源限制的問題。 showImg(https://se...
摘要:為了實現資源被有效調度和分配時同時提高資源的利用率,采用和兩種限制類型對資源進行分配。限制類型介紹容器使用的最小資源需求作為容器調度時資源分配的判斷依賴。 概述 kubernetes 是一個集群管理平臺, kubernetes需要統計整體平臺的資源使用情況, 合理的將資源分配給容器使用, 并保證容器生命周期內有足夠的資源來保證其運行. 同時, 如果資源發放是獨占的, 對于空閑的容器來說...
摘要:為了實現資源被有效調度和分配時同時提高資源的利用率,采用和兩種限制類型對資源進行分配。限制類型介紹容器使用的最小資源需求作為容器調度時資源分配的判斷依賴。 概述 kubernetes 是一個集群管理平臺, kubernetes需要統計整體平臺的資源使用情況, 合理的將資源分配給容器使用, 并保證容器生命周期內有足夠的資源來保證其運行. 同時, 如果資源發放是獨占的, 對于空閑的容器來說...
摘要:通過監視資源的變化,并根據的信息生成記錄寫入到中。是唯一保留的容器,依然提供健康檢查。操作會獲取最新的全量資源與本地狀態進行比較來產生通知,可以避免網絡原因導致的丟失通知的情況。最后一個參數用來設置處理事件的回調。 上一期我們以1.2版本為背景,介紹了K8S的服務發現和kube-dns插件的相關內容。有了上一期內容作為基礎,這期了解最新版本的kube-dns就會容易很多。 本文主要對比...
閱讀 2136·2023-04-26 02:19
閱讀 1924·2021-11-19 09:40
閱讀 1712·2021-09-29 09:35
閱讀 3581·2021-09-29 09:34
閱讀 4332·2021-09-07 10:16
閱讀 5552·2021-08-11 11:14
閱讀 3589·2019-08-30 15:54
閱讀 1639·2019-08-30 15:53