久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Kubernetes服務部署中如何更好地設置 Request 與 Limit

148次閱讀
沒有評論

共計 1988 個字符,預計需要花費 5 分鐘才能閱讀完成。

今天就跟大家聊聊有關 Kubernetes 服務部署中如何更好地設置 Request 與 Limit,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

如何為容器配置 Request 與 Limit? 這是一個即常見又棘手的問題,這個根據服務類型,需求與場景的不同而不同,沒有固定的答案,這里結合生產經驗總結了一些最佳實踐。

所有容器都應該設置 request

request 的值并不是指給容器實際分配的資源大小,它僅僅是給調度器看的,調度器會 觀察 每個節點可以用于分配的資源有多少,也知道每個節點已經被分配了多少資源。被分配資源的大小就是節點上所有 Pod 中定義的容器 request 之和,它可以計算出節點剩余多少資源可以被分配 (可分配資源減去已分配的 request 之和)。如果發現節點剩余可分配資源大小比當前要被調度的 Pod 的 reuqest 還小,那么就不會考慮調度到這個節點,反之,才可能調度。所以,如果不配置 request,那么調度器就不能知道節點大概被分配了多少資源出去,調度器得不到準確信息,也就無法做出合理的調度決策,很容易造成調度不合理,有些節點可能很閑,而有些節點可能很忙,甚至 NotReady。

所以,建議是給所有容器都設置 request,讓調度器感知節點有多少資源被分配了,以便做出合理的調度決策,讓集群節點的資源能夠被合理的分配使用,避免陷入資源分配不均導致一些意外發生。

老是忘記設置怎么辦

有時候我們會忘記給部分容器設置 request 與 limit,其實我們可以使用 LimitRange 來設置 namespace 的默認 request 與 limit 值,同時它也可以用來限制最小和最大的 request 與 limit。示例:

apiVersion: v1
kind: LimitRange
metadata:
 name: mem-limit-range
 namespace: test
spec:
 limits:
 - default:
 memory: 512Mi
 cpu: 500m
 defaultRequest:
 memory: 256Mi
 cpu: 100m
 type: Container

重要的線上應用改如何設置

節點資源不足時,會觸發自動驅逐,將一些低優先級的 Pod 刪除掉以釋放資源讓節點自愈。沒有設置 request,limit 的 Pod 優先級最低,容易被驅逐;request 不等于 limit 的其次;request 等于 limit 的 Pod 優先級較高,不容易被驅逐。所以如果是重要的線上應用,不希望在節點故障時被驅逐導致線上業務受影響,就建議將 request 和 limit 設成一致。

怎樣設置才能提高資源利用率

如果給給你的應用設置較高的 request 值,而實際占用資源長期遠小于它的 request 值,導致節點整體的資源利用率較低。當然這對時延非常敏感的業務除外,因為敏感的業務本身不期望節點利用率過高,影響網絡包收發速度。所以對一些非核心,并且資源不長期占用的應用,可以適當減少 request 以提高資源利用率。

如果你的服務支持水平擴容,單副本的 request 值一般可以設置到不大于 1 核,CPU 密集型應用除外。比如 coredns,設置到 0.1 核就可以,即 100m。

盡量避免使用過大的 request 與 limit

如果你的服務使用單副本或者少量副本,給很大的 request 與 limit,讓它分配到足夠多的資源來支撐業務,那么某個副本故障對業務帶來的影響可能就比較大,并且由于 request 較大,當集群內資源分配比較碎片化,如果這個 Pod 所在節點掛了,其它節點又沒有一個有足夠的剩余可分配資源能夠滿足這個 Pod 的 request 時,這個 Pod 就無法實現漂移,也就不能自愈,加重對業務的影響。

相反,建議盡量減小 request 與 limit,通過增加副本的方式來對你的服務支撐能力進行水平擴容,讓你的系統更加靈活可靠。

避免測試 namespace 消耗過多資源影響生產業務

若生產集群有用于測試的 namespace,如果不加以限制,可能導致集群負載過高,從而影響生產業務??梢允褂?ResourceQuota 來限制測試 namespace 的 request 與 limit 的總大小。示例:

apiVersion: v1
kind: ResourceQuota
metadata:
 name: quota-test
 namespace: test
spec:
 hard:
 requests.cpu:  1 
 requests.memory: 1Gi
 limits.cpu:  2 
 limits.memory: 2Gi

看完上述內容,你們對 Kubernetes 服務部署中如何更好地設置 Request 與 Limit 有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計1988字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 昌江| 二连浩特市| 凤冈县| 革吉县| 舞钢市| 长泰县| 余干县| 光泽县| 奉贤区| 徐州市| 深水埗区| 彭州市| 南京市| 砚山县| 寻乌县| 锡林郭勒盟| 玛多县| 平顶山市| 永清县| 绵竹市| 达尔| 明光市| 宜宾市| 洛南县| 南京市| 宁德市| 大冶市| 马山县| 芒康县| 仁布县| 墨玉县| 余干县| 宕昌县| 原阳县| 满洲里市| 大田县| 元氏县| 手游| 眉山市| 长宁区| 连南|