偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Kubernetes優(yōu)秀實(shí)踐:如何正確設(shè)置資源請(qǐng)求和限制?

譯文
開(kāi)發(fā) 架構(gòu)
管理Kubernetes時(shí),我最大的煩惱之一是工作負(fù)載沒(méi)有資源請(qǐng)求和限制。對(duì)此我感到非常沮喪,于是索性創(chuàng)建了一個(gè)開(kāi)源項(xiàng)目Goldilocks,以簡(jiǎn)化設(shè)置初始資源請(qǐng)求和限制這一過(guò)程。我在這篇博文中將討論如何正確設(shè)置資源請(qǐng)求和限制的Kubernetes優(yōu)秀實(shí)踐。

?譯者 | 布加迪

審校 | 孫淑娟

Kubernetes是一個(gè)動(dòng)態(tài)系統(tǒng),可以自動(dòng)適應(yīng)用戶工作負(fù)載的資源利用率。

Kubernetes有兩個(gè)擴(kuò)展級(jí)別。每個(gè)單獨(dú)的Kubernetes部署都可以使用Horizontal Pod Autoscaler(HPA)來(lái)自動(dòng)擴(kuò)展,而整個(gè)集群使用Cluster Autoscaler來(lái)擴(kuò)展。HPA監(jiān)測(cè)部署中各個(gè)pod的目標(biāo)指標(biāo)(通常是CPU或內(nèi)存使用情況),必要時(shí)添加或刪除pod,使該指標(biāo)接近指定的目標(biāo)。同時(shí),Cluster Autoscaler處理集群本身的擴(kuò)展。它監(jiān)視無(wú)法調(diào)度的pod,并為集群添加節(jié)點(diǎn)或從集群刪除節(jié)點(diǎn),以容納這些pod。

Kubernetes支持這兩種擴(kuò)展操作的一項(xiàng)關(guān)鍵特性是,能夠針對(duì)工作負(fù)載設(shè)置特定的資源請(qǐng)求和限制。通過(guò)為每個(gè)pod使用多少CPU和內(nèi)存設(shè)置合理的限制和請(qǐng)求,您可以盡量提高基礎(chǔ)架構(gòu)的利用率,同時(shí)確保應(yīng)用程序性能很高。想最大限度地有效利用Kubernetes集群,正確設(shè)置資源限制和請(qǐng)求很重要。對(duì)應(yīng)用程序設(shè)置過(guò)低的限制會(huì)導(dǎo)致問(wèn)題。比如說(shuō),如果內(nèi)存限制太低,Kubernetes一定會(huì)因應(yīng)用程序違反限制而終止它。與此同時(shí),如果把限制設(shè)置得太高,就會(huì)因過(guò)度分配而浪費(fèi)資源,這意味著最終支付更高的費(fèi)用。

雖然Kubernetes優(yōu)秀實(shí)踐要求您應(yīng)該始終對(duì)工作負(fù)載設(shè)置資源限制和請(qǐng)求,但知道為每個(gè)應(yīng)用程序使用什么樣的值并非總是易事。因而,一些團(tuán)隊(duì)從不設(shè)置請(qǐng)求或限制,而另一些團(tuán)隊(duì)在初始測(cè)試過(guò)程中設(shè)置得過(guò)高,然后從不確保設(shè)置正確。確保擴(kuò)展操作合理的關(guān)鍵是,對(duì)每個(gè)工作負(fù)載正確設(shè)置資源限制和請(qǐng)求,以便工作負(fù)載有效地運(yùn)行。

設(shè)置資源限制和請(qǐng)求是在Kubernetes集群上盡可能高效、可靠地運(yùn)行應(yīng)用程序的關(guān)鍵。

1、如何設(shè)置Kubernetes資源?

Fairwinds的開(kāi)源項(xiàng)目Goldilocks幫助團(tuán)隊(duì)將資源分配給他們的Kubernetes部署,并做好這些資源的調(diào)校。Goldilocks是一個(gè)Kubernetes控制器,收集運(yùn)行中的pod方面的數(shù)據(jù),并就如何設(shè)置資源請(qǐng)求和限制提供建議。它可以幫助組織了解資源使用情況、資源成本和確保效率的優(yōu)秀實(shí)踐。Goldilocks使用Kubernetes Vertical Pod Autoscaler(VPA)。它考慮到工作負(fù)載以往的內(nèi)存和CPU使用情況,以及pod的當(dāng)前資源使用情況,以便建議如何設(shè)置資源請(qǐng)求和限制。(雖然VPA可以為您設(shè)置限制,但通常最好只使用VPA引擎來(lái)提供建議。)實(shí)際上,該工具為命名空間中的每個(gè)部署創(chuàng)建一個(gè)VPA,然后查詢?cè)揤PA以獲取信息。

要查看這些建議,必須使用Kubectl來(lái)查詢每個(gè)VPA對(duì)象,這對(duì)于大中型部署來(lái)說(shuō)很快會(huì)變得繁瑣。這時(shí)候儀表板就有了用武之地。一旦您的VPA部署到位,建議會(huì)出現(xiàn)在Goldilocks儀表板中。

儀表板根據(jù)您希望為部署獲得的服務(wù)質(zhì)量(QoS)類別提供兩種類型的建議:

保證式,這意味著應(yīng)用程序?qū)⒈皇谟璞绕渌ぷ髫?fù)載更高的優(yōu)先級(jí),以便保證可用資源。在這個(gè)類別中,您將資源請(qǐng)求和限制設(shè)置為完全相同的值,這將保證在調(diào)度時(shí)容器請(qǐng)求的資源對(duì)其可用。這個(gè)QoS類別通常適合最穩(wěn)定的Kubernetes集群。

突發(fā)式,這意味著應(yīng)用程序?qū)⒈WC得到最低數(shù)量的資源,但如果資源可用,將獲得更多的資源。實(shí)際上,您的資源請(qǐng)求低于限制。調(diào)度程序?qū)⑹褂谜?qǐng)求將pod放置到節(jié)點(diǎn)上,但隨后pod可以在被終止或遏制之前使用更多的資源,直至達(dá)到上限。在決定資源匱乏時(shí)刪除哪些工作負(fù)載時(shí),該QoS類別被授予較低的優(yōu)先級(jí)。

儀表板為保證式和突發(fā)式QoS類別提供了建議。在保證式類別中,我們建議將請(qǐng)求和限制設(shè)置為VPA“目標(biāo)”字段。

注意,第三個(gè)QoS類別:盡力式(BestEffort)意味著不設(shè)置請(qǐng)求或限制,只有當(dāng)所有其他請(qǐng)求都得到滿足時(shí)才為應(yīng)用程序分配資源。不建議使用盡力式。

2、為集群使用專門的實(shí)例組

如果您對(duì)微調(diào)實(shí)例(工作負(fù)載在其上面運(yùn)行)感興趣,可以使用不同的實(shí)例組類型和節(jié)點(diǎn)標(biāo)簽將工作負(fù)載引導(dǎo)到特定的實(shí)例類型。

不同的業(yè)務(wù)系統(tǒng)常常有不同大小的資源需求,以及專門的硬件需求(比如GPU)。Kubernetes中的節(jié)點(diǎn)標(biāo)簽概念讓您可以將標(biāo)簽放在所有不同的節(jié)點(diǎn)上。同時(shí),pod經(jīng)過(guò)配置后,可以使用特定的“nodeSelectors”以匹配特定的節(jié)點(diǎn)標(biāo)簽,這些標(biāo)簽決定了pod可以調(diào)度到哪些節(jié)點(diǎn)上。通過(guò)利用具有適當(dāng)標(biāo)記的不同實(shí)例類型的實(shí)例組,您可以將所選擇的云提供商提供的底層硬件與Kubernetes中的工作負(fù)載混合搭配。

如果您有不同大小、不同需求的工作負(fù)載,將這些工作負(fù)載放在不同的實(shí)例類型上,并使用標(biāo)簽將工作負(fù)載引導(dǎo)到這些不同的實(shí)例類型上從戰(zhàn)略上和成本上來(lái)說(shuō)都是明智之舉。

競(jìng)價(jià)實(shí)例(spot instance)與這一想法密切有關(guān)。大多數(shù)組織熟悉按需購(gòu)買實(shí)例或在固定期限內(nèi)按保留條款購(gòu)買實(shí)例的模式。但是如果工作負(fù)載可能被中斷,您可能需要考慮使用競(jìng)價(jià)實(shí)例。這種實(shí)例讓您可以以相當(dāng)大的折扣使用云提供商的剩余容量,面臨的風(fēng)險(xiǎn)是對(duì)常規(guī)按需實(shí)例的需求加大時(shí),您的實(shí)例可能會(huì)被終止。

如果您的某些業(yè)務(wù)工作負(fù)載可以容忍實(shí)例隨機(jī)終止的風(fēng)險(xiǎn),那么可使用同樣的節(jié)點(diǎn)標(biāo)簽概念,將這些工作負(fù)載專門調(diào)度到這些類型的實(shí)例組上,從而大幅節(jié)省成本。

3、如何使用Kubernetes資源方面的建議?

Goldilocks是Fairwinds Insights用于提供工作負(fù)載效率和性能優(yōu)化的工具之一。有了Fairwinds Insights,Goldilocks可以跨多個(gè)集群部署,這樣團(tuán)隊(duì)可以通過(guò)單一管理平臺(tái)獲得信息。Fairwinds Insights為Goldilocks添加了數(shù)據(jù)和建議,包括潛在的成本節(jié)約。出現(xiàn)的儀表板包括命名空間和部署列表,附有平均總成本和成本方面的建議。

許多組織將CPU和內(nèi)存請(qǐng)求及限制設(shè)置過(guò)高,所以當(dāng)它們運(yùn)用Fairwinds Insights的建議時(shí),能夠?qū)⒏嗟膒od放在更少的Kubernetes worker節(jié)點(diǎn)上。啟用Cluster Autoscaler后,任何多余的節(jié)點(diǎn)都將在它們不使用時(shí)被刪除,這節(jié)省了時(shí)間和資金。

使用像Fairwinds Insights這樣的軟件或像Goldilocks這樣的開(kāi)源工具,開(kāi)發(fā)人員可以通過(guò)為自己自動(dòng)建議來(lái)避免不靠譜的猜測(cè)。反過(guò)來(lái),這讓您有機(jī)會(huì)提高集群效率和減少云開(kāi)銷。

原文鏈接:https://www.cncf.io/blog/2022/10/20/kubernetes-best-practice-how-to-correctly-set-resource-requests-and-limits/

責(zé)任編輯:武曉燕 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2021-05-25 09:00:00

Kubernetes容器集群

2022-03-24 08:04:50

Kubernetes資源限制

2021-06-08 10:26:10

云計(jì)算云計(jì)算產(chǎn)業(yè)云應(yīng)用

2022-09-01 08:50:22

kubernetes容器

2020-07-31 07:00:00

Kubernetes容器Linux

2021-03-11 14:33:28

Kubernetes開(kāi)源容器

2021-03-01 19:24:13

Kubernetes備份容器

2022-12-26 07:52:33

DockerfileFROM命令

2019-05-21 10:45:44

Docker架構(gòu)容器

2021-05-18 08:00:00

Kubernetes容器進(jìn)程

2022-06-21 08:03:49

RBAC 限制容器

2020-11-23 08:48:00

Kubernetes容器開(kāi)發(fā)

2018-07-18 09:45:09

云服務(wù)Kubernetes實(shí)踐

2025-06-11 09:28:22

2018-07-13 09:05:13

KubernetesDevOps云計(jì)算

2022-11-30 15:28:55

2022-04-07 09:30:00

自動(dòng)化LinodeKubernetes

2020-03-16 08:48:18

Kubernetes容器云原生

2024-01-22 12:46:00

KubernetesAPI接口

2022-07-29 13:55:03

大數(shù)據(jù)大數(shù)據(jù)管理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)