日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)kubernetes教程:Kubernetes進程ID約束與預留

進程 ID 約束與預留

FEATURE STATE: Kubernetes v1.20 [stable]

Kubernetes 允許你限制一個 Pod 中可以使用的 進程 ID(PID)數(shù)目。你也可以為每個 節(jié)點 預留一定數(shù)量的可分配的 PID,供操作系統(tǒng)和守護進程(而非 Pod)使用。

進程 ID(PID)是節(jié)點上的一種基礎資源。很容易就會在尚未超出其它資源約束的時候就 已經(jīng)觸及任務個數(shù)上限,進而導致宿主機器不穩(wěn)定。

集群管理員需要一定的機制來確保集群中運行的 Pod 不會導致 PID 資源枯竭,甚而 造成宿主機上的守護進程(例如 kubelet 或者 kube-proxy 乃至包括容器運行時本身)無法正常運行。 此外,確保 Pod 中 PID 的個數(shù)受限對于保證其不會影響到同一節(jié)點上其它負載也很重要。

Note:

在某些 Linux 安裝環(huán)境中,操作系統(tǒng)會將 PID 約束設置為一個較低的默認值,例如 ?
32768?。這時可以考慮提升 ?
/proc/sys/kernel/pid_max? 的設置值。

你可以配置 kubelet 限制給定 Pod 能夠使用的 PID 個數(shù)。 例如,如果你的節(jié)點上的宿主操作系統(tǒng)被設置為最多可使用 ?262144 ?個 PID,同時預期 節(jié)點上會運行的 Pod 個數(shù)不會超過 ?250?,那么你可以為每個 Pod 設置 ?1000 ?個 PID 的預算,避免耗盡該節(jié)點上可用 PID 的總量。 如果管理員系統(tǒng)像 CPU 或內(nèi)存那樣允許對 PID 進行過量分配(Overcommit),他們也可以 這樣做,只是會有一些額外的風險。不管怎樣,任何一個 Pod 都不可以將整個機器的運行 狀態(tài)破壞。這類資源限制有助于避免簡單的派生炸彈(Fork Bomb)影響到整個集群的運行。

在 Pod 級別設置 PID 限制使得管理員能夠保護 Pod 之間不會互相傷害,不過無法 確保所有調(diào)度到該宿主機器上的所有 Pod 都不會影響到節(jié)點整體。 Pod 級別的限制也無法保護節(jié)點代理任務自身不會受到 PID 耗盡的影響。

你也可以預留一定量的 PID,作為節(jié)點的額外開銷,與分配給 Pod 的 PID 集合獨立。 這有點類似于在給操作系統(tǒng)和其它設施預留 CPU、內(nèi)存或其它資源時所做的操作, 這些任務都在 Pod 及其所包含的容器之外運行。

PID 限制是與計算資源 請求和限制相輔相成的一種機制。不過,你需要用一種不同的方式來設置這一限制: 你需要將其設置到 kubelet 上而不是在 Pod 的 ?.spec? 中為 Pod 設置資源限制。 目前還不支持在 Pod 級別設置 PID 限制。

Caution:

這意味著,施加在 Pod 之上的限制值可能因為 Pod 運行所在的節(jié)點不同而有差別。 為了簡化系統(tǒng),最簡單的方法是為所有節(jié)點設置相同的 PID 資源限制和預留值。

節(jié)點級別 PID 限制 

Kubernetes 允許你為系統(tǒng)預留一定量的進程 ID。為了配置預留數(shù)量,你可以使用 kubelet 的 ?--system-reserved? 和 ?--kube-reserved? 命令行選項中的參數(shù) ?pid=?。你所設置的參數(shù)值分別用來聲明為整個系統(tǒng)和 Kubernetes 系統(tǒng) 守護進程所保留的進程 ID 數(shù)目。

Note:

在 Kubernetes 1.20 版本之前,在節(jié)點級別通過 PID 資源限制預留 PID 的能力 需要啟用特性門控 ?
SupportNodePidsLimit ?才行。

Pod 級別 PID 限制 

Kubernetes 允許你限制 Pod 中運行的進程個數(shù)。你可以在節(jié)點級別設置這一限制, 而不是為特定的 Pod 來將其設置為資源限制。 每個節(jié)點都可以有不同的 PID 限制設置。 要設置限制值,你可以設置 kubelet 的命令行參數(shù) ?--pod-max-pids?,或者 在 kubelet 的配置文件 中設置 ?PodPidsLimit?。

Note:

在 Kubernetes 1.20 版本之前,為 Pod 設置 PID 資源限制的能力需要啟用 特性門控 ?
SupportNodePidsLimit ?才行。

基于 PID 的驅(qū)逐 

你可以配置 kubelet 使之在 Pod 行為不正?;蛘呦牟徽?shù)量資源的時候?qū)⑵浣K止。 這一特性稱作驅(qū)逐。你可以針對不同的驅(qū)逐信號 配置資源不足的處理。 使用 ?pid.available? 驅(qū)逐信號來配置 Pod 使用的 PID 個數(shù)的閾值。 你可以設置硬性的和軟性的驅(qū)逐策略。不過,即使使用硬性的驅(qū)逐策略, 如果 PID 個數(shù)增長過快,節(jié)點仍然可能因為觸及節(jié)點 PID 限制而進入一種不穩(wěn)定狀態(tài)。 驅(qū)逐信號的取值是周期性計算的,而不是一直能夠強制實施約束。

Pod 級別和節(jié)點級別的 PID 限制會設置硬性限制。 一旦觸及限制值,工作負載會在嘗試獲得新的 PID 時開始遇到問題。 這可能會也可能不會導致 Pod 被重新調(diào)度,取決于工作負載如何應對這類失敗 以及 Pod 的存活性和就緒態(tài)探測是如何配置的。 可是,如果限制值被正確設置,你可以確保其它 Pod 負載和系統(tǒng)進程不會因為某個 Pod 行為不正常而沒有 PID 可用。


網(wǎng)站名稱:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes進程ID約束與預留
分享鏈接:http://www.dlmjj.cn/article/djohosc.html