精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

kubelet 配置資源預留的姿勢

運維 系統運維
本文的操作環境為 Kubernetes v1.22.1 版本,使用 Containerd 的容器運行時,Containerd 和 Kubelet 采用的 cgroup 驅動為 systemd。

[[422195]]

Kubernetes 的節點可以按照節點的資源容量進行調度,默認情況下 Pod 能夠使用節點全部可用容量。這樣就會造成一個問題,因為節點自己通常運行了不少驅動 OS 和 Kubernetes 的系統守護進程。除非為這些系統守護進程留出資源,否則它們將與 Pod 爭奪資源并導致節點資源短缺問題。

當我們在線上使用 Kubernetes 集群的時候,如果沒有對節點配置正確的資源預留,我們可以考慮一個場景,由于某個應用無限制的使用節點的 CPU 資源,導致節點上 CPU 使用持續100%運行,而且壓榨到了 kubelet 組件的 CPU 使用,這樣就會導致 kubelet 和 apiserver 的心跳出問題,節點就會出現 Not Ready 狀況了。默認情況下節點 Not Ready 過后,5分鐘后會驅逐應用到其他節點,當這個應用跑到其他節點上的時候同樣100%的使用 CPU,是不是也會把這個節點搞掛掉,同樣的情況繼續下去,也就導致了整個集群的雪崩,集群內的節點一個一個的 Not Ready 了,后果是非常嚴重的,或多或少的人遇到過 Kubernetes 集群雪崩的情況,這個問題也是面試的時候鏡像詢問的問題。

要解決這個問題就需要為 Kubernetes 集群配置資源預留,kubelet 暴露了一個名為 Node Allocatable 的特性,有助于為系統守護進程預留計算資源,Kubernetes 也是推薦集群管理員按照每個節點上的工作負載來配置 Node Allocatable。

本文的操作環境為 Kubernetes v1.22.1 版本,使用 Containerd 的容器運行時,Containerd 和 Kubelet 采用的 cgroup 驅動為 systemd。

Node Allocatable

Kubernetes 節點上的 Allocatable 被定義為 Pod 可用計算資源量,調度器不會超額申請 Allocatable,目前支持 CPU, memory 和 ephemeral-storage 這幾個參數。

我們可以通過 kubectl describe node 命令查看節點可分配資源的數據:

  1. ➜  ~ kubectl describe node node2 
  2. ...... 
  3. Capacity: 
  4.  cpu:                4 
  5.  ephemeral-storage:  36678148Ki 
  6.  hugepages-1Gi:      0 
  7.  hugepages-2Mi:      0 
  8.  memory:             7990056Ki 
  9.  pods:               110 
  10. Allocatable: 
  11.  cpu:                4 
  12.  ephemeral-storage:  33802581141 
  13.  hugepages-1Gi:      0 
  14.  hugepages-2Mi:      0 
  15.  memory:             7887656Ki 
  16.  pods:               110 
  17. ...... 

可以看到其中有 Capacity 與 Allocatable 兩項內容,其中的 Allocatable 就是節點可被分配的資源,我們這里沒有配置資源預留,所以默認情況下 Capacity 與 Allocatable 的值基本上是一致的。下圖顯示了可分配資源和資源預留之間的關系:

Node Allocatable

  • Kubelet Node Allocatable 用來為 Kube 組件和 System 進程預留資源,從而保證當節點出現滿負荷時也能保證 Kube 和 System 進程有足夠的資源。
  • 目前支持 cpu, memory, ephemeral-storage 三種資源預留。
  • Node Capacity 是節點的所有硬件資源,kube-reserved 是給 kube 組件預留的資源,system-reserved 是給系統進程預留的資源,eviction-threshold 是 kubelet 驅逐的閾值設定,allocatable 才是真正調度器調度 Pod 時的參考值(保證節點上所有 Pods 的 request 資源不超過 Allocatable)。

節點可分配資源的計算方式為:

  1. Node Allocatable Resource = Node Capacity - Kube-reserved - system-reserved - eviction-threshold 

調度到某個節點上的 Pod 的 requests 總和不能超過該節點的 allocatable。

配置資源預留

比如我們現在需要為系統預留一定的資源,我們可以使用如下的幾個 kubelet 參數來進行配置:

  1. --enforce-node-allocatable=pods 
  2. --kube-reserved=memory=... 
  3. --system-reserved=memory=... 
  4. --eviction-hard=... 

這里我們暫時不設置對應的 cgroup,比如我們這里先只對 node2 節點添加資源預留,我們可以直接修改 /var/lib/kubelet/config.yaml 文件來動態配置 kubelet,添加如下所示的資源預留配置:

  1. apiVersion: kubelet.config.k8s.io/v1beta1 
  2. ...... 
  3. enforceNodeAllocatable: 
  4. - pods 
  5. kubeReserved:  # 配置 kube 資源預留 
  6.   cpu: 500m 
  7.   memory: 1Gi 
  8.   ephemeral-storage: 1Gi 
  9. systemReserved:  # 配置系統資源預留 
  10.   memory: 1Gi 
  11. evictionHard:  # 配置硬驅逐閾值 
  12.   memory.available: "300Mi" 
  13.   nodefs.available: "10%" 

修改完成后,重啟 kubelet,啟動完成后重新對比 Capacity 及 Allocatable 的值:

  1. ➜  ~ kubectl describe node node2 
  2. ...... 
  3. Capacity: 
  4.   cpu:                4 
  5.   ephemeral-storage:  36678148Ki 
  6.   hugepages-1Gi:      0 
  7.   hugepages-2Mi:      0 
  8.   memory:             7990056Ki 
  9.   pods:               110 
  10. Allocatable: 
  11.   cpu:                3500m 
  12.   ephemeral-storage:  32728839317 
  13.   hugepages-1Gi:      0 
  14.   hugepages-2Mi:      0 
  15.   memory:             5585704Ki 
  16.   pods:               110 

仔細對比可以發現其中的 Allocatable的值恰好是 Capacity 減去上面我們配置的預留資源的值:

  1. allocatale = capacity - kube_reserved - system_reserved - eviction_hard 
  2. 5585704Ki = 7990056Ki - 1*1024*1024Ki - 1*1024*1024Ki - 300*1024Ki 

再通過查看 kubepods.slice(systemd 驅動是以 .slice 結尾)cgroup 中對節點上所有 Pod 內存的限制,該值決定了 Node 上所有的 Pod 能使用的資源上限:

  1. ➜  ~ cat /sys/fs/cgroup/memory/kubepods.slice/memory.limit_in_bytes 
  2. 6034333696 

得到的 Pod 資源使用上限為:

  1. 6034333696Bytes = 5892904Ki = Allocatable(5585704Ki) + eviction_hard(300*1024Ki) 

也可以通過計算驗證我們的配置是正確的:

  1. kubepods.slice/memory.limit_in_bytes = capacity - kube_reserved - system_reserved 

Eviction 與 OOM

1、eviction 是指 kubelet 對該節點上的 Pod 進行驅逐,OOM 是指 cgroup 對進程進行 kill

2、kubelet 對 Pod 進行驅逐時,是根據 --eviction-hard 參數,比如該參數如果設置了 memory.available<20%,那么當主機的內存使用率達到80%時,kubelet 便會對Pod進行驅逐。但是,--eviction-hard=memory.available<20% 不會對 /sys/fs/cgroup/memory/kubepods.slice/memory.limit_in_bytes 的值產生影響,因為 kubepods.slice/memory.limit_in_bytes = capacity - kube-reserved - system-reserved,換句話說,Pod 的內存使用量總和是可以超過80%的,且不會被 OOM-kill,只會被 eviction。

3、kubernetes 對 Pod 的驅逐機制如下(其實就是 QoS 章節的定義):

  • 首先驅逐沒有設置資源限制的 Pod
  • 然后驅逐資源上限和資源下限不一樣的 Pod
  • 最后驅逐資源上限等資源下限的Pod

可分配約束

前面我們在配置資源預留的時候其中有一個 enforceNodeAllocatable 配置項(--enforce-node-allocatable),該配置項的幫助信息為:

  1. --enforce-node-allocatable strings                         A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. Acceptable options are 'none', 'pods', 'system-reserved', and 'kube-reserved'. If the latter two options are specified, '--system-reserved-cgroup' and '--kube-reserved-cgroup' must also be set, respectively. If 'none' is specified, no additional options should be set. See https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/ for more details. (default [pods]) (DEPRECATED: This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.) 

kubelet 默認對 Pod 執行 Allocatable 可分配約束,如果所有 Pod 的總用量超過了 Allocatable,那么驅逐 Pod 的措施將被執行,我們可以可通過設置 kubelet --enforce-node-allocatable 標志值為 pods 控制這個措施。

此外我們還可以通過該標志來同時指定 kube-reserved 和 system-reserved 值,可以讓 kubelet 強制實施 kube-reserved 和 system-reserved 約束,不過需要注意,如果配置了 kube-reserved 或者 system-reserved 約束,那么需要對應設置 --kube-reserved-cgroup 或者 --system-reserved-cgroup 參數。

如果設置了對應的 --system-reserved-cgroup 和 --kube-reserved-cgroup 參數,Pod 能實際使用的資源上限是不會改變,但系統進程與 kube 進程也會受到資源上限的限制,如果系統進程超過了預留資源,那么系統進程會被 cgroup 殺掉。但是如果不設這兩個參數,那么系統進程就可以使用超過預留的資源上限。

所以如果要為系統預留和 kube 預留配置 cgroup,則需要非常小心,如果執行了 kube-reserved 約束,那么 kubelet 就不能出現突發負載用光所有可用資源,不然就會被殺掉。system-reserved 可以用于為諸如 sshd、udev 等系統守護進程爭取資源預留,但是如果執行 system-reserved 約束,那么可能因為某些原因導致節點上的關鍵系統服務 CPU 資源短缺或因為內存不足而被終止,所以如果不是自己非常清楚如何配置,最好別配置 cgroup 約束,如果需要自行配置,可以參考第一期的資源預留文檔進行相關操作。

因此,我們強烈建議用戶使用 enforce-node-allocatable 默認配置的 pods 即可,并為系統和 kube 進程預留出適當的資源,以保持整體節點的可靠性,不需要進行 cgroup 約束,除非操作人員對系統非常了解。

 

責任編輯:姜華 來源: k8s技術圈
相關推薦

2010-06-12 14:02:59

RSVP資源預留協議

2010-07-05 10:57:52

RSVP資源預留協議

2010-09-02 16:59:35

資源預留協議

2010-06-12 14:07:44

資源預留協議RSVP

2010-06-17 17:51:12

資源預留協議

2019-01-02 10:49:54

Tomcat內存HotSpot VM

2009-07-10 21:09:02

綜合布線隱蔽工程

2024-07-01 08:00:00

2018-01-11 15:31:39

命令Linux關機

2021-08-30 09:44:47

Kubelet機制驅逐

2017-02-23 15:37:44

OptionObject容器

2016-05-09 10:41:03

算法分析開發

2016-09-12 15:48:06

Nginxvarnish緩存

2017-07-10 13:09:45

前端Flexbox

2017-03-16 11:39:33

Openstack源碼姿勢

2015-09-25 10:58:20

2023-01-30 07:41:43

2023-01-29 09:06:24

微服務劃分關聯

2020-04-13 15:25:01

MySQL數據庫模糊搜索

2025-06-11 09:28:22

點贊
收藏

51CTO技術棧公眾號

欧美巨大黑人极品精男| 在线播放91灌醉迷j高跟美女| 狠狠综合久久av| 国产精品人人人人| 日韩欧美三级| 精品国产伦一区二区三区观看方式| jizzjizz国产精品喷水| a天堂中文在线88| 国产白丝网站精品污在线入口| 性欧美长视频免费观看不卡| 手机看片日韩av| 亚洲一二av| 91久久精品一区二区三区| 亚洲国产精品女人| 免费在线看v| 国产麻豆一精品一av一免费| 青草青草久热精品视频在线观看| 91久久久久久久久久久久久久| 一区二区三区亚洲变态调教大结局| 日韩欧美国产高清91| 中文字幕一区二区三区最新 | 久久亚洲国产精品一区二区| 久久精品最新地址| 亚洲AV无码国产精品| 小说区图片区亚洲| 色婷婷综合久久久久中文| 黑人巨大国产9丨视频| 高清日韩av电影| 99精品桃花视频在线观看| 成人写真福利网| 久久久精品视频网站 | 青青草国产精品视频| yourporn在线观看中文站| 成人深夜在线观看| 亚洲已满18点击进入在线看片 | 精品视频一区三区九区| 丰满爆乳一区二区三区| 亚洲羞羞网站| 亚洲欧洲韩国日本视频| 欧洲在线视频一区| 性感美女视频一二三| 国产成人在线视频免费播放| 国产精品亚洲美女av网站| 天堂中文在线网| 亚洲国产精品第一区二区三区| 久久精品91久久香蕉加勒比| 黄色片网站免费| 日韩有码av| 日韩电影网在线| 成年人小视频在线观看| 视频在线观看免费影院欧美meiju| 欧美精品在线一区二区| 九九热精品在线播放| 电影在线观看一区二区| 在线观看免费视频综合| 97在线免费公开视频| 欧美少妇精品| 狠狠综合久久av一区二区小说| 黄色激情在线视频| 91制片在线观看| 亚洲成人av一区二区| 亚洲 欧美 综合 另类 中字| 国产蜜臀一区二区打屁股调教| 怡红院av一区二区三区| 成年人视频网站免费| heyzo一区| 精品久久久中文| 99精品人妻少妇一区二区 | 免费看日韩av| www.av亚洲| 极品日韩久久| 日本福利在线观看| 国产欧美日韩精品一区| 日韩av一区二区三区在线| www日韩tube| 亚洲欧洲精品一区二区三区| 国产精品视频一二三四区| 宅男在线观看免费高清网站| 一区二区三区四区乱视频| 国产va亚洲va在线va| 一二三四视频在线中文| 欧美中文一区二区三区| 国产高清av片| 欧美爱爱网站| 在线精品播放av| 999精品视频在线观看播放| 女生裸体视频一区二区三区| 午夜欧美大片免费观看| 日韩不卡高清视频| 国产伦精一区二区三区| 精品欧美日韩在线| 香蕉视频国产在线观看| 亚洲一区在线观看免费观看电影高清 | 亚洲av综合色区无码一区爱av| av亚洲精华国产精华精| 日韩妆和欧美的一区二区| 老司机在线视频二区| 亚洲香蕉伊在人在线观| 男人舔女人下面高潮视频| 99国内精品久久久久| 亚洲精品成人久久电影| 日本黄色激情视频| 136国产福利精品导航网址| 国产精品wwwwww| 亚洲国产日韩在线观看| 国产欧美精品国产国产专区| 免费看日本黄色| 国产情侣一区二区三区| 精品国产乱码久久久久久图片| 国产一二三四区在线| 亚洲视屏一区| 国产一区二区在线播放| 四虎精品在永久在线观看| 亚洲四区在线观看| 97xxxxx| 亚州一区二区| 日韩视频在线免费| 亚洲va在线观看| 国产69精品久久99不卡| 亚洲日本理论电影| 在线精品亚洲欧美日韩国产| 日韩一区二区免费在线观看| 性猛交ⅹxxx富婆video| 日韩图片一区| 99久久无色码| 精品欧美色视频网站在线观看| 色哟哟一区二区在线观看| 激情av中文字幕| 亚洲精品二区三区| 国产精品网红直播| 日韩一区av| 香蕉加勒比综合久久| 日韩av影视大全| 国产精品毛片久久| 国产欧洲精品视频| 北条麻妃在线| 在线亚洲免费视频| 中文字幕在线1| 亚洲尤物影院| 激情小说综合区| bl在线肉h视频大尺度| 日韩美女视频在线| 久热这里有精品| 国精产品一区一区三区mba桃花| 日本在线视频一区| 亚洲成人看片| 亚洲人在线视频| 老熟妇仑乱一区二区av| 91麻豆国产香蕉久久精品| 欧美一级在线看| 五月综合久久| 国产va免费精品高清在线观看| 无套内谢的新婚少妇国语播放| 亚洲福利电影网| 欧美大喷水吹潮合集在线观看| 国产精品v一区二区三区| 91文字幕巨乱亚洲香蕉| 性欧美video高清bbw| 日韩欧美色综合| 久草网视频在线观看| 国产精品18久久久久久vr| 亚洲激情免费视频| 中文无码日韩欧| 97精品视频在线观看| 日本波多野结衣在线| 无码av免费一区二区三区试看| 少妇户外露出[11p]| 先锋影音久久久| 日韩亚洲视频| 色综合一区二区日本韩国亚洲| 欧美成人免费va影院高清| 亚洲AV无码成人片在线观看| 午夜欧美大尺度福利影院在线看| 免费成人深夜夜行p站| 日韩电影在线观看网站| 亚洲一区二区三区免费观看| 日韩精品成人| 欧美一级大胆视频| 在线激情网站| 日韩一区二区三区视频| 日本三级视频在线| 欧美韩国日本综合| 亚洲 自拍 另类 欧美 丝袜| 影音先锋中文字幕一区| 日本一区二区三区在线视频| 欧洲美女精品免费观看视频| 久久久久久亚洲精品中文字幕| 无码精品人妻一区二区三区影院| 在线视频国内一区二区| 成人免费毛片xxx| 国产福利电影一区二区三区| 狠狠97人人婷婷五月| 久久蜜桃av| 精品高清视频| 成人亚洲精品| 97精品免费视频| 日本在线人成| 日韩成人网免费视频| 91国内精品视频| 黑人巨大精品欧美一区二区免费 | www.黄色片| 色悠悠亚洲一区二区| 成熟的女同志hd| 久久综合九色综合欧美98| 国产精品久久久久久久av福利| 影音国产精品| 国产精品av免费| 综合国产视频| 99中文字幕| 视频精品导航| 26uuu另类亚洲欧美日本一| 亚洲搞黄视频| 亚洲欧美日韩成人| 亚洲国产精品久久人人爱潘金莲| 在线亚洲人成电影网站色www| 动漫精品一区一码二码三码四码| 国产精品久久久久影院| www.自拍偷拍| 成人一区二区三区在线观看| 日本高清久久久| 视频一区二区三区入口| 91动漫在线看| 中文字幕日韩一区二区不卡 | 欧美黄色录像片| 久久久久久99| 久久草在线视频| 亚洲自拍偷拍网址| 欧美亚洲福利| 国产精品欧美日韩一区二区| 综合日韩av| 性欧美办公室18xxxxhd| 中文字幕在线播放网址| 精品国产一区二区三区久久狼黑人| 四虎精品成人免费网站| 精品国产乱码久久久久久1区2区| 国产乱子伦精品无码码专区| 欧美性高清videossexo| 国产一级淫片a视频免费观看| 亚洲777理论| 精品少妇久久久久久888优播| 亚洲欧美日韩系列| 青青操在线视频观看| 国产欧美日本一区视频| 国产呦小j女精品视频| 99久久综合精品| 欧类av怡春院| av不卡在线播放| 国产极品一区二区| 成人免费高清在线观看| 国产伦理在线观看| 国产精品一二三四| 麻豆精品国产传媒| 成人小视频在线观看| 久久久久亚洲无码| www.99精品| 中文字幕av网址| 久久久国产一区二区三区四区小说| 中文字幕在线免费看线人| av综合在线播放| 天天躁日日躁aaaxxⅹ| 久久嫩草精品久久久精品| 国产精品密蕾丝袜| 国产精品欧美久久久久无广告| 人与动物性xxxx| 亚洲黄网站在线观看| 伊人国产在线观看| 欧美日韩国产中文精品字幕自在自线| 人人干人人干人人干| 欧美日韩在线观看视频| 久久精品视频5| 欧美色倩网站大全免费| 一级全黄裸体免费视频| 欧美一区二区黄色| 天堂av2024| 亚洲天堂免费视频| 蜜桃视频网站在线| 欧美精品福利在线| 不卡一二三区| 国产欧美日韩中文字幕在线| 久久中文字幕一区二区| 国产精品一区二区欧美黑人喷潮水| 西野翔中文久久精品字幕| 日韩精品久久久| 欧美在线免费一级片| 国内性生活视频| 精品制服美女久久| 怡红院一区二区| 日本一区二区成人在线| 永久免费看黄网站| 欧美体内谢she精2性欧美| 91免费视频播放| 亚洲国产一区二区三区四区| 97视频精彩视频在线观看| 欧美日韩不卡合集视频| 在线观看福利电影| 91久久国产精品| 亚洲国产国产| 成人在线观看毛片| 日韩电影在线免费看| 国产精品一区二区无码对白| 国产人妖乱国产精品人妖| 久久综合加勒比| 欧美撒尿777hd撒尿| 成人毛片在线精品国产| 亚洲性生活视频| 91精品国产黑色瑜伽裤| 国产欧美va欧美va香蕉在线| 欧美做受69| av 日韩 人妻 黑人 综合 无码| 视频一区欧美精品| 欧美性生交xxxxx| 中文字幕一区二区不卡| 亚洲日本韩国在线| 日韩欧美区一区二| 欧美成人二区| 国产成人激情小视频| ccyy激情综合| 成人在线观看毛片| 久久99精品一区二区三区三区| 国产亚洲无码精品| 午夜精品视频在线观看| 99精品视频免费看| 最近2019中文字幕在线高清| 久久青草伊人| 国产传媒一区二区三区| 91精品一区国产高清在线gif | 亚洲精品在线免费观看视频| 黄网址在线观看| 国产精品欧美在线| 国产精品亚洲二区| 九九九九免费视频| 成人av在线播放网址| 国产精品白嫩白嫩大学美女| 欧美日韩免费不卡视频一区二区三区 | 337p亚洲精品色噜噜| 精品av中文字幕在线毛片| 97超级碰在线看视频免费在线看 | xxx.xxx欧美| 91美女福利视频高清| 99热国内精品永久免费观看| 男女男精品视频站| 日本一区二区三区久久久久久久久不 | 91欧美国产| 日韩va在线观看| 国产精品国产三级国产aⅴ中文| 在线观看亚洲黄色| 亚洲欧美精品中文字幕在线| 亚洲成人不卡| 色女人综合av| 美国一区二区三区在线播放 | 高清乱码毛片入口| 久久久久久久久久久免费精品| 亚洲日本va中文字幕| 日本天堂免费a| 国产suv一区二区三区88区| 免费在线视频观看| 亚洲国产欧美一区二区三区同亚洲 | 久久久精品国产99久久精品芒果| 亚洲黄色小说图片| 亚洲色图激情小说| 日韩精品麻豆| 中文字幕中文字幕一区三区| 狠狠色丁香久久婷婷综| 欧美成人aaa片一区国产精品| 欧美哺乳videos| 蜜臀久久精品| 日本一区二区久久精品| 蜜桃视频免费观看一区| 极品魔鬼身材女神啪啪精品| 日韩午夜在线播放| 精品丝袜在线| 日韩精品久久久| 国产一区在线精品| 久草资源在线视频| 精品小视频在线| 99精品国自产在线| 日韩不卡视频一区二区| va亚洲va日韩不卡在线观看| 波多野结衣大片| 久久精品人人爽| 久久夜色电影| 在线黄色免费观看| 亚洲中国最大av网站| 欧美婷婷久久五月精品三区| 国产欧美日韩免费看aⅴ视频| 欧美激情亚洲| 在线免费观看成年人视频| 欧美放荡的少妇| 女海盗2成人h版中文字幕| 日本精品免费| 国产91精品露脸国语对白| 无码人妻丰满熟妇精品区| 久久久成人精品视频| 欧美高清视频看片在线观看| 亚洲欧美日韩精品一区| 亚洲国产中文字幕| 婷婷在线视频| 九九99玖玖| 狠狠色丁香婷综合久久| 少妇一级淫片免费放中国|