国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s資源配額限制

這篇具有很好參考價值的文章主要介紹了k8s資源配額限制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、基礎(chǔ)了解

1.1 資源說明

為什么會有資源配額管理?

可以提高集群穩(wěn)定性,確保指定的資源對象在任何時候都不會超量占用系統(tǒng)物理資源,避免業(yè)務(wù)進(jìn)程在設(shè)計或?qū)崿F(xiàn)上的缺陷導(dǎo)致整個系統(tǒng)運(yùn)行紊亂甚至意外宕機(jī)。

資源配額管理維度解釋?

1. 容器級別,定義每個Pod上資源配額相關(guān)的參數(shù),比如CPU/Memory、Request/Limit;
2. Pod級別,自動為每個沒有定義資源配額的Pod添加資源配額模板,比如LimitRanger。
3. Namespace級別,從總量上限制一個租戶(應(yīng)用)所能使用的資源配額,比如ResourceQuota,包括資源有:Pod數(shù)量、Replication Controller數(shù)量、Service數(shù)量、ResourceQuota數(shù)量、Secret數(shù)量和可持有的PV數(shù)量。

資源配額參數(shù)有什么?

程序所使用的CPU與Memory是一個動態(tài)的量,跟負(fù)載密切相關(guān),當(dāng)負(fù)載增加時,CPU和Memory的使用量也會增加。
spec.container[].resources.requests.cpu:容器初始要求的CPU數(shù)量。
spec.container[].resources.limits.cpu:容器所能使用的最大CPU數(shù)量。
spec.container[].resources.requests.memory:容器初始要求的內(nèi)存數(shù)量
spec.container[].resources.limits.memory:容器所能使用的最大內(nèi)存數(shù)量。

1.1 資源計算

Pod的Requests或Limits指該P(yáng)od中所有容器的Requests或Limits的總和,若Pod中沒有設(shè)置Requests或Limits的容器,則該項的值被當(dāng)作0或者按照集群配置的默認(rèn)值來計算。
  • 計算CPU

CPU的Requests和Limits是通過CPU數(shù)(cpus)來度量的。
CPU的資源值是絕對值,而不是相對值,比如0.1CPU在單核或多核機(jī)器上是一樣的,都嚴(yán)格等于0.1 CPU core。

  • 計算Memory

內(nèi)存的Requests和Limits計量單位是字節(jié)數(shù)。使用整數(shù)或者定點整數(shù)加上國際單位制來表示內(nèi)存值。
國際單位制包括十進(jìn)制的E、P、T、G、M、K、m,或二進(jìn)制的Ei、Pi、Ti、Gi、Mi、Ki。
KiB與MiB是以二進(jìn)制表示的字節(jié)單位,常見的KB與MB則是以十進(jìn)制表示的字節(jié)單位,比如: 1 KB=1000 Bytes=8000Bits; 1 KiB=2^10 Bytes=1024 Bytes=8192 Bits。

  • 注意事項

計算資源單位大小寫敏感,m表示千分之一單位,M表示十進(jìn)制的1000,二者的含義不同。

1.2 調(diào)度機(jī)制

基于Requests和Limits的Pod調(diào)度機(jī)制:

調(diào)度器在調(diào)度時,首先要確保調(diào)度后該節(jié)點上所有Pod的CPU和內(nèi)存的Requests總和,不超過該節(jié)點能提供給Pod使用的CPU和Memory的最大容量值。

例如,某個節(jié)點上的CPU資源充足,而內(nèi)存為4GB,其中3GB可以運(yùn)行Pod,而某Pod的Memory Requests為1GB、Limits為2GB,那么在這個節(jié)點上最多可以運(yùn)行3個這樣的Pod。

Requests和Limits的背后機(jī)制:

>> kubelet在啟動Pod的某個容器時,會將容器的Requests和Limits值轉(zhuǎn)化為相應(yīng)的容器啟動參數(shù)傳遞給容器執(zhí)行器(Docker或者rkt)。

>> 若容器的執(zhí)行環(huán)境是Docker,那么容器的4個參數(shù)傳遞給Docker的過程如下:
	1. spec.container[].resources.requests.cpu:參數(shù)值會被轉(zhuǎn)化為core數(shù)(比如配置的100m會轉(zhuǎn)化為0.1),然后乘以1024,再將這個結(jié)果作為–cpu-shares參數(shù)的值傳遞給docker run命令。
	2. spec.container[].resources.limits.cpu:參數(shù)值會被轉(zhuǎn)化為millicore數(shù)(比如配置的1被轉(zhuǎn)化為1000,配置的100m被轉(zhuǎn)化為100),將此值乘以100000,再除以1000,然后將結(jié)果值作為–cpu-quota參數(shù)的值傳遞給docker run命令。
	3. spec.container[].resources.requests.memory:參數(shù)值只提供給Kubernetes調(diào)度器作為調(diào)度和管理的依據(jù),不會作為任何參數(shù)傳遞給Docker。
	4. spec.container[].resources.limits.memory:參數(shù)值會被轉(zhuǎn)化為單位為Bytes的整數(shù),值作為–memory參數(shù)傳遞給docker run命令。

常見問題分析:

1. 若Pod狀態(tài)為Pending,錯誤信息為FailedScheduling。若調(diào)度器在集群中找不到合適的節(jié)點來運(yùn)行Pod,那么這個Pod會一直處于未調(diào)度狀態(tài),直到調(diào)度器找到合適的節(jié)點為止。每次調(diào)度器嘗試調(diào)度失敗時,Kubernetes都會產(chǎn)生一個事件。
2. 容器被強(qiáng)行終止(Terminated)。如果容器使用的資源超過了它配置的Limits,那么該容器可能被強(qiáng)制終止。我們可以通過kubectl describe pod命令來確認(rèn)容器是否因為這個原因被終止

1.3 服務(wù)質(zhì)量等級

  • Pod的三種QoS級別:
  • Guaranteed(完全可靠的):如果Pod中的所有容器對所有資源類型都定義了Limits和Requests,并且所有容器的Limits值都和Requests值相等(且都不為0),那么該P(yáng)od的QoS級別就是Guaranteed。未定義Requests值,所以其默認(rèn)等于Limits值。 其中定義的Requests與Limits的值完全相同。
  • BestEffort(盡力而為、不太可靠的):如果Pod中所有容器都未定義資源配置(Requests和Limits都未定義),那么該P(yáng)od的QoS級別就是BestEffort。
  • Burstable(彈性波動、較可靠的):當(dāng)一個Pod既不為Guaranteed級別,也不為BestEffort級別時,該P(yáng)od的QoS級別就是Burstable。Pod中的一部分容器在一種或多種資源類型的資源配置中定義了Requests值和Limits值(都不為0),且Requests值小于Limits值。Pod中的一部分容器未定義資源配置(Requests和Limits都未定義)。
  • 工作特點:
  • BestEffort:Pod的優(yōu)先級最低,在這類Pod中運(yùn)行的進(jìn)程會在系統(tǒng)內(nèi)存緊缺時被第一優(yōu)先“殺掉”。當(dāng)然,從另一個角度來看,BestEffortPod由于沒有設(shè)置資源Limits,所以在資源充足時,它們可以充分使用所有閑置資源。
  • Burstable:Pod的優(yōu)先級居中,這類Pod在初始時會被分配較少的可靠資源,但可以按需申請更多的資源。當(dāng)然,如果整個系統(tǒng)內(nèi)存緊缺,又沒有BestEffort容器可以被殺掉以釋放資源,那么這類Pod中的進(jìn)程可能被“殺掉”。
  • Guaranteed:Pod的優(yōu)先級最高,而且一般情況下這類Pod只要不超過其資源Limits的限制就不會被“殺掉”。當(dāng)然,如果整個系統(tǒng)內(nèi)存緊缺,又沒有其他更低優(yōu)先級的容器可以被“殺掉”以釋放資源,那么這類Pod中的進(jìn)程也可能會被“殺掉”。

二、資源配額 ResourceQuota

為何會有資源配額?

當(dāng)多個團(tuán)隊、多個用戶共享使用K8s集群時,會出現(xiàn)不均勻資源使用,默認(rèn)情況下先到先得,這時可以通過ResourceQuota來對命名空間資源使用總量做限制,從而解決這個問題。
  • 使用流程

k8s管理員為每個命名空間創(chuàng)建一個或多個ResourceQuota對象,定義資源使用總量,K8s會跟蹤命名空間資源使用情況,當(dāng)超過定義的資源配額會返回拒絕。

  • 注意事項

如果在集群中新添加了節(jié)點,資源配額不會自動更新,該資源配額所對應(yīng)的命名空間中的對象也不能自動增加資源上限。

2.1 支持的限制資源

  • 資源限制對象

容器資源請求值(requests):命名空間下的所有pod申請資源時設(shè)置的requests總和不能超過這個值。
容器資源限制值(limits):命名空間下的所有pod申請資源時設(shè)置的limits總和不能超過這個值。文章來源地址http://www.zghlxwxcb.cn/news/detail-546160.html

  • 注意事項
  1. CPU單位:可以寫m也可以寫浮點數(shù),例如0.5=500m,1=1000m;
  2. requests必須小于limits,建議一個理論值:requests值小于limits的20%-30%,一般是limits的70%;
  3. limits盡量不要超過所分配宿主機(jī)物理配置的80%,否則沒有限制意義;
  4. requests只是一個預(yù)留性質(zhì),并非實際的占用,用于k8s合理的分配資源(每個節(jié)點都有可分配的資源,k8s抽象的將這些節(jié)點資源統(tǒng)一分配)。比如requests分配1核1G,在滿足的節(jié)點上創(chuàng)建完容器后實際資源可能只有0.5C1G;
  5. requests會影響pod調(diào)度,k8s只能將pod分配到能滿足該requests值的節(jié)點上;
  6. ResourceQuota功能是一個準(zhǔn)入控制插件,默認(rèn)已經(jīng)啟用;

到了這里,關(guān)于k8s資源配額限制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 云原生Kubernetes:K8S配置資源管理

    云原生Kubernetes:K8S配置資源管理

    目錄 一、理論 1.Secret 2.Secret創(chuàng)建 3.Secret使用 4.Configmap 5.Configmap創(chuàng)建 6.Configmap使用 二、實驗 1.Secret創(chuàng)建 2.Secret使用 3.Configmap創(chuàng)建 4.Configmap使用 三、問題 1.變量引用生成資源報錯 2.查看pod日志失敗 3.創(chuàng)建configmap報錯 4.YAML創(chuàng)建configmap報錯 5. 生成資源報錯 6.文件掛載pod報錯Error 四

    2024年02月07日
    瀏覽(25)
  • K8S(五)—命名空間與資源配額

    K8S(五)—命名空間與資源配額

    Kubernetes(K8s)的命名空間(Namespace)是用于在集群中對資源進(jìn)行邏輯隔離和分類的一種機(jī)制。它可以將集群內(nèi)的資源劃分為不同的組,并且每個命名空間內(nèi)的資源都有一個唯一的名稱。命名空間可以幫助團(tuán)隊將不同的項目、環(huán)境或應(yīng)用程序從彼此中隔離開來,以及更好地管理

    2024年02月04日
    瀏覽(67)
  • kubernetes(k8s)為容器和 Pod 分配內(nèi)存資源

    kubernetes(k8s)為容器和 Pod 分配內(nèi)存資源

    展示如何將內(nèi)存請求(request)和內(nèi)存限制(limit)分配給一個容器。 我們保障容器擁有它請求數(shù)量的內(nèi)存,但不允許使用超過限制數(shù)量的內(nèi)存。 創(chuàng)建新的命名空間 編輯yaml文件 配置文件的 args 部分提供了容器啟動時的參數(shù)。 “–vm-bytes”, “150M” 參數(shù)告知容器嘗試分配 15

    2024年02月15日
    瀏覽(108)
  • K8S 1.27 動態(tài)調(diào)整容器CPU和內(nèi)存資源限制,無需重啟應(yīng)用程序

    如果您在部署Pod時指定了 CPU 和內(nèi)存資源,更改資源大小需要重新啟動 Pod。到目前為止,重啟對于正在運(yùn)行工的作負(fù)載是一種破壞性操作。 Kubernetes 1.27 中的 alpha 功能發(fā)布。其中一項能夠自動調(diào)整 Pod 的 CPU 和內(nèi)存限制的大小,只需修補(bǔ)正在運(yùn)行的 Pod 定義即可更改它們,而無

    2024年02月07日
    瀏覽(29)
  • K8s(一)Pod資源——Pod介紹、創(chuàng)建Pod、Pod簡單資源配額

    K8s(一)Pod資源——Pod介紹、創(chuàng)建Pod、Pod簡單資源配額

    目錄 Pod概述 pod網(wǎng)絡(luò) pod存儲 pod和容器對比 創(chuàng)建pod的方式 pod運(yùn)行方式分類 Pod的創(chuàng)建 Pod的創(chuàng)建過程 通過kubectl run來創(chuàng)建pod 通過yaml文件創(chuàng)建,yaml文件簡單寫法 Pod簡單操作 Pod的標(biāo)簽labels Pod的資源配額resource 測試 Kubernetes Pod | Kubernetes Pod是Kubernetes中的最小調(diào)度單元,k8s都是以p

    2024年01月18日
    瀏覽(52)
  • 【云原生 | Kubernetes 系列】— 部署K8S 1.28版本集群部署(基于Containerd容器運(yùn)行)

    主機(jī)名 IP地址 備注 k8s-master01 192.168.0.109 master k8s-node1 192.168.0.108 node1 k8s-node2 192.168.0.107 node1 k8s-node3 192.168.0.105 node1 1、主機(jī)配置 2、升級內(nèi)核 3、配置內(nèi)核轉(zhuǎn)發(fā)以及過濾 4、安裝ipset ipvsadm,IPVS(IP Virtual Server)是一個用于負(fù)載均衡的 Linux 內(nèi)核模塊,它可以用來替代 kube-proxy 默認(rèn)的

    2024年02月20日
    瀏覽(101)
  • 云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授權(quán)訪問&容器執(zhí)行

    云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授權(quán)訪問&容器執(zhí)行

    Kubernetes是一個開源的, 用于編排云平臺中多個主機(jī)上的容器化的應(yīng)用,目標(biāo)是讓部署容器化的應(yīng)用能簡單并且高效的使用, 提供了應(yīng)用部署,規(guī)劃,更新,維護(hù)的一種機(jī)制 。其核心的特點就是能夠自主的管理容器來保證云平臺中的容器按照用戶的期望狀態(tài)運(yùn)行著,管理員可

    2024年02月08日
    瀏覽(31)
  • 【云原生】kubernetes中容器的資源限制

    【云原生】kubernetes中容器的資源限制

    目錄 1 metrics-server 2 指定內(nèi)存請求和限制 3 指定 CPU 請求和限制 資源限制 在k8s中對于容器資源限制主要分為以下兩類: 內(nèi)存資源限制: 內(nèi)存 請求 (request)和內(nèi)存 限制 (limit)分配給一個容器。 我們保障容器擁有它請求數(shù)量的內(nèi)存,但不允許使用超過限制數(shù)量的內(nèi)存。 官網(wǎng)參

    2024年02月14日
    瀏覽(23)
  • 【云原生 | Kubernetes 系列】K8s 實戰(zhàn) 如何給應(yīng)用注入數(shù)據(jù) II 將pod數(shù)據(jù)傳遞給容器

    【云原生 | Kubernetes 系列】K8s 實戰(zhàn) 如何給應(yīng)用注入數(shù)據(jù) II 將pod數(shù)據(jù)傳遞給容器

    在上一篇文章中,我們學(xué)習(xí)了針對容器設(shè)置啟動時要執(zhí)行的命令和參數(shù)、定義相互依賴的環(huán)境變量、為容器設(shè)置環(huán)境變量,三種設(shè)置方式,本篇文章,我們將繼續(xù)學(xué)習(xí)數(shù)據(jù)的傳遞。 有兩種方式可以將 Pod 和 Container 字段傳遞給運(yùn)行中的容器: 環(huán)境變量 卷文件 這兩種呈現(xiàn) Pod

    2024年01月25日
    瀏覽(526)
  • 云原生Kubernetes:K8S集群實現(xiàn)容器運(yùn)行時遷移(docker → containerd) 與 版本升級(v1.23.14 → v1.24.1)

    云原生Kubernetes:K8S集群實現(xiàn)容器運(yùn)行時遷移(docker → containerd) 與 版本升級(v1.23.14 → v1.24.1)

    目錄 一、理論 1.K8S集群升級 2.環(huán)境 3.升級策略 4.master1節(jié)點遷移容器運(yùn)行時(docker → containerd)? 5.master2節(jié)點遷移容器運(yùn)行時(docker → containerd)? 6.node1節(jié)點容器運(yùn)行時遷移(docker → containerd)? 7.升級集群計劃(v1.23.14 →?v1.24.1) 8.升級master1節(jié)點版本(v1.24.1) 9.升級master2節(jié)點版本

    2024年02月03日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包