日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker内存阀值_kubernetes调度之资源耗尽处理配置

發布時間:2025/3/11 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker内存阀值_kubernetes调度之资源耗尽处理配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇將介紹如何使用kubelet處理資源耗盡的情況

當可用的計算機資源非常低的時候,kubelet仍然要保證節點的穩定性.當處理不可壓縮的計算機資源(比如內存或磁盤空間)時,這尤其重要,當這些資源被耗盡時,節點將變得不穩定

驅離策略

kubelet會積極的監視并阻止可用計算機資源耗盡.這種情況下,kubelet會終止一個或者多個pod來重新取回耗盡的資源,當kubelet終止一個pod時,它將會終止pod的所有容器并把PodPhase設置為Failed

驅離信號

kubelet支持基于下面列表中描述的驅離信號的驅離策略.每一個信號值都由后面description列來描述,并且它們是基于kubelet的summary API

Eviction Signal

Description

memory.available

memory.available := node.status.capacity[memory] - node.stats.memory.workingSet

nodefs.available

nodefs.available := node.stats.fs.available

nodefs.inodesFree

nodefs.inodesFree := node.stats.fs.inodesFree

imagefs.available

imagefs.available := node.stats.runtime.imagefs.available

imagefs.inodesFree

imagefs.inodesFree := node.stats.runtime.imagefs.inodesFree

以上的信號同時支持字面量或者百分比值.百分比值根據每個信號的總容量來計算

memory.available的值從cgroup里衍生出來,而不是通過free -m,這一點很重要因為free -m在容器里是無效的

kubelet僅支持以下兩種文件類型分區:

nodefs文件系統,kubelet用于存儲卷,守護進程log等

imagefs文件系統,容器運行時用于存儲鏡像和容器的可寫層

imagefs是可選的,kubelet使用cAdvisor來自動發現.kubelet并不關心其它文件系統.其它類型的配置目前kubelet也不支持,比如把存儲卷和log存放到filesystem是not OK的

驅離閾值

kubelet支持指定驅離閾值來來觸發kubelet回收資源

每一個閾值都是以下形式的:

[eviction-signal][operator][quantity]

eviction-signal 是上面表中定義的一個信號token

operator是一種期望的操作符,比如

quantity 驅離閾值的量,比如1Gi,驅離閾值也可以是由%百分號表示的百分比值

比如說一個節點有10Gi總內存值,并且如果可用內存的值如果低于1Gi的時候你想要觸發驅離,你可以以如下兩種方式中的任一來定義驅離閾值

memory.available<10%或memory.available<1Gi但是你不能兩者同時使用.

軟驅離閾值

軟驅離閾值和一個包含管理員指定的優雅時間的驅離閾值成對出現.驅離信號發出后,在優雅時間沒有超出之前,kubelet不會回收資源.如果不指定優雅時間,kubelet會在一開始就返回錯誤

此外,如果軟驅離閾值被滿足,operator可以指定被驅離時最大允許的pod優雅終止時間.如果指定了,kubelet使用pod.Spec.TerminationGracePeriodSeconds和最大允許的優雅終止時間兩者中較小的一個值.如果沒有指定,kubelet會馬上殺死pod

以下標識被用于支持軟驅離閾值

eviction-soft描述了一系列軟驅離閾值.

eviction-soft-grace-period描述了一系列驅離時間,(比如memory.available=1m30s),對應在驅離發生之前,軟件驅離閾值持續的時間

eviction-max-pod-grace-period描述了當軟驅離閾值被滿足時,最大允許的優雅終止時間(單位是秒)

硬驅離閾值

硬驅離閾值沒有優雅時段,kubelet會立馬對相關的資源采取動作.如果硬驅離閾值被滿足,kubelet會立馬殺死pod,而沒有優雅終止時段.

以下標識可以被用于配置硬驅離閾值

memory.available<100Mi

nodefs.available<10%

nodefs.inodesFree<5%

imagefs.available<15%

驅離監視時間間隔

通過housekeeping-interval

節點狀態

kubelet把一個或多個驅離信號映射到的對應的節點狀態上

如果硬驅離閾值被滿足,或者不依賴于優雅時段的軟驅離閾值被滿足,kubelet會報告一種狀態來反映節點處于壓力之下

以下是節點狀態和特定驅離信號間的關系

Node Condition

Eviction Signal

Description

MemoryPressure

memory.available

Available memory on the node has satisfied an eviction threshold

DiskPressure

nodefs.available, nodefs.inodesFree, imagefs.available, or imagefs.inodesFree

Available disk space and inodes on either the node’s root filesystem or image filesystem has satisfied an eviction threshold

kubelet會繼續以--node-status-update-frequency指定的值(默認為10秒)來報告更新的節點狀態

回收節點級別的資源

如果驅離閾值被滿足并且優雅時段已過,kubelet開始啟動對處于壓力的資源的回收工作直到監測到壓力信號已經消失并且低于定義的閾值

kubelete嘗試優先回收節點級別的資源而不是驅離pod.如果監測到磁盤壓力,如果節點有容器運行時專用的imagefs,則kubelet回收資源的方式不同

驅離pod

如果kubelet無法在節點上回收到足夠的資源,則開始驅離pod.

kubelet首先會根據pod使用的資源是否超過了申請的資源,然后根據他們的優先級把要驅離的pod進行排序.

最終kubelet按照以下列出的順序對要驅離的pod進行排序:

BestEffort或者Burstable類型pod

總結

以上是生活随笔為你收集整理的docker内存阀值_kubernetes调度之资源耗尽处理配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。